Akışları herhangi bir Node.js platformuna dağıtma

Firebase Genkit, akışlarınızı Firebase için Cloud Functions ve Google Cloud Run'a dağıtmanıza yardımcı olan yerleşik entegrasyonlara sahiptir. Ancak akışlarınızı bulut hizmeti veya kendi kendine barındırılan olsun, Express.js uygulaması sunabilen herhangi bir platforma da dağıtabilirsiniz.

Bu sayfada, varsayılan örnek akışı dağıtma sürecinde size yol gösterilmektedir.

Başlamadan önce

  • Node.js 20 ve sonraki sürümler: Ortamınızda Node.js 20 veya sonraki bir sürümün kullanıldığını onaylayın (node --version).
  • Genkit'in akış kavramı hakkında bilgi sahibi olmanız gerekir.

1. Projenizi oluşturma

  1. Proje için bir dizin oluşturun:

    export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
    mkdir -p $GENKIT_PROJECT_HOME
    cd $GENKIT_PROJECT_HOME
  2. Node.js projesini başlatın:

    npm init -y
  3. Genkit'i ve gerekli bağımlılıkları yükleyin:

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

2. Genkit uygulamanızı yapılandırma

  1. Örnek bir akış ve sunucu oluşturun:

    src/index.ts'te örnek bir akış tanımlayın ve akış sunucusunu yapılandırın:

    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],
    });
    

    startFlowServer için belirtebileceğiniz bazı isteğe bağlı parametreler de vardır:

    • port: Dinlenecek ağ bağlantı noktası. Belirtilmemişse sunucu, PORT ortam değişkeninde tanımlanan bağlantı noktasında dinler. PORT ayarlanmamışsa varsayılan olarak 3400 olur.
    • cors: Akış sunucusunun CORS politikası. Bu uç noktalara bir web uygulamasından erişecekseniz büyük olasılıkla bunu belirtmeniz gerekir.
    • pathPrefix: Akış uç noktalarınızın önüne eklenecek isteğe bağlı bir yol ön eki.
    • jsonParserOptions: Express'in JSON gövde ayrıştırıcısına iletilecek seçenekler
  2. Model sağlayıcı kimlik bilgilerini ayarlama:

    Model sağlayıcınız için gerekli ortam değişkenlerini yapılandırın. Bu kılavuzda, örnek olarak Google AI Studio'daki Gemini API'yi kullanacağız.

    Google AI Studio'dan API anahtarı alma

    API anahtarı oluşturduktan sonra aşağıdaki komutu kullanarak GOOGLE_GENAI_API_KEY ortam değişkenini anahtarınıza ayarlayın:

    export GOOGLE_GENAI_API_KEY=<your API key>

    Farklı dağıtım sağlayıcılarının, API anahtarınızın kendi ortamlarında güvenliğini sağlama yöntemleri farklıdır. Güvenlik için API anahtarınızın herkese açık olmadığından emin olun.

3. Node.js projenizi dağıtıma hazırlama

package.json'e başlangıç ve derleme komut dosyaları ekleme

Node.js projesini dağıtmak için package.json dosyasında start ve build komut dosyalarını tanımlayın. TypeScript projesi için bu komut dosyaları şöyle görünür:

"scripts": {
  "start": "node --watch lib/index.js",
  "build": "tsc"
},

Yerel olarak derleme ve test etme

Derleme komutunu çalıştırın, ardından sunucuyu başlatıp beklendiği gibi çalıştığını doğrulamak için yerel olarak test edin.

npm run build
npm start

Başka bir terminal penceresinde uç noktayı test edin:

curl -X POST "http://127.0.0.1:3400/menuSuggestionFlow" \
  -H "Content-Type: application/json" \
  -d '{"data": "banana"}'

İsteğe bağlı: Geliştirici kullanıcı arayüzünü başlatın

Geliştirme sırasında akışları etkileşimli olarak test etmek için Geliştirici kullanıcı arayüzünü kullanabilirsiniz:

npx genkit start -- npm run start

Akışlarınızı kullanıcı arayüzünde test etmek için http://localhost:4000/flows adresine gidin.

4. Projeyi dağıtma

Projeniz yapılandırılıp yerel olarak test edildikten sonra Node.js uyumlu herhangi bir platforma dağıtmaya hazırsınız demektir. Dağıtım adımları sağlayıcıya göre değişir ancak genellikle aşağıdaki ayarları yapılandırırsınız:

Ayar Değer
Çalışma zamanı Node.js 20 veya daha yeni sürümler
Derleme komutu npm run build
Start komutu npm start
Ortam değişkenleri GOOGLE_GENAI_API_KEY=<your-api-key> ve diğer gerekli gizli anahtarları ayarlama

start komutu (npm start), derlenmiş giriş noktanızı (genellikle lib/index.js) işaret etmelidir. Dağıtım platformunuz için gerekli tüm ortam değişkenlerini eklediğinizden emin olun.

Yayınladıktan sonra, akışınızı HTTPS uç noktası olarak çağırmak için sağlanan hizmet URL'sini kullanabilirsiniz.