将流部署到任何应用托管平台

您可以使用任何可以托管 Go 二进制文件的服务将 Firebase Genkit 流部署为 Web 服务。作为示例,本页面将引导您完成部署默认示例流程的一般过程,并指出您必须在哪些位置执行特定于提供方的操作。

  1. 为 Genkit 示例项目创建一个目录:

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

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

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

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

    genkit init
    

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

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

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

    if err := genkit.Init(ctx,
    	&genkit.Options{FlowAddr: ":3400"}, // Add this parameter.
    ); err != nil {
    	log.Fatal(err)
    }
    

    如果您的提供方要求您监听特定端口,请务必相应地配置 Genkit。

  5. 实现某种形式的身份验证和授权,以控制对您计划部署的流程的访问。

    由于大多数生成式 AI 服务都是按流量计费的,因此您很可能不希望允许对调用它们的端点进行开放访问。某些托管服务会提供一个身份验证层作为部署在其上的应用的前端,您可以使用该前端来实现此目的。

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

    Gemini (Google AI)

    1. 确保您所在的地区提供 Google AI。

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

    3. 使 API 密钥在已部署的环境中可用。

      大多数应用主机都提供了一些系统来安全处理 API 密钥等密钥。这些 Secret 通常以环境变量的形式提供给您的应用。如果您可以将 API 密钥分配给 GOOGLE_GENAI_API_KEY 变量,Genkit 会自动使用该密钥。否则,您需要修改 googleai.Init() 调用以明确设置该键。(但不要直接在代码中嵌入密钥!请使用托管服务提供商提供的 Secret 管理工具。)

    Gemini (Vertex AI)

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

    2. 如果您还没有服务帐号,请在 IAM 页面上创建一个用于访问 Vertex AI API 的服务帐号。

      向该帐号授予 Vertex AI User 角色。

    3. 在托管环境中设置应用默认凭据

    4. 使用您的 Google Cloud 项目 ID 和您要使用的 Vertex AI API 位置配置该插件。为此,您可以在托管环境中或在 vertexai.Init() 调用中设置 GCLOUD_PROJECTGCLOUD_LOCATION 环境变量。

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

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

    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. 点击运行

  8. 如果到目前为止一切正常,您可以使用提供商的工具构建和部署流程。