Firebase Genkit memiliki integrasi bawaan yang membantu Anda men-deploy flow ke Cloud Functions for Firebase dan Google Cloud Run, tetapi Anda juga dapat men-deploy flow ke platform apa pun yang dapat menayangkan aplikasi Express.js, baik layanan cloud maupun yang dihosting sendiri.
Halaman ini, sebagai contoh, akan memandu Anda melalui proses deployment flow sampel default.
Sebelum memulai
- Node.js 20+: Pastikan lingkungan Anda menggunakan Node.js versi 20 atau yang lebih tinggi (node --version).
- Anda harus memahami konsep alur Genkit.
1. Menyiapkan project
Buat direktori untuk project:
export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
mkdir -p $GENKIT_PROJECT_HOME
cd $GENKIT_PROJECT_HOME
Lakukan inisialisasi project Node.js:
npm init -y
Instal Genkit dan dependensi yang diperlukan:
npm install --save genkit @genkit-ai/googleai
npm install -D genkit-cli typescript tsx
2. Mengonfigurasi aplikasi Genkit
Siapkan alur dan server contoh:
Di
src/index.ts
, tentukan alur contoh dan konfigurasikan server flow:import { genkit } from 'genkit'; import { googleAI, gemini15Flash } from '@genkit-ai/googleai'; const ai = genkit({ plugins: [googleAI()], model: gemini15Flash, }); const helloFlow = ai.defineFlow( { name: 'helloFlow', inputSchema: z.object({ name: z.string() }), outputSchema: z.string(), }, async (input) => { const { text } = ai.generate('Say hello to ${input.name}'); return text; } ); ai.startFlowServer({ flows: [menuSuggestionFlow], });
Ada juga beberapa parameter opsional untuk
startFlowServer
yang dapat Anda tentukan:port
: port jaringan yang akan diproses. Jika tidak ditentukan, server akan memproses port yang ditentukan dalam variabel lingkungan PORT, dan jika PORT tidak ditetapkan, defaultnya adalah 3400.cors
: Kebijakan CORS server flow. Jika akan mengakses endpoint ini dari aplikasi web, Anda mungkin perlu menentukannya.pathPrefix
: awalan jalur opsional yang akan ditambahkan sebelum endpoint alur Anda.jsonParserOptions
: opsi yang akan diteruskan ke parser isi JSON Express
Siapkan kredensial penyedia model:
Konfigurasikan variabel lingkungan yang diperlukan untuk penyedia model Anda. Dalam panduan ini, kita akan menggunakan Gemini API dari Google AI Studio sebagai contoh.
Mendapatkan kunci API dari Google AI Studio
Setelah membuat kunci API, tetapkan variabel lingkungan
GOOGLE_GENAI_API_KEY
ke kunci Anda dengan perintah berikut:export GOOGLE_GENAI_API_KEY=<your API key>
Penyedia deployment yang berbeda akan memiliki cara yang berbeda untuk mengamankan kunci API Anda di lingkungan mereka. Untuk keamanan, pastikan kunci API Anda tidak ditampilkan secara publik.
3. Menyiapkan project Node.js untuk deployment
Menambahkan skrip mulai dan build ke package.json
Untuk men-deploy project Node.js, tentukan skrip start
dan build
di package.json
. Untuk project TypeScript, skrip ini akan terlihat seperti ini:
"scripts": {
"start": "node --watch lib/index.js",
"build": "tsc"
},
Membuat dan menguji secara lokal
Jalankan perintah build, lalu mulai server dan uji secara lokal untuk mengonfirmasi bahwa server berfungsi seperti yang diharapkan.
npm run build
npm start
Di jendela terminal lain, uji endpoint:
curl -X POST "http://127.0.0.1:3400/menuSuggestionFlow" \
-H "Content-Type: application/json" \
-d '{"data": "banana"}'
Opsional: Memulai UI Developer
Anda dapat menggunakan UI Developer untuk menguji alur secara interaktif selama pengembangan:
npx genkit start -- npm run start
Buka http://localhost:4000/flows untuk menguji alur di UI.
4. Men-deploy project
Setelah project dikonfigurasi dan diuji secara lokal, Anda siap men-deploy ke platform yang kompatibel dengan Node.js. Langkah-langkah deployment bervariasi menurut penyedia, tetapi umumnya, Anda akan mengonfigurasi setelan berikut:
Setelan | Nilai |
---|---|
Runtime | Node.js 20 atau yang lebih baru |
Perintah build | npm run build |
Perintah mulai | npm start |
Variabel lingkungan | Menetapkan GOOGLE_GENAI_API_KEY=<your-api-key> dan secret lain yang diperlukan |
Perintah start
(npm start
) harus mengarah ke titik entri yang dikompilasi, biasanya lib/index.js
. Pastikan untuk menambahkan semua variabel lingkungan yang diperlukan untuk platform deployment Anda.
Setelah men-deploy, Anda dapat menggunakan URL layanan yang disediakan untuk memanggil flow sebagai endpoint HTTPS.