Anda dapat menggunakan alur Firebase Genkit sebagai tindakan server di aplikasi Next.js. Bagian selanjutnya dari halaman ini akan menunjukkan caranya.
Persyaratan
Node.js 20 atau yang lebih baru.
Prosedur
Instal Genkit CLI dengan menjalankan perintah berikut:
npm i -g genkit
Jika Anda belum memiliki aplikasi Next.js yang ingin digunakan, buat aplikasi:
npx create-next-app@latest
Pilih TypeScript sebagai bahasa pilihan Anda.
Inisialisasi Genkit di project Next.js Anda:
cd your-nextjs-project
genkit init
- Konfirmasi yes saat diminta apakah akan otomatis mengonfigurasi Genkit untuk Next.js.
- Pilih penyedia model yang ingin Anda gunakan.
Terima setelan default untuk prompt yang tersisa. Alat
genkit
akan membuat beberapa contoh file sumber untuk membantu Anda mulai mengembangkan alur AI Anda sendiri.Sediakan kredensial API untuk fungsi yang Anda deploy. Tergantung pada penyedia model yang Anda pilih, lakukan salah satu hal berikut ini:
Gemini (AI Google)
Pastikan AI Google tersedia di region Anda.
Buat kunci API untuk Gemini API menggunakan Google AI Studio.
Untuk menjalankan flow Anda secara lokal, seperti pada langkah berikutnya tetapkan variabel lingkungan
GOOGLE_GENAI_API_KEY
ke kunci Anda:export GOOGLE_GENAI_API_KEY=<your API key>
Saat Anda men-deploy aplikasi, Anda harus menyediakan kunci ini di lingkungan yang di-deploy; langkah-langkah yang tepat tergantung pada platformnya.
Gemini (Vertex AI)
Di Konsol Cloud, Aktifkan API Vertex AI untuk project Anda.
Untuk menjalankan flow Anda secara lokal, seperti pada langkah berikutnya , atur beberapa variabel lingkungan tambahan dan gunakan Alat
gcloud
untuk disiapkan kredensial default aplikasi:export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
gcloud auth application-default login
Saat men-deploy aplikasi, Anda perlu melakukan hal berikut:
Tetapkan variabel
GCLOUD_PROJECT
danGCLOUD_LOCATION
di lingkungan yang di-deploy; langkah-langkah yang tepat tergantung pada platformnya.Jika Anda tidak men-deploy ke lingkungan Firebase atau Google Cloud, menyiapkan otorisasi untuk Vertex AI API, menggunakan Workload Identity Federation (direkomendasikan) atau kunci akun layanan.
Pada IAM halaman konsol Google Cloud, memberikan Vertex AI User peran (
roles/aiplatform.user
) dengan identitas yang Anda gunakan untuk memanggil Vertex AI API.- Di Cloud Functions dan Cloud Run, ini adalah Akun layanan komputasi default.
- Di Firebase App Hosting, ini adalah akun layanan backend.
- Di platform lain, ini adalah identitas yang Anda siapkan di langkah waktu ini.
Satu-satunya secret yang perlu Anda siapkan untuk tutorial ini adalah untuk penyedia model, tetapi secara umum, Anda harus melakukan hal serupa untuk setiap layanan yang digunakan oleh flow Anda.
Jika Anda mengizinkan perintah
genkit init
untuk menghasilkan alur contoh, maka membuat file,genkit.ts
, yang memiliki alur Genkit yang dapat Anda gunakan sebagai server tindakan. Cobalah:Pertama, buat perubahan kecil pada fungsi
callMenuSuggestionFlow
:export async function callMenuSuggestionFlow(theme: string) { const flowResponse = await runFlow(menuSuggestionFlow, theme); console.log(flowResponse); return flowResponse; }
Anda dapat mengakses fungsi ini sebagai tindakan server. Sebagai contoh sederhana, ganti konten
page.tsx
dengan yang berikut ini:'use client'; import { callMenuSuggestionFlow } from '@/app/genkit'; import { useState } from 'react'; export default function Home() { const [menuItem, setMenuItem] = useState<string>(''); async function getMenuItem(formData: FormData) { const theme = formData.get('theme')?.toString() ?? ''; const suggestion = await callMenuSuggestionFlow(theme); setMenuItem(suggestion); } return ( <main> <form action={getMenuItem}> <label htmlFor="theme"> Suggest a menu item for a restaurant with this theme:{' '} </label> <input type="text" name="theme" id="theme" /> <br /> <br /> <button type="submit">Generate</button> </form> <br /> <pre>{menuItem}</pre> </main> ); }
Jalankan di lingkungan pengembangan Next.js:
npm run dev
Anda juga dapat menjalankan dan mempelajari alur Anda di UI Developer Genkit:
genkit start