Menelusuri data warehouse video streaming menggunakan command line

Setelah membuat Vision Warehouse, menambahkannya ke aplikasi, dan men-deploy aplikasi, Anda dapat menelusuri data yang disimpan di warehouse video streaming.

Menelusuri metadata video streaming

Untuk menelusuri data (assets) di warehouse (corpus), isi SearchAssetsRequest dengan konten yang ingin Anda temukan. Konten ini tersedia dalam beberapa format:

  1. criteria - Konten teks, angka, atau tanggal yang diberikan oleh pengguna.
  2. facet_selections - Konten teks yang ditampilkan oleh server, dan dipilih oleh pengguna.
  3. content_time_ranges - Rentang tanggal yang harus mencakup semua konten yang ditampilkan.

Dalam contoh berikut, pertimbangkan Gudang yang berisi rekaman kamera keamanan dari berbagai jenis toko di seluruh negara. Untuk mengambil semua aset untuk tahun 2018 atau 2020 yang diberi tag dengan anotasi "state": "California", atau anotasi "state":"Pennsylvania", kirim permintaan berikut:

REST

Untuk menelusuri aset, kirim permintaan POST menggunakan metode projects.locations.corpora.searchAssets.

Dalam contoh isi ini, kolom criteria menggunakan nilai textArray untuk memberikan dua txt_values: "California" dan "Pennsylvania". Anda juga dapat memberikan kriteria penelusuran untuk jenis data lainnya. Anda hanya dapat menentukan satu jenis kriteria penelusuran dalam setiap permintaan.

Opsi kriteria penelusuran tambahan

Rentang bilangan bulat (inklusif)

    "int_range_array" : {
      "int_ranges": { "start": "5", "end": "10" }
      "int_ranges": { "start": "20", "end": "30" }
    }
    

Rentang float (inklusif)

    "float_range_array" : {
      "float_ranges": { "start": "2.6", "end": "14.3" }
      "float_ranges": { "start": "205.3", "end": "205.8" }
    }
    

Geolokasi (koordinat dan radius)

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

Boolean

    "bool_value" : {
      "value": "true"
    }
    

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGIONALIZED_ENDPOINT: Endpoint mungkin menyertakan awalan yang cocok dengan LOCATION_ID seperti europe-west4-. Lihat selengkapnya tentang endpoint yang diregionalkan.
  • PROJECT_NUMBER: Nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • CORPUS_ID: ID korpus target Anda.

Metode HTTP dan URL:

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

Isi JSON permintaan:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Untuk mengambil halaman hasil berikutnya, teruskan parameter permintaan asli yang ditambahkan dengan next_page_token yang ditampilkan.

Array facet_results menampilkan konten yang cocok dengan kueri asli. Respons di atas menunjukkan bahwa salah satu kamera keamanan ditempatkan di toko perlengkapan olahraga, sedangkan kamera lainnya ditempatkan di toko bahan makanan.

Untuk membatasi kueri ini agar hanya menampilkan rekaman video toko bahan makanan, teruskan permintaan yang sama dengan pilihan faset.

Meminta isi JSON dengan pilihan aspek:

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

Karena aspek Grocery dipilih, respons apa pun akan berisi anotasi "store-type":"Grocery".

Menampilkan metadata aset klip saat melakukan penelusuran

Vertex AI Vision API juga memungkinkan pengguna menentukan metadata klip tambahan untuk ditampilkan dengan hasil penelusuran, menggunakan result_annotation_keys.

REST

Dalam contoh ini, kunci anotasi yang disediakan pengguna "camera-location" ditentukan dalam isi permintaan, dan nilai kunci ("Sunnyvale") diberikan dalam respons.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGIONALIZED_ENDPOINT: Endpoint mungkin menyertakan awalan yang cocok dengan LOCATION_ID seperti europe-west4-. Lihat selengkapnya tentang endpoint yang diregionalkan.
  • PROJECT_NUMBER: Nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • CORPUS_ID: ID korpus target Anda.

Metode HTTP dan URL:

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

Isi JSON permintaan:

