创建数据注入流并将处理节点添加到应用后,您必须选择将处理后的数据发送到何处。一种选择是直接接收直播应用输出,以便您可以根据这些实时分析采取行动。
一般来说,您会将应用配置为将模型输出存储到
Google Cloud 数据仓库中,例如 Gemini Enterprise Agent Platform Vision 的媒体仓库或 BigQuery。将数据存储在其中一个仓库中后,您可以根据应用图将其用于离线分析作业。不过,您也可以通过直播方式接收模型输出。您可以让
Gemini Enterprise Agent Platform Vision 将模型输出转发到流资源,并且可以使用命令行工具 (vaictl) 或 Gemini
Enterprise Agent Platform Vision API 实时使用这些输出。
假设您有以下应用图,其中包含以下三个节点:
- 数据源节点“Input Stream”(
input-stream) - 处理节点“Occupancy Count”(
occupancy-count) - 应用输出目标节点“Media Warehouse”(
warehouse)
应用输出目前从流发送到入住人数统计流程,然后发送到 Gemini Enterprise Agent Platform Vision 的 Media Warehouse,并存储在该仓库中。
API 应用配置:
|
{
"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 控制台中启用流输出。
控制台
打开 Gemini Enterprise Agent Platform Vision 信息中心内的应用 标签页。
从列表中选择应用名称旁边的查看图表 。
在应用图表构建器页面中,点击部署 按钮。
在随即打开的部署应用 选项菜单中, 选择 启用输出流式传输。

在相应的模型 下拉菜单中,选择 您要为其 启用流式传输输出的模型。
点击部署
启用流输出 (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-central1、europe-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-central1、europe-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 状态,且没有任何错误,并且服务会相应地更新应用实例。