Dopo aver creato un Vision Warehouse, averlo aggiunto a un'app e averla implementata, puoi cercare i dati archiviati nel warehouse di video in streaming.
Cercare i metadati dei video in streaming
Per cercare i dati (assets
) nel tuo warehouse (corpus
), compila il campo
SearchAssetsRequest
con i contenuti che vuoi trovare. Questi
contenuti sono disponibili in diversi formati:
criteria
: contenuti di testo, numerici o di data forniti dall'utente.facet_selections
: contenuti di testo restituiti dal server e selezionati dall'utente.content_time_ranges
: intervalli di date in cui devono rientrare tutti i contenuti restituiti.
Nell'esempio seguente, considera un magazzino che contiene filmati di telecamere di sicurezza
di diversi tipi di negozi in tutto il paese. Per recuperare tutti gli asset per gli anni 2018 o 2020 taggati con l'annotazione "state": "California"
o "state":"Pennsylvania"
, invia la seguente richiesta:
REST
Per cercare asset, invia una richiesta POST utilizzando il metodo projects.locations.corpora.searchAssets.
In questo corpo di esempio, il campocriteria
utilizza i valori textArray
per fornire
due txt_values
: "California" e "Pennsylvania". Puoi anche fornire criteri di ricerca per altri tipi di dati. Puoi specificare un solo tipo di criteri di ricerca in ogni richiesta.
Opzioni aggiuntive per i criteri di ricerca
Intervalli di numeri interi (inclusi)
"int_range_array" : { "int_ranges": { "start": "5", "end": "10" } "int_ranges": { "start": "20", "end": "30" } }
Intervalli di numeri in virgola mobile (inclusi)
"float_range_array" : { "float_ranges": { "start": "2.6", "end": "14.3" } "float_ranges": { "start": "205.3", "end": "205.8" } }
Località geografiche (coordinate e raggio)
"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" } }
Valori booleani
"bool_value" : { "value": "true" }
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGIONALIZED_ENDPOINT: l'endpoint potrebbe includere un prefisso corrispondente a
LOCATION_ID
, ad esempioeurope-west4-
. Scopri di più sugli endpoint regionalizzati. - PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
Metodo HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corpo JSON della richiesta:
{ "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" } } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Per recuperare la pagina successiva dei risultati, trasmetti i parametri della richiesta originale
aggiunti a next_page_token
restituito.
L'array facet_results
mostra i contenuti che corrispondono alla query originale.
La risposta precedente indica che una delle videocamere di sicurezza è posizionata
in un negozio di articoli sportivi, mentre l'altra è posizionata in un
negozio di alimentari.
Per limitare questa query in modo da mostrare solo le riprese del negozio di alimentari, restituisci la stessa richiesta con una selezione di sfaccettature.
Corpo JSON della richiesta con selezione delle sfaccettature:
{ "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" } }
Poiché è selezionata la sfaccettatura Alimentari, qualsiasi risposta conterrà
l'annotazione "store-type":"Grocery"
.
Restituisci i metadati degli asset dei clip durante la ricerca
L'API Vertex AI Vision consente inoltre agli utenti di specificare metadati clip aggiuntivi da restituire
con il risultato di ricerca, utilizzando result_annotation_keys
.
REST
In questo esempio, la chiave di annotazione fornita dall'utente
"camera-location"
è specificata nel corpo della richiesta e il
valore della chiave ("Sunnyvale"
) è fornito nella risposta.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGIONALIZED_ENDPOINT: l'endpoint potrebbe includere un prefisso corrispondente a
LOCATION_ID
, ad esempioeurope-west4-
. Scopri di più sugli endpoint regionalizzati. - PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
Metodo HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corpo JSON della richiesta:
{ "page_size": "2", "criteria": { "field": "state", "text_array": { "txt_values": "California", "txt_values": "Pennsylvania" } }, "result_annotation_keys": "camera-location" }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Utilizzare i criteri per restituire i metadati delle risorse nella ricerca
Puoi specificare nei criteri di ricerca se restituire le annotazioni
corrispondenti per ogni elemento dei risultati di ricerca. Questa funzionalità è supportata per tipi di schema di dati limitati: INTEGER
, FLOAT
, BOOLEAN
, STRING
(solo EXACT_SEARCH
) e l'annotazione deve essere a livello di partizione.
Supponiamo di creare il seguente schema dei dati in un corpus del warehouse:
{ "key": "image-classification", "schema_details": { "type":"STRING", "granularity":"GRANULARITY_PARTITION_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } }
Alcune annotazioni per "image-classification"
vengono inserite nel corpus utilizzando
l'inserimento di video in streaming o una richiesta CreateAnnotation
.
Una volta inserite le annotazioni, puoi cercare
"image-classification"
e ottenere i risultati video e le annotazioni
corrispondenti:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGIONALIZED_ENDPOINT: l'endpoint potrebbe includere un prefisso corrispondente a
LOCATION_ID
, ad esempioeurope-west4-
. Scopri di più sugli endpoint regionalizzati. - PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
Metodo HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corpo JSON della richiesta:
{ "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" }, } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Utilizzare la ricerca globale per restituire i metadati delle risorse nella ricerca
La ricerca globale offre agli utenti un luogo in cui inserire le query di ricerca, anziché specificare singoli criteri. Puoi eseguire ricerche in base a criteri di tipo stringa impostati come ricercabili nel relativo schema dei dati. I risultati corrispondenti vengono recuperati e restituiti.
Per utilizzare questa funzionalità, imposta il campo search_query
in SearchAssetsRequest
:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGIONALIZED_ENDPOINT: l'endpoint potrebbe includere un prefisso corrispondente a
LOCATION_ID
, ad esempioeurope-west4-
. Scopri di più sugli endpoint regionalizzati. - PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
Metodo HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corpo JSON della richiesta:
{ "page_size": "2", "search_query': "Pennsylvania" }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Applica la specifica di ordinamento per ordinare i metadati delle risorse restituite nella ricerca
Puoi utilizzare la funzionalità di ordinamento per ordinare i risultati di ricerca in base al annotation
fornito dall'utente. Ciò può essere utile per ordinare i risultati con tipi di schema di dati che possono essere ordinati, come i tipi stringa e numerici.
Per utilizzare questa funzionalità, specifica schema_key_sorting_strategy
, che richiede almeno una chiave dello schema dei dati e l'ordine crescente/decrescente:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGIONALIZED_ENDPOINT: l'endpoint potrebbe includere un prefisso corrispondente a
LOCATION_ID
, ad esempioeurope-west4-
. Scopri di più sugli endpoint regionalizzati. - PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
Metodo HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corpo JSON della richiesta:
{ "page_size": "2", "schemaKeySortingStrategy": { "options": { "data_schema_key": "stream-display-name", "sort_decreasing": true } } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.
Creare configurazioni di ricerca
Vision Warehouse consente agli utenti di personalizzare la propria esperienza di ricerca tramite la configurazione della ricerca. La configurazione della ricerca utilizza i dati video, ad esempio le annotazioni fornite dagli utenti e gli approfondimenti generati dai modelli di comprensione dei video, per fornire all'utente ulteriori opzioni di ricerca. Google Cloud Ad esempio, se vuoi scegliere come target clip con veicoli di colori specifici dai dati video delle auto nel tuo warehouse, puoi utilizzare una configurazione di ricerca specifica per la tua query.
Puoi utilizzare un SearchConfig
per impostare opzioni di configurazione più granulari.
L'esempio seguente mostra come creare una risorsa
SearchConfig
.
Linee guida generali
Per tutti i casi d'uso, la tua richiesta deve soddisfare le seguenti condizioni per essere eseguita correttamente:
Request.search_configuration.name
non deve esistere già.- L'array
mapped_fields
non deve essere vuoto e deve essere mappato alle chiavi di annotazione esistenti fornite dall'utente. - Tutti i parametri
mapped_fields
devono essere dello stesso tipo. - Tutti i
mapped_fields
devono condividere la configurazione della corrispondenza esatta/smart. - Tutti i
mapped_fields
devono condividere la stessa granularità.
Esistono diversi casi d'uso per la creazione di un SearchConfig
, ognuno con linee guida distinte da seguire.
Crea una configurazione di ricerca con criteri di ricerca personalizzati
Questa sezione descrive come mappare un operatore personalizzato a una o più chiavi di annotazione fornite dall'utente. In questo caso, devi soddisfare le linee guida generali quando crei la richiesta.
REST
Devi specificare il nuovo ID SearchConfig
alla fine dell'URL della richiesta, non come campo nella richiesta.
Le chiavi di annotazione fornite dall'utente in questo esempio sono "player"
, "coach"
e
"cheerleader"
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGIONALIZED_ENDPOINT: l'endpoint potrebbe includere un prefisso corrispondente a
LOCATION_ID
, ad esempioeurope-west4-
. Scopri di più sugli endpoint regionalizzati. - PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG: il nome del tuo
SearchConfig
di destinazione. - Il
SearchConfig
in questo esempio èperson
.
Metodo HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=person
Corpo JSON della richiesta:
{ "search_criteria_property": { "mapped_fields": "player", "mapped_fields": "coach", "mapped_fields": "cheerleader", } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/person", "searchCriteriaProperty": { "mappedFields": [ "player", "coach", "cheerleader" ] } }
Crea una configurazione di ricerca con la mappatura delle sfaccettature 1:1
Per creare un facet per una singola chiave di annotazione fornita dall'utente, devi assicurarti che
Request.search_configuration.facet_property.mapped_fields
contenga un singolo
elemento. Il valore di questo elemento deve essere il nome di una chiave di annotazione fornita dall'utente.
L'esempio seguente mostra come creare una mappatura delle sfaccettature per la chiave di annotazione fornita dall'utente "Location"
.
REST
Devi specificare il nuovo ID SearchConfig
alla fine dell'URL della richiesta, non come campo nella richiesta.
In questo esempio, la richiesta va a buon fine perché search_config_id
(Location
)
nell'URL della richiesta fa riferimento a una chiave di annotazione esistente fornita dall'utente, e
mapped_fields
contiene esattamente un elemento con un valore uguale a
search_config_id
(Location
).
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGIONALIZED_ENDPOINT: l'endpoint potrebbe includere un prefisso corrispondente a
LOCATION_ID
, ad esempioeurope-west4-
. Scopri di più sugli endpoint regionalizzati. - PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG: il nome del tuo
SearchConfig
di destinazione. - Il
SearchConfig
in questo esempio èLocation
.
Metodo HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location
Corpo JSON della richiesta:
{ "facet_property": { "mapped_fields": "Location", "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Le seguenti richieste non vanno a buon fine perché non soddisfano i requisiti necessari.
Richieste non riuscite
Richiesta non riuscita 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" } }"
Richiesta non riuscita 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" } }"
Richiesta non riuscita 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" } }"
Crea una configurazione di ricerca con una mappatura delle sfaccettature personalizzata 1:1 o superiore
I clienti che vogliono creare una mappatura tra un valore di sfaccettatura personalizzato e una o più chiavi di annotazione fornite dall'utente devono assicurarsi che:
Request.search_configuration
deve contenere unSearchCriteriaProperty
in modo cheRequest.search_configuration.search_criteria_property.mapped_fields
contenga gli stessi elementi diRequest.search_configuration.facet_property.mapped_fields
.
REST
Devi specificare il nuovo ID SearchConfig
alla fine dell'URL della richiesta, non come campo nella richiesta.
Il seguente esempio mostra come creare una mappatura delle sfaccettature per le
chiavi di annotazione fornite dall'utente "City"
e "State"
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGIONALIZED_ENDPOINT: l'endpoint potrebbe includere un prefisso corrispondente a
LOCATION_ID
, ad esempioeurope-west4-
. Scopri di più sugli endpoint regionalizzati. - PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG: il nome del tuo
SearchConfig
di destinazione. - Il
SearchConfig
in questo esempio èLocation
.
Metodo HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location
Corpo JSON della richiesta:
{ "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" } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Le seguenti richieste non vanno a buon fine perché non soddisfano i requisiti necessari.
Richieste non riuscite
Richiesta non riuscita 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" } }"
Richiesta non riuscita 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" } }"
Crea una configurazione di ricerca con sfaccettature basate su intervalli
I facet di intervallo sono simili ai facet normali, ma ogni bucket di facet copre un intervallo continuo. Una configurazione aggiuntiva
(range_facet_config
) fornisce al sistema informazioni su
questi intervalli dei bucket di sfaccettatura.
I facet di intervallo sono disponibili per:
- Numeri interi
- Date
Esistono tre tipi di sfaccettature di intervallo:
- Intervallo fisso: ogni bucket ha le stesse dimensioni.
- Intervallo personalizzato: dimensioni dei bucket programmabili. Ad esempio, logaritmica.
- Intervallo di date: granularità dei bucket fisse di
DAY
,MONTH
eYEAR
. Questo vale solo per i facet dell'intervallo di date.
Valgono le stesse condizioni delle sfaccettature singole, con alcune convalide aggiuntive relative alla specifica dell'intervallo.
Specifica del bucket dell'intervallo fisso
L'esempio seguente crea una specifica di sfaccettatura a intervallo fisso per il campo
inventory-count
e genera i bucket:
[-inf, 0), [0, 10), [10, 20), [20, 30), [30, inf]
.
REST
Devi specificare il nuovo ID SearchConfig
alla fine dell'URL della richiesta, non come campo nella richiesta.
Questa richiesta utilizza FixedRangeBucketSpec
per creare più bucket con granularità uguali.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGIONALIZED_ENDPOINT: l'endpoint potrebbe includere un prefisso corrispondente a
LOCATION_ID
, ad esempioeurope-west4-
. Scopri di più sugli endpoint regionalizzati. - PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG: il nome del tuo
SearchConfig
di destinazione. - Il
SearchConfig
in questo esempio èinventory-count
.
Metodo HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=inventory-count
Corpo JSON della richiesta:
{ "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 } } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Specifica del bucket di intervallo personalizzato
L'esempio seguente crea una specifica di sfaccettatura a intervallo fisso per il campo
video-views
e genera i bucket:
[inf, 0), [0, 10), [10, 100), [100, 1000), [1000, 10000), [10000, inf)
.
REST
Devi specificare il nuovo ID SearchConfig
alla fine dell'URL della richiesta, non come campo nella richiesta.
Questa richiesta utilizza CustomRangeBucketSpec
per specificare la modalità di suddivisione dei valori nei bucket.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGIONALIZED_ENDPOINT: l'endpoint potrebbe includere un prefisso corrispondente a
LOCATION_ID
, ad esempioeurope-west4-
. Scopri di più sugli endpoint regionalizzati. - PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG: il nome del tuo
SearchConfig
di destinazione. - Il
SearchConfig
in questo esempio èvideo-views
.
Metodo HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=video-views
Corpo JSON della richiesta:
{ "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 } } } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Specifica del bucket dell'intervallo di data / ora
L'esempio seguente crea una specifica dell'intervallo di date per il campo film-date
con
granularità DAY
.
REST
Devi specificare il nuovo ID SearchConfig
alla fine dell'URL della richiesta, non come campo nella richiesta.
Questa richiesta utilizza DateTimeBucketSpec
per specificare la modalità di suddivisione dei valori di data nei bucket.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGIONALIZED_ENDPOINT: l'endpoint potrebbe includere un prefisso corrispondente a
LOCATION_ID
, ad esempioeurope-west4-
. Scopri di più sugli endpoint regionalizzati. - PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG: il nome del tuo
SearchConfig
di destinazione. - Il
SearchConfig
in questo esempio èfilm-date
.
Metodo HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=film-date
Corpo JSON della richiesta:
{ "facet_property": { "mapped_fields": "film-date", "display_name": "Film Date", "result_size": "5", "bucket_type": "FACET_BUCKET_TYPE_DATETIME", "datetime_bucket_spec": { "granularity": "DAY" } } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Utilizzare le selezioni dei facet per la ricerca
Dopo aver creato questi bucket di sfaccettature, puoi utilizzarli per cercare nel magazzino.
REST
Questa richiesta utilizza oggetti facetSelections
per specificare un gruppo di bucket di sfaccettature.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGIONALIZED_ENDPOINT: l'endpoint potrebbe includere un prefisso corrispondente a
LOCATION_ID
, ad esempioeurope-west4-
. Scopri di più sugli endpoint regionalizzati. - PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
Metodo HTTP e URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corpo JSON della richiesta:
{ "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 } } } } } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Aggiornare una configurazione di ricerca
Per aggiornare l'SearchConfig
attuale, la tua richiesta deve soddisfare i seguenti
requisiti:
Request.searchConfig.name
deve esistere già.- La richiesta deve contenere almeno un
searchCriteriaProperty
o unfacetProperty
non vuoto. - L'array
mappedFields
non deve essere vuoto e deve essere mappato alle chiavi di annotazione esistenti fornite dall'utente. - Tutti i parametri
mappedFields
devono essere dello stesso tipo. - Tutti i
mappedFields
devono condividere la stessa granularità. - Tutti i
mappedFields
devono condividere le stesse opzioni di corrispondenza semanticaSearchConfig
.
REST & CMD LINE
Il seguente esempio di codice aggiorna una risorsa di configurazione della ricerca nel magazzino
utilizzando il metodo
projects.locations.corpora.searchConfigs.patch
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGIONALIZED_ENDPOINT: l'endpoint potrebbe includere un prefisso corrispondente a
LOCATION_ID
, ad esempioeurope-west4-
. Scopri di più sugli endpoint regionalizzati. - PROJECT: il tuo Google Cloud ID progetto o numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG_ID: l'ID del tuo
SearchConfig
target. "mappedFields"
: Una o più chiavi di annotazione fornite dall'utente esistenti.
Metodo HTTP e URL:
PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID
Corpo JSON della richiesta:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1", "searchCriteriaProperty": { "mappedFields": "dataschema2" } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1", "searchCriteriaProperty": { "mappedFields": [ "dataschema2" ] } }