색인 관리

비전 창고 색인 (이미지 및 일괄 동영상 업로드 카테고리에서 사용 가능)은 분석된 애셋주석의 관리형 표현인 코퍼스 수준 리소스입니다. 색인은 미디어 콘텐츠의 의미를 나타내는 임베딩 벡터와 시맨틱 제한사항의 데이터 세트로 볼 수 있습니다. 색인을 검색을 위해 색인 엔드포인트에 배포할 수 있습니다.

corpus에 색인을 만들면 색인에 분석된 모든 애셋과 코퍼스의 기존 주석이 모두 포함됩니다. 색인을 만든 후 추가하는 애셋 또는 주석의 경우 코퍼스 또는 해당 애셋을 다시 분석하고 색인을 업데이트하여 색인에 포함해야 합니다.

창고 색인 만들기

REST

색인 리소스를 만들려면 projects.locations.corpora.indexes.create 메서드를 사용하여 POST 요청을 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • REGIONALIZED_ENDPOINT: 엔드포인트에 LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예: europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요.
  • PROJECT_NUMBER: Google Cloud 프로젝트 번호
  • LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 us-central1, europe-west4입니다. 사용 가능한 리전을 참고하세요.
  • CORPUS_ID: 타겟 코퍼스의 ID입니다.
  • INDEX_ID: (선택사항) 색인 ID에 대해 사용자가 제공한 값입니다. 이 요청에서 값은 다음과 같은 형식으로 요청 URL에 추가됩니다.
    • https://REGIONALIZED_ENDPOINT/v1/[...]/corpora/CORPUS_ID/indexes?index_id=INDEX_ID

HTTP 메서드 및 URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes

JSON 요청 본문:

{
  "display_name": "DISPLAY_NAME",
  "description": "INDEX_DESCRIPTION",
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

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/indexes"

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/indexes" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.CreateIndexMetadata"
  }
}

창고 색인 업데이트

UpdateIndex API를 사용하면 display_name, description과 같은 색인의 메타데이터 필드와 기본 색인 콘텐츠(assets 및 해당 annotations)를 업데이트할 수 있습니다.

요청의 update_mask 필드(필드 마스크라고도 함)는 업데이트로 Index 리소스에서 덮어쓸 필드를 지정하는 데 사용됩니다. update_mask에 지정된 필드는 전체 요청이 아닌 해당 리소스를 기준으로 합니다. 마스크에 있으면 리소스의 필드를 덮어씁니다. 빈 필드 마스크는 허용되지 않습니다. 마스크가 '*'이면 색인의 전체 업데이트와 색인 데이터의 전체 재빌드가 트리거됩니다.

REST

색인 리소스를 업데이트하려면 projects.locations.corpora.indexes.patch 메서드를 사용하여 PATCH 요청을 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • REGIONALIZED_ENDPOINT: 엔드포인트에 LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예: europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요.
  • PROJECT_NUMBER: Google Cloud 프로젝트 번호
  • LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 us-central1, europe-west4입니다. 사용 가능한 리전을 참고하세요.
  • CORPUS_ID: 타겟 코퍼스의 ID입니다.
  • INDEX_ID: 타겟 색인의 ID입니다.
  • ?update_mask=fieldToUpdate: update_mask을 적용할 수 있는 필드의 목록입니다. 요청 본문에서 새 필드의 해당 값을 지정합니다. 이 새 값은 기존 필드 값을 대체합니다. 쉼표로 구분된 값으로 여러 필드를 지정할 수 있습니다. 사용 가능한 필드:
    • 표시 이름: ?update_mask=display_name
    • 설명: ?update_mask=description
    • 기본 색인 데이터 업데이트: ?update_mask=entire_corpus
    • 모든 필드 업데이트: ?update_mask=*

HTTP 메서드 및 URL:

PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID?update_mask=display_name,entire_corpus

JSON 요청 본문:

{
  "display_name": "DISPLAY_NAME",
  "entire_corpus": 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://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID?update_mask=display_name,entire_corpus"

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/indexes/INDEX_ID?update_mask=display_name,entire_corpus" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.UpdateIndexMetadata"
  }
}

스트리밍 색인 업데이트

IndexAssetRemoveIndexAsset API를 사용하면 색인에 스트리밍 업데이트를 할 수 있습니다. 이러한 API는 일괄 동영상의 Vision 웨어하우스에서만 지원됩니다.

창고의 색인 나열

REST

코퍼스에 속한 색인을 나열하려면 projects.locations.corpora.indexes.list 메서드를 사용하여 GET 요청을 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • REGIONALIZED_ENDPOINT: 엔드포인트에 LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예: europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요.
  • PROJECT_NUMBER: Google Cloud 프로젝트 번호
  • LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 us-central1, europe-west4입니다. 사용 가능한 리전을 참고하세요.
  • CORPUS_ID: 타겟 코퍼스의 ID입니다.

HTTP 메서드 및 URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes"

PowerShell

