Nachdem Sie den Datenaufnahmestream erstellt und der App die Verarbeitungsknoten hinzugefügt haben, müssen Sie auswählen, wohin die verarbeiteten Daten gesendet werden sollen. Eine Möglichkeit besteht darin, die Ausgabe der Livestream-App direkt zu empfangen, damit Sie auf diese Echtzeitanalysen reagieren können.
Im Allgemeinen konfigurieren Sie die App so, dass die Modellausgabe in einem
Google Cloud Data Warehouse wie dem Media Warehouse von Gemini Enterprise Agent Platform Vision oder BigQuery gespeichert wird.
Nachdem die Daten in einem dieser Data Warehouses gespeichert wurden, können sie für Offline-Analysejobs verwendet werden, die auf Ihrem Anwendungsdiagramm basieren. Sie können die Modellausgaben aber auch per Livestreaming empfangen. Sie können Gemini Enterprise Agent Platform Vision die Modellausgaben an eine Streamressource weiterleiten lassen und sie dann entweder mit dem Befehlszeilentool (vaictl) oder der Gemini Enterprise Agent Platform Vision API in Echtzeit nutzen.
Angenommen, Sie haben das folgende Anwendungsdiagramm mit den folgenden drei Knoten:
- Der Datenquellenknoten „Input Stream“ (
input-stream) - Der Verarbeitungsknoten „Occupancy Count“ (
occupancy-count) - Der Knoten für das Ziel der App-Ausgabe „Media Warehouse“ (
warehouse)
Die App-Ausgabe wird derzeit vom Stream an den Prozess für die Belegung gezählt und dann an das Media Warehouse von Gemini Enterprise Agent Platform Vision gesendet, wo sie gespeichert wird.
API-App-Konfiguration :
|
{
"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"
}
]
}
} |
Streamausgabe aktivieren (Google Cloud Console)
Sie können die Streamausgabe in der Google Cloud Console aktivieren, wenn Sie das Modell zum ersten Mal bereitstellen oder wenn Sie die Bereitstellung des Modells aufheben und es dann erneut bereitstellen.
Console
Öffnen Sie den Tab Anwendungen des Gemini Enterprise Agent Platform Vision-Dashboards.
Wählen Sie in der Liste neben dem Namen der Anwendung Diagramm ansehen aus.
Klicken Sie auf der Seite des Anwendungsdiagramm-Generators auf die Schaltfläche Bereitstellen.
Wählen Sie im Menü Anwendung bereitstellen die Option Ausgabestreaming aktivieren aus.

Wählen Sie im Drop-down-Menü Modell(e) die Modelle aus, für die Sie die Streamingausgabe aktivieren möchten.
Klicken Sie auf Bereitstellen.
Streamausgabe aktivieren (API)
App-Knoten aktualisieren
Sie können die Konfiguration einer App in der Befehlszeile aktualisieren, sodass ein Modellknoten die Ausgabe speziell an einen Stream sendet.
REST
In diesem Beispiel wird die Methode projects.locations.applications.patch
verwendet. Mit dieser Anfrage wird die API-App-Konfiguration aus der vorherigen
Beispiel-App so aktualisiert, dass der occupancy-count Knoten Ausgabekommentare an einen Gemini Enterprise Agent Platform Vision-Stream sendet. Dieses Verhalten wird durch das
output_all_output_channels_to_stream Feld aktiviert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT: Ihre Google Cloud Projekt-ID oder Projektnummer.
- LOCATION_ID: Die Region, in der Sie
Agent Platform Vision verwenden. Beispiel:
us-central1,europe-west4. Verfügbare Regionen ansehen. - APPLICATION_ID: Die ID der Zielanwendung.
HTTP-Methode und URL:
PATCH https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID
JSON-Text der Anfrage:
{
"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
}
]
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json,
und führen Sie den folgenden Befehl aus:
$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 ohne Fehler zurück und der Dienst aktualisiert die Anwendungsressource entsprechend.
App-Instanz aktualisieren
Im vorherigen Beispiel wurde gezeigt, wie Sie die App aktualisieren, damit der Zielknoten die Ausgabe an einen Stream senden kann. Nachdem Sie diese Option aktiviert haben, können Sie optional die App-Instanz aktualisieren, um die Streamressource anzugeben, die die Ausgabedaten des Analyseknotens empfängt.
Wenn Sie mit diesem Befehl keinen Stream angeben, verwendet die App-Plattform weiterhin einen Standardstream, der beim Bereitstellen des App-Knotens erstellt wird.
Sie müssen eine Streamressource erstellen, an die der Knoten die Ausgabe sendet.
Bevor Sie die folgende Anfrage senden.
REST
In diesem Beispiel wird die
projects.locations.applications.updateApplicationInstances
Methode verwendet. Diese Anfrage verwendet die aktualisierte API-App-Konfiguration aus der vorherigen
Beispiel-App. Mit dem vorherigen Aktualisierungsbefehl wurde der Knoten occupancy-count so festgelegt, dass er
Ausgabekommentare an einen Gemini Enterprise Agent Platform Vision-Stream senden kann. Mit diesem Befehl
wird die App-Instanz so aktualisiert, dass die Daten von diesem Producer-occupancy-count
Knoten an eine vorhandene Streamressource gesendet werden.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT: Ihre Google Cloud Projekt-ID oder Projektnummer.
- LOCATION_ID: Die Region, in der Sie
Agent Platform Vision verwenden. Beispiel:
us-central1,europe-west4. Verfügbare Regionen ansehen. - APPLICATION_ID: Die ID der Zielanwendung.
inputResources: Die Eingaberessource (n) für die aktuelle Anwendungsinstanz. Dies ist ein Array von Objekten, das die folgenden Felder enthält:consumerNode: Der Name des Diagrammknotens, der die Eingaberessource empfängt.inputResource: Der vollständige Name der Eingaberessource.
outputResources.outputResource: Diestream-Ressource, an die die App -Daten ausgegeben werden sollen.outputResources.producerNode: Der Name des Producer-Knotens für die App-Ausgabe. In diesem Beispiel ist das der Analyseknotenoccupancy-count.- INSTANCE_ID: Die ID der App-Instanz.
HTTP-Methode und URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances
JSON-Text der Anfrage:
{
"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
}
]
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json,
und führen Sie den folgenden Befehl aus:
$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 ohne Fehler zurück und der Dienst aktualisiert die Anwendungsinstanz entsprechend.