Une fois que vous avez créé le flux d'ingestion de données et ajouté les nœuds de traitement à votre application, vous devez choisir où envoyer les données traitées. Vous pouvez, par exemple, recevoir directement la sortie de l'application de flux en direct afin d'agir sur ces analyses en temps réel.
En règle générale, vous configurez votre application pour stocker la sortie du modèle dans un
Google Cloud entrepôt de données tel que Media Warehouse de Gemini Enterprise Agent Platform Vision ou BigQuery.
Une fois les données stockées dans l'un de ces entrepôts, elles peuvent être utilisées pour des tâches d'analyse hors connexion en fonction du graphique de votre application. Toutefois, vous pouvez également recevoir les sorties du modèle en streaming en direct. Vous pouvez demander à Gemini Enterprise Agent Platform Vision de transférer les sorties du modèle vers une ressource de flux, et vous pouvez les utiliser en temps réel à l'aide de l'outil de ligne de commande (vaictl) ou de l'API Gemini Enterprise Agent Platform Vision.
Supposons que vous disposiez du graphique d'application suivant, qui comporte les trois nœuds suivants :
- Le nœud de source de données "Input Stream" (
input-stream) - Le nœud de traitement "Occupancy Count" (
occupancy-count) - Le nœud de destination de sortie de l'application "Media Warehouse" (
warehouse)
La sortie de l'application est actuellement envoyée du flux au processus de comptage de l'occupation, puis à Media Warehouse de Gemini Enterprise Agent Platform Vision, où elle est stockée.
Configuration de l'application 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"
}
]
}
} |
Activer la sortie de flux (Google Cloud console)
Vous pouvez activer la sortie de flux dans la Google Cloud console lorsque vous déployez votre modèle pour la première fois ou lorsque vous le supprimez, puis redéployez le modèle.
Console
Ouvrez l'onglet Applications du tableau de bord Gemini Enterprise Agent Platform Vision.
Sélectionnez Afficher le graphique à côté du nom de votre application dans la liste.
Sur la page du générateur de graphiques d'application, cliquez sur le bouton Déployer.
Dans le menu d'options Déployer l'application qui s'ouvre, sélectionnez Activer le streaming de sortie.

Dans le menu déroulant Modèle(s) correspondant, sélectionnez les modèles pour lesquels vous souhaitez activer le streaming de sortie.
Cliquez sur Déployer.
Activer la sortie de flux (API)
Mettre à jour le nœud de l'application
Vous pouvez mettre à jour la configuration d'une application sur la ligne de commande afin qu'un nœud de modèle envoie spécifiquement la sortie à un flux.
REST
Cet exemple utilise la méthode projects.locations.applications.patch. Cette requête met à jour la configuration de l'application API de l'application exemple précédente afin que le nœud occupancy-count envoie des annotations de sortie à un flux Gemini Enterprise Agent Platform Vision. Ce comportement est activé par le
output_all_output_channels_to_stream champ.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT : ID de votre projet ou numéro de projet. Google Cloud
- LOCATION_ID : région dans laquelle vous utilisez Agent Platform Vision. Par exemple :
us-central1,europe-west4. Consultez les régions disponibles. - APPLICATION_ID : ID de votre application cible.
Méthode HTTP et URL :
PATCH https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID
Corps JSON de la requête :
{
"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
}
]
}
}
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json,
et exécutez la commande suivante :
$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 sans aucune erreur, et le service met à jour la ressource d'application en conséquence.
Mettre à jour l'instance d'application
L'exemple précédent vous montre comment mettre à jour l'application, ce qui permet au nœud cible d'envoyer la sortie à un flux. Une fois cette option activée, vous pouvez éventuellement mettre à jour l'instance d'application pour spécifier la ressource de flux qui reçoit les données de sortie du nœud d'analyse.
Si vous ne spécifiez pas de flux avec cette commande, la plate-forme d'application continue d'utiliser un flux par défaut créé lors du déploiement du nœud d'application.
Vous devez créer une ressource de flux vers laquelle le nœud envoie la sortie
avant d'envoyer la requête suivante.
REST
Cet exemple utilise la
projects.locations.applications.updateApplicationInstances. Cette requête utilise la configuration de l'application API mise à jour à partir de l'application exemple précédente. La commande de mise à jour précédente a configuré le nœud occupancy-count pour qu'il puisse envoyer des annotations de sortie à un flux Gemini Enterprise Agent Platform Vision. Cette commande
met à jour l'instance d'application pour envoyer les données de ce nœud producteur occupancy-count
à une ressource de flux existante.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT : ID de votre projet ou numéro de projet. Google Cloud
- LOCATION_ID : région dans laquelle vous utilisez Agent Platform Vision. Par exemple :
us-central1,europe-west4. Consultez les régions disponibles. - APPLICATION_ID : ID de votre application cible.
inputResources: ressource (s) d'entrée pour l'instance d'application actuelle. Il s'agit d'un tableau d'objets contenant les champs suivants :consumerNode: nom du nœud de graphique qui reçoit la ressource d'entrée.inputResource: nom complet de la ressource d'entrée.
outputResources.outputResource: ressourcestreamvers laquelle envoyer les données de l'application.outputResources.producerNode: nom du nœud producteur de sortie de l'application. Dans cet exemple il s'agit du nœud d'analyse,occupancy-count.- INSTANCE_ID : ID de l'instance d'application.
Méthode HTTP et URL :
POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances
Corps JSON de la requête :
{
"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
}
]
}
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json,
et exécutez la commande suivante :
$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 sans aucune erreur, et le service met à jour l'instance d'application en conséquence.