{
   "page_size": "2",
   "criteria": {
     "field": "state",
     "text_array": {
       "txt_values": "California",
       "txt_values": "Pennsylvania"
     }
   },
   "result_annotation_keys": "camera-location"
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Menggunakan kriteria untuk menampilkan metadata aset dalam penelusuran

Anda dapat menentukan dalam kriteria penelusuran apakah akan menampilkan anotasi yang cocok untuk setiap item hasil penelusuran. Fitur ini didukung untuk jenis skema data terbatas: INTEGER, FLOAT, BOOLEAN, STRING (khusus EXACT_SEARCH), dan anotasi harus berada di tingkat partisi.

Misalkan Anda membuat skema data berikut di korpus warehouse:

{
  "key": "image-classification",
  "schema_details": {
    "type":"STRING",
    "granularity":"GRANULARITY_PARTITION_LEVEL",
    "search_strategy": {
      "search_strategy_type":"EXACT_SEARCH"
    }
  }
}

Beberapa anotasi untuk "image-classification" diserap ke korpus menggunakan penyerapan video streaming atau permintaan CreateAnnotation.

Setelah anotasi diserap, Anda dapat menelusuri "image-classification" dan mendapatkan hasil video serta anotasi yang sesuai:

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGIONALIZED_ENDPOINT: Endpoint mungkin menyertakan awalan yang cocok dengan LOCATION_ID seperti europe-west4-. Lihat selengkapnya tentang endpoint yang diregionalkan.
  • PROJECT_NUMBER: Nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • CORPUS_ID: ID korpus target Anda.

Metode HTTP dan URL:

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

Isi JSON permintaan:

{
  "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"
      },
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Penelusuran global menyediakan tempat bagi pengguna untuk memasukkan kueri penelusuran, bukan menentukan kriteria individual. Anda dapat menelusuri kriteria jenis string yang ditetapkan agar dapat ditelusuri dalam skema datanya. Hasil yang cocok akan diambil dan ditampilkan kepada Anda.

Untuk menggunakan fitur ini, tetapkan kolom search_query di SearchAssetsRequest:

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGIONALIZED_ENDPOINT: Endpoint mungkin menyertakan awalan yang cocok dengan LOCATION_ID seperti europe-west4-. Lihat selengkapnya tentang endpoint yang diregionalkan.
  • PROJECT_NUMBER: Nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • CORPUS_ID: ID korpus target Anda.

Metode HTTP dan URL:

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

Isi JSON permintaan:

{
    "page_size": "2",
    "search_query': "Pennsylvania"
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Menerapkan spesifikasi pengurutan untuk mengurutkan metadata aset yang ditampilkan dalam penelusuran

Anda dapat menggunakan fitur pengurutan untuk mengurutkan hasil penelusuran menurut annotation yang diberikan pengguna. Hal ini dapat berguna untuk mengurutkan hasil dengan jenis skema data yang dapat diurutkan, seperti jenis string dan numerik.

Untuk menggunakan fitur ini, tentukan schema_key_sorting_strategy, yang memerlukan setidaknya kunci skema data dan urutan menaik/menurun:

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGIONALIZED_ENDPOINT: Endpoint mungkin menyertakan awalan yang cocok dengan LOCATION_ID seperti europe-west4-. Lihat selengkapnya tentang endpoint yang diregionalkan.
  • PROJECT_NUMBER: Nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • CORPUS_ID: ID korpus target Anda.

Metode HTTP dan URL:

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

Isi JSON permintaan:

{
    "page_size": "2",
    "schemaKeySortingStrategy":
    { "options": 
      { 
        "data_schema_key": "stream-display-name", 
        "sort_decreasing": true
      } 
    }

}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima kode status yang menandakan proses berhasil (2xx), dan sebuah respons kosong.

Membuat konfigurasi penelusuran

Vision Warehouse memungkinkan pengguna menyesuaikan pengalaman penelusuran mereka melalui konfigurasi penelusuran. Konfigurasi Penelusuran menggunakan data video - seperti anotasi dan insight yang diberikan pengguna yang dihasilkan oleh Google Cloud model pemahaman video - untuk memberikan opsi penelusuran tambahan kepada pengguna. Misalnya, jika ingin menargetkan klip dengan kendaraan berwarna tertentu dari data video mobil di penyimpanan, Anda dapat menggunakan konfigurasi penelusuran tertentu untuk kueri Anda.

Anda dapat menggunakan SearchConfig untuk menetapkan opsi konfigurasi yang lebih terperinci.

Contoh berikut menunjukkan cara membuat resource SearchConfig.

Panduan umum

Untuk semua kasus penggunaan, permintaan Anda harus memenuhi kondisi berikut agar berhasil dijalankan:

  1. Request.search_configuration.name tidak boleh sudah ada.
  2. Array mapped_fields tidak boleh kosong, dan harus dipetakan ke kunci anotasi yang diberikan pengguna yang ada.
  3. Semua mapped_fields harus memiliki jenis yang sama.
  4. Semua mapped_fields harus memiliki konfigurasi pencocokan persis/cerdas yang sama.
  5. Semua mapped_fields harus memiliki tingkat perincian yang sama.

Ada beberapa kasus penggunaan untuk membuat SearchConfig, masing-masing dengan panduan yang berbeda yang harus Anda ikuti.

Membuat konfigurasi penelusuran dengan kriteria penelusuran kustom

Bagian ini menjelaskan cara memetakan operator kustom ke satu atau beberapa kunci anotasi yang diberikan pengguna. Dalam hal ini, Anda harus memenuhi panduan umum saat mem-build permintaan.

REST

Anda harus menentukan ID SearchConfig baru di akhir URL permintaan, bukan sebagai kolom dalam permintaan.

Kunci anotasi yang diberikan pengguna dalam contoh ini adalah "player", "coach", dan "cheerleader".

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGIONALIZED_ENDPOINT: Endpoint mungkin menyertakan awalan yang cocok dengan LOCATION_ID seperti europe-west4-. Lihat selengkapnya tentang endpoint yang diregionalkan.
  • PROJECT_NUMBER: Nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • CORPUS_ID: ID korpus target Anda.
  • SEARCHCONFIG: Nama SearchConfig target Anda.
    • SearchConfig dalam contoh ini adalah person.

Metode HTTP dan URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=person

Isi JSON permintaan:

{
   "search_criteria_property": {
     "mapped_fields": "player",
     "mapped_fields": "coach",
     "mapped_fields": "cheerleader",
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan melihat respons JSON seperti berikut:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/person",
  "searchCriteriaProperty":
    {
      "mappedFields": [
        "player",
        "coach",
        "cheerleader"
      ]
    }
}

Membuat konfigurasi penelusuran dengan pemetaan aspek 1:1

Untuk membuat facet untuk satu kunci anotasi yang diberikan pengguna, Anda harus memastikan bahwa Request.search_configuration.facet_property.mapped_fields berisi satu elemen. Nilai elemen ini harus berupa nama kunci anotasi yang diberikan pengguna.

Contoh berikut menunjukkan cara membuat pemetaan facet untuk kunci anotasi yang diberikan pengguna "Location".

REST

Anda harus menentukan ID SearchConfig baru di akhir URL permintaan, bukan sebagai kolom dalam permintaan.

Dalam contoh ini, permintaan berhasil karena search_config_id (Location) di URL permintaan mereferensikan kunci anotasi yang diberikan pengguna yang ada, dan mapped_fields berisi tepat satu elemen dengan nilai yang sama dengan search_config_id (Location).

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGIONALIZED_ENDPOINT: Endpoint mungkin menyertakan awalan yang cocok dengan LOCATION_ID seperti europe-west4-. Lihat selengkapnya tentang endpoint yang diregionalkan.
  • PROJECT_NUMBER: Nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • CORPUS_ID: ID korpus target Anda.
  • SEARCHCONFIG: Nama SearchConfig target Anda.
    • SearchConfig dalam contoh ini adalah Location.

Metode HTTP dan URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location

Isi JSON permintaan:

{
   "facet_property": {
     "mapped_fields": "Location",
     "display_name": "Location",
     "result_size": "5",
     "bucket_type":"FACET_BUCKET_TYPE_VALUE"
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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
 

Permintaan berikut gagal karena tidak memenuhi persyaratan yang diperlukan.

Permintaan yang gagal

Permintaan 1 gagal:

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

Permintaan 2 gagal:

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

Permintaan 3 gagal:

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

Membuat konfigurasi penelusuran dengan pemetaan aspek kustom 1:1 atau lebih

Klien yang ingin membuat pemetaan antara nilai faset kustom dan satu atau beberapa kunci anotasi yang diberikan pengguna harus memastikan bahwa:

  1. Request.search_configuration harus berisi SearchCriteriaProperty sehingga Request.search_configuration.search_criteria_property.mapped_fields berisi elemen yang sama dengan Request.search_configuration.facet_property.mapped_fields.

REST

Anda harus menentukan ID SearchConfig baru di akhir URL permintaan, bukan sebagai kolom dalam permintaan.

Contoh berikut menunjukkan cara membuat pemetaan facet untuk kunci anotasi yang diberikan pengguna, yaitu "City" dan "State".

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGIONALIZED_ENDPOINT: Endpoint mungkin menyertakan awalan yang cocok dengan LOCATION_ID seperti europe-west4-. Lihat selengkapnya tentang endpoint yang diregionalkan.
  • PROJECT_NUMBER: Nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • CORPUS_ID: ID korpus target Anda.
  • SEARCHCONFIG: Nama SearchConfig target Anda.
    • SearchConfig dalam contoh ini adalah Location.

Metode HTTP dan URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location

Isi JSON permintaan:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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
 

Permintaan berikut gagal karena tidak memenuhi persyaratan yang diperlukan.

Permintaan yang gagal

Permintaan 1 gagal:

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

Permintaan 2 gagal:

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

Membuat konfigurasi penelusuran dengan faset berbasis rentang

Segmen rentang mirip dengan segmen normal, tetapi setiap bucket segmen mencakup beberapa rentang berkelanjutan. Konfigurasi tambahan (range_facet_config) memberikan informasi sistem tentang rentang bucket aspek ini.

Faset rentang tersedia untuk:

  1. Bilangan bulat
  2. Tanggal

Ada tiga jenis facet rentang:

  1. Rentang tetap - Setiap bucket memiliki ukuran yang sama.
  2. Rentang kustom - Ukuran bucket yang dapat diprogram. Misalnya, logaritma.
  3. Rentang tanggal - Perincian bucket tetap DAY, MONTH, dan YEAR. Hal ini hanya berlaku untuk facet rentang tanggal.

Kondisi yang sama berlaku sebagai satu aspek, dengan beberapa validasi tambahan terkait spesifikasi rentang.

Spesifikasi bucket rentang tetap

Contoh berikut membuat spesifikasi facet rentang tetap untuk kolom inventory-count, dan menghasilkan bucket: [-inf, 0), [0, 10), [10, 20), [20, 30), [30, inf].

REST

Anda harus menentukan ID SearchConfig baru di akhir URL permintaan, bukan sebagai kolom dalam permintaan.

Permintaan ini menggunakan FixedRangeBucketSpec untuk membuat beberapa bucket dengan tingkat perincian yang sama.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGIONALIZED_ENDPOINT: Endpoint mungkin menyertakan awalan yang cocok dengan LOCATION_ID seperti europe-west4-. Lihat selengkapnya tentang endpoint yang diregionalkan.
  • PROJECT_NUMBER: Nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • CORPUS_ID: ID korpus target Anda.
  • SEARCHCONFIG: Nama SearchConfig target Anda.
    • SearchConfig dalam contoh ini adalah inventory-count.

Metode HTTP dan URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=inventory-count

Isi JSON permintaan:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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
 

Spesifikasi bucket rentang kustom

Contoh berikut membuat spesifikasi facet rentang tetap untuk kolom video-views, dan menghasilkan bucket: [inf, 0), [0, 10), [10, 100), [100, 1000), [1000, 10000), [10000, inf).

REST

Anda harus menentukan ID SearchConfig baru di akhir URL permintaan, bukan sebagai kolom dalam permintaan.

Permintaan ini menggunakan CustomRangeBucketSpec untuk menentukan cara nilai dikelompokkan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGIONALIZED_ENDPOINT: Endpoint mungkin menyertakan awalan yang cocok dengan LOCATION_ID seperti europe-west4-. Lihat selengkapnya tentang endpoint yang diregionalkan.
  • PROJECT_NUMBER: Nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • CORPUS_ID: ID korpus target Anda.
  • SEARCHCONFIG: Nama SearchConfig target Anda.
    • SearchConfig dalam contoh ini adalah video-views.

Metode HTTP dan URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=video-views

Isi JSON permintaan:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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
 

Spesifikasi bucket rentang tanggal / waktu

Contoh berikut membuat spesifikasi rentang tanggal untuk kolom film-date dengan granularitas DAY.

REST

Anda harus menentukan ID SearchConfig baru di akhir URL permintaan, bukan sebagai kolom dalam permintaan.

Permintaan ini menggunakan DateTimeBucketSpec untuk menentukan cara pengelompokan nilai tanggal.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGIONALIZED_ENDPOINT: Endpoint mungkin menyertakan awalan yang cocok dengan LOCATION_ID seperti europe-west4-. Lihat selengkapnya tentang endpoint yang diregionalkan.
  • PROJECT_NUMBER: Nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • CORPUS_ID: ID korpus target Anda.
  • SEARCHCONFIG: Nama SearchConfig target Anda.
    • SearchConfig dalam contoh ini adalah film-date.

Metode HTTP dan URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=film-date

Isi JSON permintaan:

{
  "facet_property": {
    "mapped_fields": "film-date",
    "display_name": "Film Date",
    "result_size": "5",
    "bucket_type": "FACET_BUCKET_TYPE_DATETIME",
    "datetime_bucket_spec": {
       "granularity": "DAY"
    }
 }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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
 

Setelah membuat bucket aspek ini, Anda dapat menggunakannya untuk menelusuri warehouse.

REST

Permintaan ini menggunakan objek facetSelections untuk menentukan grup bucket aspek.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGIONALIZED_ENDPOINT: Endpoint mungkin menyertakan awalan yang cocok dengan LOCATION_ID seperti europe-west4-. Lihat selengkapnya tentang endpoint yang diregionalkan.
  • PROJECT_NUMBER: Nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • CORPUS_ID: ID korpus target Anda.

Metode HTTP dan URL:

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

Isi JSON permintaan:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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
 

Memperbarui konfigurasi penelusuran

Untuk memperbarui SearchConfig saat ini, permintaan Anda harus memenuhi persyaratan berikut:

  1. Request.searchConfig.name harus sudah ada.
  2. Permintaan harus berisi setidaknya satu searchCriteriaProperty atau facetProperty yang tidak kosong.
  3. Array mappedFields tidak boleh kosong, dan harus dipetakan ke kunci anotasi yang diberikan pengguna yang ada.
  4. Semua mappedFields harus memiliki jenis yang sama.
  5. Semua mappedFields harus memiliki tingkat perincian yang sama.
  6. Semua mappedFields harus memiliki opsi pencocokan SearchConfig semantik yang sama.

REST & CMD LINE

Contoh kode berikut memperbarui resource konfigurasi penelusuran gudang menggunakan metode projects.locations.corpora.searchConfigs.patch.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGIONALIZED_ENDPOINT: Endpoint mungkin menyertakan awalan yang cocok dengan LOCATION_ID seperti europe-west4-. Lihat selengkapnya tentang endpoint yang diregionalkan.
  • PROJECT: Project ID atau nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • CORPUS_ID: ID korpus target Anda.
  • SEARCHCONFIG_ID: ID SearchConfig target Anda.
  • "mappedFields": Satu atau beberapa kunci anotasi yang diberikan pengguna yang ada.

Metode HTTP dan URL:

PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID

Isi JSON permintaan:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1",
  "searchCriteriaProperty": {
    "mappedFields": "dataschema2"
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1",
  "searchCriteriaProperty": {
    "mappedFields": [
      "dataschema2"
    ]
  }
}