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

您可以使用任何可托管 Go 二进制文件的服务,将 Firebase Genkit flow 部署为 Web 服务。本页面将引导您完成部署默认示例 flow 的一般流程,并针对具体提供方提供了相应的操作。

  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 flow。不过,在本教程的其余部分,您只需部署示例 flow 即可。

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

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

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

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

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

  6. 向已部署的函数提供 API 凭据。根据您选择的模型提供方,执行以下操作之一:

    Gemini (Google AI)

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

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

    3. 在已部署的环境中提供 API 密钥。

      大多数应用主机都提供了特定系统来安全地处理 API 密钥之类的 Secret。通常,这些 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 环境变量。

    在本教程中,您只需要为模型提供方设置 Secret,但一般来说,您必须为 flow 使用的每项服务执行类似的操作。

  7. 可选:在开发者界面中试用 flow:

    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/) 中,运行 flow:

      1. 点击 menuSuggestionFlow

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

        "banana"
        
      3. 点击运行

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