Después de crear el flujo de transferencia de datos y agregar los nodos de procesamiento a tu app, debes elegir dónde enviar los datos procesados. Una opción es recibir directamente el resultado de la app de transmisión en vivo para que puedas actuar en función de estos análisis en tiempo real.
En general, configuras tu app para almacenar el resultado del modelo en un
Google Cloud almacén de datos como el Almacén de medios de Vision de Gemini Enterprise Agent Platform o BigQuery.
Después de que los datos se almacenan en uno de estos almacenes, se pueden usar para trabajos de análisis sin conexión según el gráfico de tu aplicación. Sin embargo, también puedes recibir los resultados del modelo en una transmisión en vivo. Puedes hacer que Vision de Gemini Enterprise Agent Platform reenvíe los resultados del modelo a un recurso de flujo y puedes usar la herramienta de línea de comandos (vaictl) o la API de Vision de Gemini Enterprise Agent Platform para consumirlos en tiempo real.
Supongamos que tienes el siguiente gráfico de aplicación que tiene los siguientes tres nodos:
- El nodo de fuente de datos "Input Stream" (
input-stream) - El nodo de procesamiento "Occupancy Count" (
occupancy-count) - El nodo de destino de salida de la app "Media Warehouse" (
warehouse)
Actualmente, el resultado de la app se envía desde el flujo al proceso de recuento de ocupación y, luego, al Almacén de medios de Vision de Gemini Enterprise Agent Platform, donde se almacena.
Configuración de la app de la 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"
}
]
}
} |
Habilita la salida de transmisión (Google Cloud consola)
Puedes habilitar la salida de transmisión en la Google Cloud consola cuando implementas tu modelo por primera vez o cuando anulas la implementación y, luego, vuelves a implementar el modelo.
Console
Abre la pestaña Aplicaciones del panel de Vision de Gemini Enterprise Agent Platform.
Selecciona Ver gráfico junto al nombre de tu aplicación en la lista.
En la página del compilador de gráficos de aplicaciones, haz clic en el botón Implementar.
En el menú de opciones Implementar aplicación que se abre, selecciona Habilitar transmisión de resultados.

En el menú desplegable Modelos correspondiente, selecciona los modelos para los que deseas habilitar la salida de transmisión.
Haz clic en Implementar.
Habilita la salida de transmisión (API)
Actualiza el nodo de la app
Puedes actualizar la configuración de una app en la línea de comandos para que un nodo de modelo envíe específicamente el resultado a una transmisión.
Después de completar este paso, tienes la opción de actualizar la instancia de la app para especificar el recurso de transmisión que recibe los datos de salida del nodo de análisis.
REST
En este ejemplo, se usa el método projects.locations.applications.patch. Esta solicitud actualiza la configuración de la app de la API de la app de ejemplo anterior
para que el nodo occupancy-count envíe anotaciones de salida
a una transmisión de Vision de Gemini Enterprise Agent Platform. Este comportamiento se habilita con el
output_all_output_channels_to_stream campo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT: Tu Google Cloud ID del proyecto o número de proyecto.
- LOCATION_ID: La región en la que usas
Vision de Agent Platform. Por ejemplo:
us-central1,europe-west4. Consulta las regiones disponibles. - APPLICATION_ID: El ID de tu aplicación de destino.
Método HTTP y URL:
PATCH https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID
Cuerpo JSON de la solicitud:
{
"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
}
]
}
}
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:
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
Guarda el cuerpo de la solicitud en un archivo llamado request.json,
y ejecuta el siguiente comando:
$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 sin ningún error y el servicio actualiza el recurso de la aplicación en consecuencia.
Actualiza la instancia de la app
En el ejemplo anterior, se muestra cómo actualizar la app, lo que permite que el nodo de destino envíe el resultado a una transmisión. Después de habilitar esta opción, puedes actualizar la instancia de la app para especificar el recurso de transmisión que recibe los datos de salida del nodo de análisis.
Si no especificas una transmisión con este comando, la plataforma de la app continúa usando una transmisión predeterminada que se crea cuando se implementa el nodo de la app.
Debes crear un recurso de transmisión al que el nodo envíe el resultado
antes de enviar la siguiente solicitud.
REST
En este ejemplo, se usa el
projects.locations.applications.updateApplicationInstances
método. Esta solicitud usa la configuración actualizada de la app de la API de la app de ejemplo anterior. El comando de actualización anterior configuró el nodo occupancy-count para que
pueda enviar anotaciones de salida a una transmisión de Vision de Gemini Enterprise Agent Platform. Este comando
actualiza la instancia de la app para enviar los datos de ese nodo productor occupancy-count
a un recurso de transmisión existente.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT: Tu Google Cloud ID del proyecto o número de proyecto.
- LOCATION_ID: La región en la que usas
Vision de Agent Platform. Por ejemplo:
us-central1,europe-west4. Consulta las regiones disponibles. - APPLICATION_ID: El ID de tu aplicación de destino.
inputResources: El recurso (o los recursos) de entrada para la instancia de la aplicación actual. Es un array de objetos que contienen los siguientes campos:consumerNode: El nombre del nodo del gráfico que recibe el recurso de entrada.inputResource: El nombre completo del recurso de entrada.
outputResources.outputResource: El recursostreamal que se enviarán los datos de la app.outputResources.producerNode: El nombre del nodo productor de salida de la app. En este ejemplo es el nodo de análisis,occupancy-count.- INSTANCE_ID: El ID de la instancia de la app.
Método HTTP y URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances
Cuerpo JSON de la solicitud:
{
"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
}
]
}
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:
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
Guarda el cuerpo de la solicitud en un archivo llamado request.json,
y ejecuta el siguiente comando:
$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 sin ningún error y el servicio actualiza la instancia de la aplicación en consecuencia.