Men-deploy alur ke platform Node.js mana pun

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

  1. Buat direktori untuk project:

    export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
    mkdir -p $GENKIT_PROJECT_HOME
    cd $GENKIT_PROJECT_HOME
  2. Lakukan inisialisasi project Node.js:

    npm init -y
  3. Instal Genkit dan dependensi yang diperlukan:

    npm install --save genkit @genkit-ai/googleai
    npm install -D genkit-cli typescript tsx

2. Mengonfigurasi aplikasi Genkit

  1. 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
  2. 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.