将 Firebase Genkit 与 Cloud Run 搭配使用

您可以使用 Cloud Run 将 Firebase Genkit 流程部署为网络服务。例如,本页面将引导您完成部署默认示例流的过程。

  1. 安装所需的工具:

    1. 确保您使用的是 Node.js 版本 20 或更高版本(运行 node --version 进行检查)。

    2. 安装 Google Cloud CLI

  2. 使用 Cloud 控制台创建新的 Google Cloud 项目,或选择现有项目。项目必须与结算账号相关联。

    创建或选择项目后,请配置 Google Cloud CLI 以使用该项目:

    gcloud init
    
  3. 为 Genkit 示例项目创建一个目录:

    mkdir -p ~/tmp/genkit-cloud-project
    cd ~/tmp/genkit-cloud-project
    

    如果您要使用 IDE,请将其打开到此目录。

  4. 在您的项目目录中初始化 Node.js 项目:

    npm init -y
    
  5. 在您的 Node.js 项目中初始化 Genkit:

    genkit init
    
    • 选择 Google Cloud 作为部署平台。
    • 选择要使用的模型提供方。

    接受其余提示的默认值。genkit 工具将创建一些示例源文件,帮助您开始开发自己的 AI 流程。不过,在本教程的其余部分,您只需部署示例流程即可。

  6. 使 API 凭据可供部署的函数使用。根据您选择的模型提供程序,执行以下某项操作:

    Gemini (Google AI)

    1. 确保 Google AI 在您所在的地区可用

    2. 使用 Google AI Studio 为 Genmini API 生成 API 密钥

    3. 使 API 密钥在 Cloud Run 环境中可用:

      1. 在 Cloud 控制台中,启用 Secret Manager API
      2. Secret Manager 页面上,创建包含您的 API 密钥的新 Secret。
      3. 创建 Secret 后,在同一页面上,以 Secret Manager Secret Accessor 角色向默认计算服务帐号授予对该 Secret 的访问权限。(您可以在 IAM 页面上查找默认计算服务帐号的名称。)

      在稍后的步骤中,部署服务时,您需要引用此 Secret 的名称。

    4. 可选:如果要在本地运行流(如下一步),请将 GOOGLE_GENAI_API_KEY 环境变量设置为您的密钥:

      export GOOGLE_GENAI_API_KEY=<your API key>
      

    Gemini (Vertex AI)

    1. 在 Cloud 控制台中,为您的项目启用 Vertex AI API

    2. IAM 页面上,确保已向默认计算服务帐号授予 Vertex AI User 角色。

    3. 可选:如果要在本地运行流(如下一步),请设置一些其他环境变量,并使用 gcloud 工具设置应用默认凭据:

      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      gcloud auth application-default login
      

    您需要为本教程设置的唯一密钥是用于模型提供程序,但一般来说,您必须为流使用的每个服务执行类似的操作。

  7. 可选:在开发者界面中试用您的流程:

    1. 启动界面:

      genkit start
      
    2. 在开发者界面 (http://localhost:4000/) 中,运行数据流:

      1. 点击 menuSuggestionFlow

      2. 输入 JSON 标签页上,为模型提供一个主题:

        "banana"
        
      3. 点击运行

  8. 如果到目前为止一切正常,您可以构建并部署该流程:

    Gemini (Google AI)

    npm run build
    gcloud run deploy --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
    

    Gemini (Vertex AI)

    npm run build
    gcloud run deploy
    

    当系统询问您是否允许未经身份验证的调用时,请选择 N。如果回答“N”,会将您的服务配置为需要 IAM 凭据。如需了解如何提供这些凭据,请参阅 Cloud Run 文档中的身份验证

部署完成后,该工具将输出服务网址。您可以使用 curl 对其进行测试:

curl -X POST https://<service-url>/menuSuggestionFlow \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" -d '{"data": "banana"}'