將流程部署至任何 Node.js 平台

Firebase Genkit 內建整合功能可協助您將流程部署至 Firebase 專用 Cloud Functions 和 Google Cloud Run,但您也可以將流程部署至任何可提供 Express.js 應用程式的平台,無論是雲端服務或自管平台皆可。

本頁面會逐步引導您部署預設的範例流程。

事前準備

  • Node.js 20 以上版本:確認環境是否使用 Node.js 20 以上版本 (node --version)。
  • 您應該熟悉 Genkit 的流程概念。

1. 設定專案

  1. 為專案建立目錄:

    export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
    mkdir -p $GENKIT_PROJECT_HOME
    cd $GENKIT_PROJECT_HOME
  2. 初始化 Node.js 專案:

    npm init -y
  3. 安裝 Genkit 和必要的依附元件:

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

2. 設定 Genkit 應用程式

  1. 設定範例流程和伺服器:

    src/index.ts 中定義範例資料流,並設定資料流伺服器:

    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 的部分選用參數:

    • port:要監聽的網路通訊埠。如果未指定,伺服器會監聽 PORT 環境變數中定義的通訊埠,如果未設定 PORT,則預設為 3400。
    • cors:流程伺服器的 CORS 政策。如果您要從網頁應用程式存取這些端點,可能需要指定這項資訊。
    • pathPrefix:在流程端點前方加上的選用路徑前置字串。
    • jsonParserOptions:要傳遞至 Express 的 JSON 內容剖析器的選項
  2. 設定模型供應商憑證:

    為模型供應工具設定必要的環境變數。在本指南中,我們會以 Google AI Studio 的 Gemini API 做為範例。

    從 Google AI Studio 取得 API 金鑰

    建立 API 金鑰後,請使用下列指令將 GOOGLE_GENAI_API_KEY 環境變數設為金鑰:

    export GOOGLE_GENAI_API_KEY=<your API key>

    不同部署供應商在其環境中保護 API 金鑰的方式各有不同。為確保安全性,請確保 API 金鑰未對外公開。

3. 準備要部署的 Node.js 專案

將啟動和建構指令碼新增至 package.json

如要部署 Node.js 專案,請在 package.json 中定義 startbuild 指令碼。針對 TypeScript 專案,這些指令碼會如下所示:

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

在本機建構及測試

執行建構指令,然後在本機啟動及測試伺服器,確認其運作正常。

npm run build
npm start

在另一個終端機視窗中,測試端點:

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

選用:啟動開發人員 UI

您可以在開發期間使用開發人員 UI 以互動方式測試流程:

npx genkit start -- npm run start

前往 http://localhost:4000/flows 即可在 UI 中測試流程。

4. 部署專案

在本機設定及測試專案後,即可部署至任何與 Node.js 相容的平台。部署步驟會因供應商而異,但通常您會設定下列設定:

設定
執行階段 Node.js 20 以上版本
建構指令 npm run build
啟動指令 npm start
環境變數 設定 GOOGLE_GENAI_API_KEY=<your-api-key> 和其他必要的密鑰

start 指令 (npm start) 應指向已編譯的進入點,通常是 lib/index.js。請務必為部署平台新增所有必要的環境變數。

部署完成後,您可以使用提供的服務網址,以 HTTPS 端點的形式叫用流程。