Vision Warehouse를 만들고 앱에 추가하고 앱을 배포한 후에는 스트리밍 동영상 웨어하우스에 저장된 데이터를 검색할 수 있습니다.
스트리밍 동영상 메타데이터 검색
웨어하우스 (corpus
)에서 데이터 (assets
)를 검색하려면 찾으려는 콘텐츠로 SearchAssetsRequest
을 채우세요. 이 콘텐츠는 몇 가지 다른 형식으로 제공됩니다.
criteria
: 사용자가 제공한 텍스트, 숫자 또는 날짜 콘텐츠입니다.facet_selections
- 서버에서 반환되고 사용자가 선택한 텍스트 콘텐츠입니다.content_time_ranges
- 반환된 모든 콘텐츠가 속해야 하는 날짜 범위입니다.
다음 예에서는 전국에 있는 다양한 유형의 매장의 보안 카메라 영상을 포함하는 창고를 고려해 보겠습니다. 주석 "state": "California"
또는 주석 "state":"Pennsylvania"
로 태그된 2018년 또는 2020년의 모든 애셋을 가져오려면 다음 요청을 전송합니다.
REST
애셋을 검색하려면 projects.locations.corpora.searchAssets 메서드를 사용하여 POST 요청을 전송하세요.
이 샘플 본문에서criteria
필드는 textArray
값을 사용하여 txt_values
'California'와 'Pennsylvania'를 제공합니다. 다른 데이터 유형의 검색 기준을 제공할 수도 있습니다. 각 요청에는 하나의 검색 기준 유형만 지정할 수 있습니다.
추가 검색 기준 옵션
정수 범위 (경계 포함)
"int_range_array" : { "int_ranges": { "start": "5", "end": "10" } "int_ranges": { "start": "20", "end": "30" } }
부동 소수점 범위 (경계 포함)
"float_range_array" : { "float_ranges": { "start": "2.6", "end": "14.3" } "float_ranges": { "start": "205.3", "end": "205.8" } }
위치정보 (좌표 및 반경)
"geo_location_array": { "circle_areas": { "latitude": "37.4221", "longitude": "122.0841", "radius_meter": "500" }, "circle_areas": { "latitude": "12.46523", "longitude": "-95.2146", "radius_meter": "100" } }
불리언
"bool_value" : { "value": "true" }
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
JSON 요청 본문:
{ "page_size": "2", "content_time_ranges": { "date_time_ranges": { "start": { "year":"2018", "month":"1", "day":"1", }, "end": { "year":"2019", "month":"1", "day":"1", } }, "date_time_ranges": { "start": { "year":"2020", "month":"1", "day":"1", }, "end": { "year":"2021", "month":"1", "day":"1", } } }, "criteria": { "field": "state", "text_array": { "txt_values": "California", "txt_values": "Pennsylvania" } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
결과의 다음 페이지를 검색하려면 반환된 next_page_token
가 추가된 원래 요청 매개변수를 전달합니다.
facet_results
배열에는 원래 쿼리와 일치하는 콘텐츠가 표시됩니다.
위의 대답은 보안 카메라 중 하나가 스포츠 용품점에 배치되어 있고 다른 하나는 식료품점에 배치되어 있음을 나타냅니다.
이 쿼리를 식료품점 영상만 표시하도록 제한하려면 패싯 선택과 함께 동일한 요청을 다시 전달합니다.
패싯 선택이 포함된 JSON 요청 본문:
{ "page_size": "2", "content_time_ranges": { "date_time_ranges": { "start": { "year":"2018", "month":"1", "day":"1", }, "end": { "year":"2018", "month":"12", "day":"31", } }, "date_time_ranges": { "start": { "year":"2020", "month":"1", "day":"1", }, "end": { "year":"2020", "month":"12", "day":"31", } } }, "criteria": { "field": "state", "text_array": { "txt_values": "California", "txt_values": "Pennsylvania" } }, "facet_selections": { "facetId": "state", "displayName": "State", "buckets": { "value": { "stringValue": "California" } }, "buckets": { "value": { "stringValue": "Pennsylvania" } }, "bucketType": "FACET_BUCKET_TYPE_VALUE" }, "facet_selections": { "facetId": "store-type", "displayName": "StoreType", "buckets": { "value": { "stringValue": "Sporting Goods" } }, "buckets": { "value": { "stringValue": "Grocery" }, "selected": "true" }, "bucketType": "FACET_BUCKET_TYPE_VALUE" } }
식료품 패싯이 선택되었으므로 모든 대답에는 "store-type":"Grocery"
주석이 포함됩니다.
검색 시 클립 애셋 메타데이터 반환
또한 Vertex AI Vision API를 사용하면 사용자가 result_annotation_keys
를 사용하여 검색 결과와 함께 반환할 추가 클립 메타데이터를 지정할 수 있습니다.
REST
이 예에서는 사용자 제공 주석 키 "camera-location"
가 요청 본문에 지정되고 키의 값 ("Sunnyvale"
)이 응답에 제공됩니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
JSON 요청 본문:
{ "page_size": "2", "criteria": { "field": "state", "text_array": { "txt_values": "California", "txt_values": "Pennsylvania" } }, "result_annotation_keys": "camera-location" }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
기준을 사용하여 검색에서 애셋 메타데이터 반환
각 검색 결과 항목에 대해 일치하는 주석을 반환할지 여부를 검색 기준에 지정할 수 있습니다. 이 기능은 INTEGER
, FLOAT
, BOOLEAN
, STRING
(EXACT_SEARCH
만 해당)의 제한된 데이터 스키마 유형에 지원되며 주석은 파티션 수준에 있어야 합니다.
웨어하우스 코퍼스에 다음 데이터 스키마를 만든다고 가정해 보겠습니다.
{ "key": "image-classification", "schema_details": { "type":"STRING", "granularity":"GRANULARITY_PARTITION_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } }
"image-classification"
의 일부 주석은 스트리밍 동영상 수집 또는 CreateAnnotation
요청을 사용하여 코퍼스에 수집됩니다.
주석이 인그레션된 후 "image-classification"
를 검색하여 동영상 결과와 해당 주석을 가져올 수 있습니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
JSON 요청 본문:
{ "page_size": "5", "facet_selections": { "facet_id": "image-classification", "fetch_matched_annotations": "true", "bucket_type": "FACET_BUCKET_TYPE_VALUE", "buckets": { "value": { "string_value": "cat" }, "selected" : "true" }, } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
전체 검색을 사용하여 검색에서 애셋 메타데이터 반환
전역 검색은 사용자가 개별 기준을 지정하는 대신 검색어를 입력할 수 있는 공간을 제공합니다. 데이터 스키마에서 검색 가능하도록 설정된 문자열 유형 기준에 대해 검색할 수 있습니다. 일치하는 결과가 검색되어 사용자에게 반환됩니다.
이 기능을 사용하려면 SearchAssetsRequest
에서 search_query
필드를 설정하세요.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
JSON 요청 본문:
{ "page_size": "2", "search_query': "Pennsylvania" }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
검색에서 반환된 애셋 메타데이터에 정렬 사양 적용
정렬 기능을 사용하여 사용자가 제공한 annotation
에 따라 검색 결과를 정렬할 수 있습니다. 이는 문자열 및 숫자 유형과 같이 순서를 지정할 수 있는 데이터 스키마 유형으로 결과를 정렬하는 데 유용합니다.
이 기능을 사용하려면 데이터 스키마 키와 오름차순/내림차순이 최소한으로 필요한 schema_key_sorting_strategy
를 지정하세요.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
JSON 요청 본문:
{ "page_size": "2", "schemaKeySortingStrategy": { "options": { "data_schema_key": "stream-display-name", "sort_decreasing": true } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
성공 상태 코드(2xx)와 빈 응답을 받게 됩니다.
검색 구성 만들기
Vision Warehouse를 사용하면 사용자가 검색 구성을 통해 검색 환경을 맞춤설정할 수 있습니다. 검색 구성은 사용자 제공 주석, Google Cloud 동영상 이해 모델에서 생성된 유용한 정보와 같은 동영상 데이터를 사용하여 사용자에게 추가 검색 옵션을 제공합니다. 예를 들어 창고에 있는 자동차 동영상 데이터에서 특정 색상의 차량이 포함된 클립을 타겟팅하려면 쿼리에 특정 검색 구성을 사용하면 됩니다.
SearchConfig
을 사용하여 더 세부적인 구성 옵션을 설정할 수 있습니다.
다음 예에서는 SearchConfig
리소스를 만드는 방법을 보여줍니다.
일반 가이드라인
모든 사용 사례에서 요청이 성공적으로 실행되려면 다음 조건을 충족해야 합니다.
Request.search_configuration.name
이(가) 이미 존재하면 안 됩니다.mapped_fields
배열은 비어 있으면 안 되며 기존 사용자 제공 주석 키에 매핑되어야 합니다.- 모든
mapped_fields
은 동일한 유형이어야 합니다. - 모든
mapped_fields
는 정확한/스마트 일치 구성을 공유해야 합니다. - 모든
mapped_fields
는 동일한 세부사항을 공유해야 합니다.
SearchConfig
를 만드는 데는 여러 사용 사례가 있으며 각 사용 사례에는 따라야 하는 고유한 가이드라인이 있습니다.
맞춤 검색 기준으로 검색 구성 만들기
이 섹션에서는 맞춤 연산자를 사용자가 제공한 하나 이상의 주석 키에 매핑하는 방법을 설명합니다. 이 경우 요청을 빌드할 때 일반 가이드라인을 충족해야 합니다.
REST
요청 URL 끝에 새 SearchConfig
ID를 지정해야 합니다. 요청의 필드로 지정하면 안 됩니다.
이 예시에서 사용자가 제공한 주석 키는 "player"
, "coach"
, "cheerleader"
입니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- SEARCHCONFIG: 타겟
SearchConfig
의 이름입니다. - 이 예시의
SearchConfig
는person
입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=person
JSON 요청 본문:
{ "search_criteria_property": { "mapped_fields": "player", "mapped_fields": "coach", "mapped_fields": "cheerleader", } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=person"
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=person" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/person", "searchCriteriaProperty": { "mappedFields": [ "player", "coach", "cheerleader" ] } }
1:1 패싯 매핑으로 검색 구성 만들기
단일 사용자 제공 주석 키의 패싯을 만들려면 Request.search_configuration.facet_property.mapped_fields
에 단일 요소가 포함되어야 합니다. 이 요소의 값은 사용자가 지정한 주석 키 이름이어야 합니다.
다음 예에서는 사용자 제공 주석 키 "Location"
의 패싯 매핑을 만드는 방법을 보여줍니다.
REST
요청 URL 끝에 새 SearchConfig
ID를 지정해야 합니다. 요청의 필드로 지정하면 안 됩니다.
이 예에서는 요청 URL의 search_config_id
(Location
)가 기존 사용자 제공 주석 키를 참조하고 mapped_fields
에 값이 search_config_id
(Location
)인 요소가 정확히 하나 포함되어 있으므로 요청이 성공합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- SEARCHCONFIG: 타겟
SearchConfig
의 이름입니다. - 이 예시의
SearchConfig
는Location
입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location
JSON 요청 본문:
{ "facet_property": { "mapped_fields": "Location", "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location"
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location" | Select-Object -Expand Content
다음 요청은 필요한 요구사항을 충족하지 않아 실패합니다.
실패한 요청
실패한 요청 1:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \ -d "{ "facet_property": { "mapped_fields": "City", /* City is not equal to search_config_id. */ "display_name": "City", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
실패한 요청 2:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=City \ -d "{ "facet_property": { "mapped_fields": "City", /* City doesn't map to an existing user-given annotation key. */ "display_name": "City", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
실패한 요청 3:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \ -d "{ "facet_property": { "mapped_fields": "Location", "mapped_fields": "City", /* mapped_fields contains more than 1 element. */ "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
맞춤 1:1 또는 그 이상의 패싯 매핑으로 검색 구성 만들기
맞춤 패싯 값과 하나 이상의 사용자 제공 주석 키 간의 매핑을 만들려는 클라이언트는 다음을 충족해야 합니다.
Request.search_configuration
에는Request.search_configuration.search_criteria_property.mapped_fields
에Request.search_configuration.facet_property.mapped_fields
와 동일한 요소가 포함되도록SearchCriteriaProperty
가 포함되어야 합니다.
REST
요청 URL 끝에 새 SearchConfig
ID를 지정해야 합니다. 요청의 필드로 지정하면 안 됩니다.
다음 예시에서는 사용자 제공 주석 키 "City"
및 "State"
의 패싯 매핑을 만드는 방법을 보여줍니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- SEARCHCONFIG: 타겟
SearchConfig
의 이름입니다. - 이 예시의
SearchConfig
는Location
입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location
JSON 요청 본문:
{ "search_criteria_property": { "mapped_fields": "City", "mapped_fields": "State", "mapped_fields": "Province", } "facet_property": { "mapped_fields": "City", "mapped_fields": "State", "display_name": "Province", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location"
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location" | Select-Object -Expand Content
다음 요청은 필요한 요구사항을 충족하지 않아 실패합니다.
실패한 요청
실패한 요청 1:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \ -d "{ "facet_property": { /* Request is missing a SearchCriteriaProperty object.*/ "mapped_fields": "City", "mapped_fields": "State", "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
실패한 요청 2:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \ -d "{ "search_criteria_property": { "mapped_fields": "City", "mapped_fields": "State", } "facet_property": { "mapped_fields": "City", "mapped_fields": "State", "mapped_fields": "Province", /* Province is missing from search_criteria_property. */ "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
범위 기반 패싯으로 검색 구성 만들기
범위 패싯은 일반 패싯과 비슷하지만 각 패싯 버킷은 연속된 범위를 포함합니다. 추가 구성(range_facet_config
)은 이러한 패싯 버킷 범위에 관한 시스템 정보를 제공합니다.
범위 패싯은 다음에서 사용할 수 있습니다.
- 정수
- 날짜
범위 패싯에는 세 가지 유형이 있습니다.
- 고정 범위 - 각 버킷의 크기가 동일합니다.
- 맞춤 범위 - 프로그래밍 가능한 버킷 크기입니다. 예를 들어 로그입니다.
- 기간 -
DAY
,MONTH
,YEAR
의 고정 버킷 세분성 이는 기간 패싯에만 적용됩니다.
범위 지정에 관한 몇 가지 추가 유효성 검사와 함께 동일한 조건이 단수 패싯으로 적용됩니다.
고정 범위 버킷 사양
다음 예시에서는 inventory-count
필드의 고정 범위 패싯 사양을 만들고 [-inf, 0), [0, 10), [10, 20), [20, 30), [30, inf]
버킷이 생성됩니다.
REST
요청 URL 끝에 새 SearchConfig
ID를 지정해야 합니다. 요청의 필드로 지정하면 안 됩니다.
이 요청은 FixedRangeBucketSpec
를 사용하여 세부사항이 동일한 여러 버킷을 만듭니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- SEARCHCONFIG: 타겟
SearchConfig
의 이름입니다. - 이 예시의
SearchConfig
는inventory-count
입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=inventory-count
JSON 요청 본문:
{ "facet_property": { "mapped_fields": "inventory-count", "display_name": "Inventory Count", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_FIXED_RANGE", "fixed_range_bucket_spec": { "bucket_start": { "integer_value": 0 }, "bucket_granularity": { "integer_value": 10 }, "bucket_count": 5 } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=inventory-count"
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=inventory-count" | Select-Object -Expand Content
맞춤 범위 버킷 사양
다음 예시에서는 video-views
필드의 고정 범위 패싯 사양을 만들고 [inf, 0), [0, 10), [10, 100), [100, 1000), [1000, 10000), [10000, inf)
버킷이 생성됩니다.
REST
요청 URL 끝에 새 SearchConfig
ID를 지정해야 합니다. 요청의 필드로 지정하면 안 됩니다.
이 요청은 CustomRangeBucketSpec
을 사용하여 값이 버킷화되는 방식을 지정합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- SEARCHCONFIG: 타겟
SearchConfig
의 이름입니다. - 이 예시의
SearchConfig
는video-views
입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=video-views
JSON 요청 본문:
{ "facet_property": { "mapped_fields": "video-views", "display_name": "Video Views", "result_size": "6", "bucket_type":"FACET_BUCKET_TYPE_CUSTOM_RANGE", "custom_range_bucket_spec": { "endpoints": { "integer_value": 0 }, "endpoints": { "integer_value": 10 }, "endpoints": { "integer_value": 100 }, "endpoints": { "integer_value": 1000 }, "endpoints": { "integer_value": 10000 } } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=video-views"
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=video-views" | Select-Object -Expand Content
날짜 / 시간 범위 버킷 사양
다음 예시에서는 DAY
세부사항으로 film-date
필드의 기간 사양을 만듭니다.
REST
요청 URL 끝에 새 SearchConfig
ID를 지정해야 합니다. 요청의 필드로 지정하면 안 됩니다.
이 요청은 DateTimeBucketSpec
을 사용하여 날짜 값을 버킷화하는 방법을 지정합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- SEARCHCONFIG: 타겟
SearchConfig
의 이름입니다. - 이 예시의
SearchConfig
는film-date
입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=film-date
JSON 요청 본문:
{ "facet_property": { "mapped_fields": "film-date", "display_name": "Film Date", "result_size": "5", "bucket_type": "FACET_BUCKET_TYPE_DATETIME", "datetime_bucket_spec": { "granularity": "DAY" } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=film-date"
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=film-date" | Select-Object -Expand Content
패싯 선택을 사용하여 검색
이러한 패싯 버킷을 만든 후 이를 사용하여 창고를 검색할 수 있습니다.
REST
이 요청은 facetSelections
객체를 사용하여 패싯 버킷 그룹을 지정합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT_NUMBER: Google Cloud 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
HTTP 메서드 및 URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
JSON 요청 본문:
{ "page_size": "10", "facet_selections": { "facet_id": "inventory-count", "buckets": { "range": { "end" : { "integer_value": 0 } } }, "buckets": { "range": { "start" : { "integer_value": 20 }, "end" : { "integer_value": 30 } } } }, "facet_selections": { "facet_id": "video-views", "buckets": { "range": { "start" : { "integer_value": 100 }, "end" : { "integer_value": 1000 } } } }, "facet_selections": { "facet_id": "film-date", "buckets": { "range": { "start" : { "datetime_value": { "year": 2022, "month": 9, "day": 10 } }, "end" : { "datetime_value": { "year": 2022, "month": 9, "day": 11 } } } } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
검색 구성 업데이트
현재 SearchConfig
를 업데이트하려면 요청이 다음 요구사항을 충족해야 합니다.
Request.searchConfig.name
이 이미 있어야 합니다.- 요청에는 비어 있지 않은
searchCriteriaProperty
또는facetProperty
이 하나 이상 포함되어야 합니다. mappedFields
배열은 비어 있으면 안 되며 기존 사용자 제공 주석 키에 매핑되어야 합니다.- 모든
mappedFields
은 동일한 유형이어야 합니다. - 모든
mappedFields
는 동일한 세부사항을 공유해야 합니다. - 모든
mappedFields
는 동일한 의미SearchConfig
일치 옵션을 공유해야 합니다.
REST 및 명령줄
다음 코드 샘플은 projects.locations.corpora.searchConfigs.patch
메서드를 사용하여 창고 검색 구성 리소스를 업데이트합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- REGIONALIZED_ENDPOINT: 엔드포인트에
LOCATION_ID
와 일치하는 접두사가 포함될 수 있습니다(예:europe-west4-
). 리전화된 엔드포인트에 대해 자세히 알아보세요. - PROJECT: Google Cloud 프로젝트 ID 또는 프로젝트 번호
- LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면
us-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - CORPUS_ID: 타겟 코퍼스의 ID입니다.
- SEARCHCONFIG_ID: 타겟
SearchConfig
의 ID입니다. "mappedFields"
: 하나 이상의 기존 사용자 제공 주석 키입니다.
HTTP 메서드 및 URL:
PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID
JSON 요청 본문:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1", "searchCriteriaProperty": { "mappedFields": "dataschema2" } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1", "searchCriteriaProperty": { "mappedFields": [ "dataschema2" ] } }