启用直播输出

创建数据注入流并将处理节点添加到应用后,您必须选择将处理后的数据发送到何处。一种选择是直接接收直播应用输出,以便您可以根据这些实时分析采取行动。

一般来说,您会将应用配置为将模型输出存储到 Google Cloud 数据仓库中,例如 Gemini Enterprise Agent Platform Vision 的媒体仓库或 BigQuery。将数据存储在其中一个仓库中后,您可以根据应用图将其用于离线分析作业。不过,您也可以通过直播方式接收模型输出。您可以让 Gemini Enterprise Agent Platform Vision 将模型输出转发到流资源,并且可以使用命令行工具 (vaictl) 或 Gemini Enterprise Agent Platform Vision API 实时使用这些输出。

假设您有以下应用图,其中包含以下三个节点:

  1. 数据源节点“Input Stream”(input-stream)
  2. 处理节点“Occupancy Count”(occupancy-count)
  3. 应用输出目标节点“Media Warehouse”(warehouse)

应用输出目前从流发送到入住人数统计流程,然后发送到 Gemini Enterprise Agent Platform Vision 的 Media Warehouse,并存储在该仓库中。

API 应用配置

Cloud 控制台中的示例应用配置
{
  "applicationConfigs": {
    "nodes": [
        {
          "displayName": "Input Stream",
          "name": "input-stream",
          "processor": "builtin:stream-input"
        },
        {
          "displayName": "Occupancy Count",
          "name": "occupancy-count",
          "nodeConfig": {
            "occupancyCountConfig": {
              "enablePeopleCounting": true,
              "enableVehicleCounting": true
            }
          },
          "parents": [
            {
              "parentNode": "input-stream"
            }
          ],
          "processor": "builtin:occupancy-count"
        },
        {
          "displayName": "Media Warehouse",
          "name": "warehouse",
          "nodeConfig": {
            "mediaWarehouseConfig": {
              "corpus": "projects/PROJECT_ID/locations/LOCATION_ID/corpora/CORPUS_ID",
              "ttl": "86400s"
            }
          },
          "parents": [
            {
              "parentNode": "input-stream"
            },
            {
              "parentNode": "occupancy-count"
            }
          ],
          "processor": "builtin:media-warehouse"
        }
    ]
  }
}

启用流输出(Google Cloud 控制台)

您可以在首次 部署模型时或在取消部署然后重新部署 模型时,在 Google Cloud 控制台中启用流输出。

控制台

  1. 打开 Gemini Enterprise Agent Platform Vision 信息中心内的应用 标签页。

    前往“应用”标签页

  2. 从列表中选择应用名称旁边的查看图表

  3. 在应用图表构建器页面中,点击部署 按钮。

  4. 在随即打开的部署应用 选项菜单中, 选择 启用输出流式传输

    控制台中的“部署应用”菜单

  5. 在相应的模型 下拉菜单中,选择 您要为其 启用流式传输输出的模型。

  6. 点击部署

启用流输出 (API)

更新应用节点

您可以在命令行中更新应用配置,以便模型节点专门将输出发送到流。

完成此步骤后,您可以选择 更新应用实例,以指定接收分析节点输出数据的流资源 。

REST

此示例使用 projects.locations.applications.patch 方法。此请求会将 API 应用配置从之前的 示例应用更新为让 occupancy-count 节点将输出 注释发送到 Gemini Enterprise Agent Platform Vision 流。此行为由 output_all_output_channels_to_stream 字段启用。

在使用任何请求数据之前, 请先进行以下替换:

  • PROJECT:您的 Google Cloud 项目 ID 或 项目编号
  • LOCATION_ID:您使用 Agent Platform Vision 的区域。例如:us-central1europe-west4。请参阅可用区域
  • APPLICATION_ID:目标应用的 ID。

HTTP 方法和网址:

PATCH https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID

请求 JSON 正文:

{
  "applicationConfigs": {
    "nodes": [
        {
          "displayName": "Input Stream",
          "name": "input-stream",
          "processor": "builtin:stream-input"
        },
        {
          "displayName": "Occupancy Count",
          "name": "occupancy-count",
          "nodeConfig": {
            "occupancyCountConfig": {
              "enablePeopleCounting": true,
              "enableVehicleCounting": true
            }
          },
          "parents": [
            {
              "parentNode": "input-stream"
            }
          ],
          "processor": "builtin:occupancy-count",
          "output_all_output_channels_to_stream": true
        }
    ]
  }
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID"

PowerShell

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID" | Select-Object -Expand Content
如果更新操作完成,该操作将返回 200 OK 状态,且没有任何错误,并且服务会相应地更新应用资源。

更新应用实例

上一个示例向您展示了如何更新应用, 以便目标节点将输出发送到流。启用此选项后,您可以选择更新应用实例,以指定接收分析节点输出数据的流资源。

如果您未使用此命令指定流,应用平台将继续使用在部署应用节点时创建的默认流。

您必须先创建节点将输出发送到的流资源

,然后才能发送以下请求。

REST

此示例使用 projects.locations.applications.updateApplicationInstances 方法。此请求使用之前 示例应用中更新后的 API 应用配置。之前的更新命令将 occupancy-count 节点设置为 能够将输出注释发送到 Gemini Enterprise Agent Platform Vision 流。此命令 会更新应用实例,以将来自该生产者 occupancy-count 节点的数据发送到现有流资源。

在使用任何请求数据之前, 请先进行以下替换:

  • PROJECT:您的 Google Cloud 项目 ID 或 项目编号
  • LOCATION_ID:您使用 Agent Platform Vision 的区域。例如:us-central1europe-west4。请参阅可用区域
  • APPLICATION_ID:目标应用的 ID。
  • inputResources:当前应用实例的输入资源。这是一个包含以下字段的对象数组:
    • consumerNode:接收输入资源的图表节点的名称。
    • inputResource:完整的输入资源名称。
  • outputResources.outputResource:用于输出应用数据的 stream 资源。
  • outputResources.producerNode:应用输出生产者节点名称。在此示例中 这是分析节点 occupancy-count
  • INSTANCE_ID:应用实例的 ID。

HTTP 方法和网址:

POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances

请求 JSON 正文:

{
  "applicationInstances": [
    {
      "instance": {
        "inputResources": [
          {
            "consumerNode": "input-stream",
            "inputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/clusters/application-cluster-0/streams/INPUT_STREAM_ID"
          }
        ],
        "outputResources":[
          {
            "outputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/clusters/application-cluster-0/streams/OUTPUT_STREAM_ID",
            "producerNode": "occupancy-count"
          }
        ]
      },
      "instanceId": INSTANCE_ID
    }
  ]
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances"

PowerShell

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances" | Select-Object -Expand Content
如果更新操作完成,该操作将返回 200 OK 状态,且没有任何错误,并且服务会相应地更新应用实例。