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
Proje için bir dizin oluşturun:
export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
mkdir -p $GENKIT_PROJECT_HOME
cd $GENKIT_PROJECT_HOME
Node.js projesini başlatın:
npm init -y
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
Ö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
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.