데이터 수집 스트림을 만들고 앱에 처리 노드를 추가한 후에는 처리된 데이터를 보낼 위치를 선택해야 합니다. 한 가지 옵션은 실시간 분석에 따라 조치를 취할 수 있도록 라이브 스트림 앱 출력을 직접 수신하는 것입니다.
일반적으로 모델 출력을 Gemini Enterprise Agent Platform Vision의 Media Warehouse 또는 BigQuery와 같은
Google Cloud 데이터 웨어하우스에 저장하도록 앱을 구성합니다.
데이터가 이러한 웨어하우스 중 하나에 저장되면 애플리케이션 그래프를 기반으로 오프라인 분석 작업에 사용할 수 있습니다. 하지만 라이브 스트리밍 방식으로 모델 출력을 수신할 수도 있습니다. Gemini Enterprise Agent Platform Vision에서 모델 출력을 스트림 리소스로 전달하도록 할 수 있으며 명령줄 도구(vaictl) 또는 Gemini Enterprise Agent Platform Vision API를 사용하여 실시간으로 사용할 수 있습니다.
다음 세 개의 노드가 있는 애플리케이션 그래프가 있다고 가정해 보겠습니다.
- 데이터 소스 노드 '입력 스트림'(
input-stream) - 처리 노드 '점유율 수'(
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: 프로젝트 ID 또는 프로젝트 번호입니다. Google Cloud
- LOCATION_ID: Agent Platform Vision을 사용하는 리전입니다. 예:
us-central1,europe-west4. 사용 가능한 리전을 참조하세요. - APPLICATION_ID: 대상 애플리케이션의 ID입니다.
HTTP 메서드 및 URL:
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: 프로젝트 ID 또는 프로젝트 번호입니다. Google Cloud
- 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 메서드 및 URL:
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 상태를 반환하고 서비스는 애플리케이션 인스턴스를 적절하게 업데이트합니다.