다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "indexes": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID_1",
      "display_name": "DISPLAY_NAME_1",
      "description": "DESCRIPTION_1",
      "entireCorpus": true,
      "state": "CREATED"
    },
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID_2",
      "display_name": "DISPLAY_NAME_2",
      "description": "DESCRIPTION_2",
      "entireCorpus": true,
      "state": "CREATED"
    }
  ]
}

색인 가져오기

REST

인덱스에 대한 세부정보를 가져오려면 projects.locations.corpora.indexes.get 메서드를 사용하여 GET 요청을 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • REGIONALIZED_ENDPOINT: 엔드포인트에 LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예: europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요.
  • PROJECT_NUMBER: Google Cloud 프로젝트 번호
  • LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 us-central1, europe-west4입니다. 사용 가능한 리전을 참고하세요.
  • CORPUS_ID: 타겟 코퍼스의 ID입니다.
  • INDEX_ID: 타겟 색인의 ID입니다.

HTTP 메서드 및 URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"

PowerShell

다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
  "display_name": "DISPLAY_NAME",
  "description": "DESCRIPTION",
  "entireCorpus": true,
  "state": "CREATED"
}

색인 아래의 애셋 보기

REST

인덱스에 있는 애셋에 관한 세부정보를 가져오려면 projects.locations.corpora.indexes.viewAssets 메서드를 사용하여 GET 요청을 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • REGIONALIZED_ENDPOINT: 엔드포인트에 LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예: europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요.
  • PROJECT_NUMBER: Google Cloud 프로젝트 번호
  • LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 us-central1, europe-west4입니다. 사용 가능한 리전을 참고하세요.
  • CORPUS_ID: 타겟 코퍼스의 ID입니다.
  • INDEX_ID: 타겟 색인의 ID입니다.
  • PAGE_SIZE: (선택사항) 반환할 결과 수입니다.
  • PAGE_TOKEN: (선택사항) 이전 호출 응답에서 제공된 nextPageToken입니다. 결과의 다음 페이지를 가져오는 데 사용할 수 있습니다.

HTTP 메서드 및 URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN"

PowerShell

다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "indexedAssets": [
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1"
    },
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2"
    }
  ],
  "nextPageToken": "NEXT_PAGE_TOKEN"
}

필터를 사용하여 색인이 생성된 애셋 보기

projects.locations.corpora.indexes.viewAssets 메서드의 filter 필드를 사용하여 쉼표로 구분된 애셋 ID 목록을 제공하면 색인 아래의 모든 애셋을 필터링하고 제공된 애셋만 표시할 수 있습니다.

REST

인덱스에 있는 애셋을 나열하고 필터링하려면 projects.locations.corpora.indexes.viewAssets 메서드를 사용하여 GET 요청을 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • REGIONALIZED_ENDPOINT: 엔드포인트에 LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예: europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요.
  • PROJECT_NUMBER: Google Cloud 프로젝트 번호
  • LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 us-central1, europe-west4입니다. 사용 가능한 리전을 참고하세요.
  • CORPUS_ID: 타겟 코퍼스의 ID입니다.
  • INDEX_ID: 타겟 색인의 ID입니다.
  • PAGE_SIZE: (선택사항) 반환할 결과 수입니다.
  • PAGE_TOKEN: (선택사항) 이전 호출 응답에서 제공된 nextPageToken입니다. 결과의 다음 페이지를 가져오는 데 사용할 수 있습니다.
  • ASSET_ID_FILTER: (선택사항) 반환된 목록에서 필터링할 애셋 ID를 쉼표로 구분한 목록입니다. 예를 들면 다음과 같습니다.
    • ?filter=ASSET_ID_1"
    • ?filter=ASSET_ID_1,ASSET_ID_2"

HTTP 메서드 및 URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER"

PowerShell

다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "indexedAssets": [
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1"
    },
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2"
    }
  ],
  "nextPageToken": "NEXT_PAGE_TOKEN"
}

색인 삭제

색인은 indexEndpoint에 배포되지 않은 경우에만 삭제할 수 있습니다. 배포된 색인을 삭제하기 전에 색인 배포 취소 가이드를 따르세요.

REST

색인 리소스를 삭제하려면 projects.locations.corpora.indexes.delete 메서드를 사용하여 DELETE 요청을 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • REGIONALIZED_ENDPOINT: 엔드포인트에 LOCATION_ID와 일치하는 접두사가 포함될 수 있습니다(예: europe-west4-). 리전화된 엔드포인트에 대해 자세히 알아보세요.
  • PROJECT_NUMBER: Google Cloud 프로젝트 번호
  • LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 us-central1, europe-west4입니다. 사용 가능한 리전을 참고하세요.
  • CORPUS_ID: 타겟 코퍼스의 ID입니다.
  • INDEX_ID: 타겟 색인의 ID입니다.

HTTP 메서드 및 URL:

DELETE https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

다음 명령어를 실행합니다.

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"

PowerShell

다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
}