建立圖片語料庫並執行 AnalyzeCorpus 以產生語料庫資料的嵌入信號後,您就可以繼續建立索引和索引端點。將索引部署至這個索引端點後,您就可以使用條件篩選器功能執行語意搜尋。搜尋結果包含圖片清單,並依關聯分數排序。
使用輸入的文字進行搜尋
如要在 corpus 中搜尋 assets,請在 SearchIndexEndpointRequest 中填入所需搜尋內容,格式如下:
text_query:要搜尋的文字查詢。- 選用
criteria或exclusion_criteria:根據使用者提供的註解篩選條件。可套用於文字、數字、布林值或日期/時間值。
在下列範例中,請考慮包含自然風景圖片的詞彙庫。如要擷取與「sunset at beach」相關聯且標有註解 "state": "California" 的所有素材資源,請傳送以下要求 (請將 FIELD_NAME 替換為 state,並將 FIELD_VALUE 替換為 California):
REST 和指令列
使用任何要求資料之前,請先替換以下項目:
- REGIONALIZED_ENDPOINT:端點可能包含與
LOCATION_ID相符的前置字串,例如europe-west4-。進一步瞭解 地區化端點。 - PROJECT_NUMBER:您的 Google Cloud 專案編號。
- LOCATION_ID:您使用 Vertex AI Vision 的區域。例如:
us-central1、europe-west4。請參閱可用地區。 - INDEX_ENDPOINT_ID:目標索引端點的 ID。
HTTP 方法和網址:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint
JSON 要求主體:
{
"text_query": "sunset at beach",
"criteria": [
{
"field": "state",
"text_array": {
"txt_values": [
"California"
]
}
}
]
}
如要傳送要求,請選擇以下其中一個選項:
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/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint"
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/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint" | Select-Object -Expand Content
您應該會收到如下的 JSON 回應:
{
"searchResultItems": [
{
"asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1",
"relevance": "0.99"
},
{
"asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2",
"relevance": "0.98"
}
]
}
使用輸入圖片進行搜尋
如果您有海灘日落的圖片,也可以將其做為搜尋查詢,擷取類似圖片:
REST 和指令列
使用任何要求資料之前,請先替換以下項目:
- REGIONALIZED_ENDPOINT:端點可能包含與
LOCATION_ID相符的前置字串,例如europe-west4-。進一步瞭解 地區化端點。 - PROJECT_NUMBER:您的 Google Cloud 專案編號。
- LOCATION_ID:您使用 Vertex AI Vision 的區域。例如:
us-central1、europe-west4。請參閱可用地區。 - INDEX_ENDPOINT_ID:目標索引端點的 ID。
HTTP 方法和網址:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint
JSON 要求主體:
{
"image_query": {
"input_image": "IMAGE_BYTES"
},
"criteria": [
{
"field": "FIELD_NAME",
"text_array": {
"txt_values": [
"FIELD_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/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint"
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/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint" | Select-Object -Expand Content
您應該會收到如下的 JSON 回應:
{
"searchResultItems": [
{
"asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1",
"relevance": 0.99
},
{
"asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2",
"relevance": 0.98
}
]
}
使用現有圖片進行搜尋
您也可以使用語料庫中的現有圖片素材資源,擷取類似圖片。第一個搜尋結果會是相同的圖片素材資源,關聯度分數為 1.0:
REST 和指令列
使用任何要求資料之前,請先替換以下項目:
- REGIONALIZED_ENDPOINT:端點可能包含與
LOCATION_ID相符的前置字串,例如europe-west4-。進一步瞭解 地區化端點。 - PROJECT_NUMBER:您的 Google Cloud 專案編號。
- LOCATION_ID:您使用 Vertex AI Vision 的區域。例如:
us-central1、europe-west4。請參閱可用地區。 - INDEX_ENDPOINT_ID:目標索引端點的 ID。
- CORPUS_ID:目標語料庫的 ID。
- ASSET_ID:目標素材資源的 ID。
HTTP 方法和網址:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint
JSON 要求主體:
{
"image_query": {
"asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID"
}
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint"
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/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint" | Select-Object -Expand Content
您應該會收到如下的 JSON 回應:
{
"searchResultItems": [
{
"asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1",
"relevance": 1.0
},
{
"asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2",
"relevance": 0.99
}
]
}