명령줄을 사용하여 스트리밍 동영상 창고 데이터 검색

Vision 웨어하우스를 만들고 앱에 추가한 후 앱을 배포하면 스트리밍 동영상 웨어하우스에 저장된 데이터를 검색할 수 있습니다.

스트리밍 동영상 메타데이터 검색

창고 (corpus)에서 데이터 (assets)를 검색하려면 찾을 콘텐츠를 SearchAssetsRequest에 입력합니다. 이러한 콘텐츠는 다음과 같은 다양한 형식으로 제공됩니다.

  1. criteria - 사용자가 제공한 텍스트, 숫자 또는 날짜 콘텐츠입니다.
  2. facet_selections - 서버에서 반환하고 사용자가 선택한 텍스트 콘텐츠입니다.
  3. content_time_ranges - 반환된 모든 콘텐츠가 포함되어야 하는 기간입니다.

다음 예에서는 전국의 다양한 유형의 매장의 보안 카메라 영상이 포함된 창고를 생각해 보겠습니다. 주석 "state": "California" 또는 주석 "state":"Pennsylvania"로 태그된 2018년 또는 2020년의 모든 저작물을 검색하려면 다음 요청을 전송합니다.

REST

애셋을 검색하려면 projects.locations.corpora.searchAssets 메서드를 사용하여 POST 요청을 전송합니다.

이 샘플 본문에서 criteria 필드는 textArray 값을 사용하여 두 개의 txt_values('캘리포니아' 및 '펜실베이니아')를 제공합니다. 다른 데이터 유형에 대한 검색 기준을 제공할 수도 있습니다. 각 요청에서 검색 기준 유형은 하나만 지정할 수 있습니다.

추가 검색 기준 옵션

정수 범위 (양 끝값 포함)

    "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 리소스를 만드는 방법을 보여줍니다.

일반 가이드라인

모든 사용 사례에서 요청이 성공적으로 실행되려면 다음 조건을 충족해야 합니다.

  1. Request.search_configuration.name가 이미 존재해서는 안 됩니다.
  2. mapped_fields 배열은 비어 있지 않아야 하며 사용자가 지정한 기존 주석 키에 매핑되어야 합니다.
  3. 모든 mapped_fields는 동일한 유형이어야 합니다.
  4. 모든 mapped_fields는 정확한/스마트 일치 구성을 공유해야 합니다.
  5. 모든 mapped_fields는 동일한 세부사항을 공유해야 합니다.

SearchConfig를 만드는 데는 여러 사용 사례가 있으며, 각 사용 사례에는 따라야 하는 고유한 가이드라인이 있습니다.

맞춤 검색 기준으로 검색 구성 만들기

이 섹션에서는 커스텀 연산자를 하나 이상의 사용자 제공 주석 키에 매핑하는 방법을 설명합니다. 이 경우 요청을 빌드할 때 일반 가이드라인을 충족해야 합니다.

REST

SearchConfig ID는 요청의 필드가 아닌 요청 URL 끝에 지정해야 합니다.

이 예시에서 사용자가 지정한 주석 키는 "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의 이름입니다.
    • 이 예시의 SearchConfigperson입니다.

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

SearchConfig ID는 요청의 필드가 아닌 요청 URL 끝에 지정해야 합니다.

이 예에서는 요청 URL의 search_config_id(Location)가 기존 사용자 제공 주석 키를 참조하고 mapped_fieldssearch_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의 이름입니다.
    • 이 예시의 SearchConfigLocation입니다.

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 이상의 측면 매핑으로 검색 구성 만들기

맞춤 상품 속성 값과 하나 이상의 사용자 제공 주석 키 간에 매핑을 만들려는 클라이언트는 다음을 충족해야 합니다.

  1. Request.search_configuration에는 Request.search_configuration.search_criteria_property.mapped_fieldsRequest.search_configuration.facet_property.mapped_fields와 동일한 요소가 포함되도록 SearchCriteriaProperty가 포함되어야 합니다.

REST

SearchConfig ID는 요청의 필드가 아닌 요청 URL 끝에 지정해야 합니다.

다음 예는 사용자가 지정한 주석 키 "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의 이름입니다.
    • 이 예시의 SearchConfigLocation입니다.

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)은 이러한 측면 버킷 범위에 관한 시스템 정보를 제공합니다.

범위 측정기준은 다음에서 사용할 수 있습니다.

  1. 정수
  2. 날짜

범위 측정기준에는 세 가지 유형이 있습니다.

  1. 고정 범위 - 각 버킷의 크기가 동일합니다.
  2. 맞춤 범위 - 프로그래밍 가능한 버킷 크기입니다. 예를 들어 대수적입니다.
  3. 기간 - DAY, MONTH, YEAR의 버킷 세부사항이 수정되었습니다. 이는 기간 패싯에만 적용됩니다.

동일한 조건이 단일 면으로 적용되며 범위 사양과 관련된 추가 유효성 검사가 있습니다.

고정 범위 버킷 사양

다음 예에서는 inventory-count 필드에 고정 범위 측정기준 사양을 만들고 결과로 [-inf, 0), [0, 10), [10, 20), [20, 30), [30, inf] 버케트를 만듭니다.

REST

SearchConfig ID는 요청의 필드가 아닌 요청 URL 끝에 지정해야 합니다.

이 요청은 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의 이름입니다.
    • 이 예시의 SearchConfiginventory-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

SearchConfig ID는 요청의 필드가 아닌 요청 URL 끝에 지정해야 합니다.

이 요청은 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의 이름입니다.
    • 이 예시의 SearchConfigvideo-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

SearchConfig ID는 요청의 필드가 아닌 요청 URL 끝에 지정해야 합니다.

이 요청은 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의 이름입니다.
    • 이 예시의 SearchConfigfilm-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를 업데이트하려면 요청이 다음 요구사항을 충족해야 합니다.

  1. Request.searchConfig.name가 이미 있어야 합니다.
  2. 요청에는 비어 있지 않은 searchCriteriaProperty 또는 facetProperty가 하나 이상 포함되어야 합니다.
  3. mappedFields 배열은 비어 있어서는 안 되며 기존 사용자 제공 주석 키에 매핑되어야 합니다.
  4. 모든 mappedFields는 동일한 유형이어야 합니다.
  5. 모든 mappedFields는 동일한 세부사항을 공유해야 합니다.
  6. 모든 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": 사용자가 지정한 기존 주석 키 1개 이상

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"
    ]
  }
}