将 Firebase Genkit 与 Cloud Run 搭配使用

您可以使用 Cloud Run 将 Firebase Genkit 流程部署为 Web 服务。通过此页面, 本示例将引导您完成将默认示例部署到 。

  1. 在下列情况下,安装 Google Cloud CLI: 。

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

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

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

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

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

  4. 在项目目录中初始化 Go 模块:

    go mod init example/cloudrun
    
  5. 在项目中初始化 Genkit:

    genkit init
    

    选择要使用的模型提供商。

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

  6. 请修改示例文件(main.gogenkit.go),以明确指定 流服务器应监听的端口:

    if err := genkit.Init(ctx,
        &genkit.Options{FlowAddr: ":3400"}, // Add this parameter.
    ); err != nil {
        log.Fatal(err)
    }
    
  7. 使 API 凭据可供部署的函数使用。执行以下其中一项操作 以下,具体取决于您选择的模型提供商:

    Gemini (Google AI)

    1. 确保 Google AI

    2. 生成 API 密钥,以便 Gemini API。

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

      1. 在 Cloud 控制台中,启用 Secret Manager API
      2. Secret Manager 页面中,创建包含您的 API 密钥的新密钥。
      3. 创建密钥后,在同一页面上授予您的默认密钥 使用 Secret Manager Secret Accessor 角色。(您可以在 默认计算服务账号的名称)。

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

    Gemini (Vertex AI)

    1. 在 Cloud 控制台中 启用 Vertex AI API

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

    您需要为本教程设置的唯一密钥是 但通常情况下,您必须针对每项服务执行类似的操作 数据流使用。

  8. 可选:在开发者界面中尝试按照您的流程操作:

    1. 为您选择的模型提供程序设置本地环境:

      Gemini (Google AI)

      export GOOGLE_GENAI_API_KEY=<your API key>
      

      Gemini (Vertex AI)

      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      gcloud auth application-default login
      
    2. 启动界面:

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

      1. 点击 menuSuggestionFlow

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

        "banana"
        
      3. 点击运行

  9. 如果到目前为止一切正常,您就可以构建和部署 流程:

    Gemini (Google AI)

    gcloud run deploy --port 3400 \
      --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
    

    Gemini (Vertex AI)

    gcloud run deploy --port 3400 \
      --set-env-vars GCLOUD_PROJECT=<your-gcloud-project> \
      --set-env-vars GCLOUD_LOCATION=us-central1
    

    GCLOUD_LOCATION 配置您要使用的 Vertex API 区域。)

    当系统询问您是否允许未经身份验证的调用时,请选择 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 '"banana"'