将流部署到任何 Node.js 平台

Firebase Genkit 内置了集成,可帮助您将流程部署到 Cloud Functions for Firebase 和 Google Cloud Run,但您也可以将流程部署到任何可提供 Express.js 应用的平台,无论是云服务还是自托管服务。

作为示例,本页面将引导您完成部署默认示例 flow 的过程。

准备工作

  • 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 政策。如果您将通过 Web 应用访问这些端点,则可能需要指定这一点。
    • 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"
},

在本地构建和测试

运行 build 命令,然后启动服务器并在本地对其进行测试,以确认其能否按预期运行。

npm run build
npm start

在另一个终端窗口中,测试端点:

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

可选:启动开发者界面

您可以在开发期间使用开发者界面以交互方式测试流程:

npx genkit start -- npm run start

前往 http://localhost:4000/flows,在界面中测试您的流程。

4. 部署项目

在本地配置和测试项目后,您就可以部署到任何与 Node.js 兼容的平台了。部署步骤因提供方而异,但通常,您需要配置以下设置:

设置
运行时 Node.js 20 或更高版本
构建命令 npm run build
启动命令 npm start
环境变量 设置 GOOGLE_GENAI_API_KEY=<your-api-key> 和其他必要的 Secret

start 命令 (npm start) 应指向已编译的入口点,通常为 lib/index.js。请务必为您的部署平台添加所有必要的环境变量。

部署完成后,您可以使用提供的服务网址以 HTTPS 端点的形式调用流程。