將流程部署至任何 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';
  import { startFlowServer } from '@genkit-ai/express';

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

  startFlowServer({
    flows: [menuSuggestionFlow],
  });

您也可以指定 startFlowServer 的部分選用參數:

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

為模型供應工具設定必要的環境變數。本指南將以 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 端點的形式叫用流程。