Dopo aver creato un Vision Warehouse, averlo aggiunto a un'app e aver eseguito il deployment dell'app, puoi cercare i dati archiviati nel warehouse video in streaming.
Cercare nei metadati dei video in streaming
Per cercare i dati (assets
) nel tuo data warehouse (corpus
), compila SearchAssetsRequest
con i contenuti che vuoi trovare. Questi contenuti sono disponibili in diversi formati:
criteria
: contenuti di testo, numeri o date forniti dall'utente.facet_selections
: contenuti di testo restituiti dal server e selezionati dall'utente.content_time_ranges
: gli intervalli di date in cui devono rientrare tutti i contenuti restituiti.
Nell'esempio seguente, prendiamo in considerazione un magazzino contenente filmati di videocamere di sicurezza di diversi tipi di negozi in tutto il paese. Per recuperare tutti gli asset relativi agli anni 2018 o 2020 etichettati con l'anno"state": "California"
o con l'anno "state":"Pennsylvania"
, invia la seguente richiesta:
REST
Per cercare gli 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. In ogni richiesta puoi specificare un solo tipo di criteri di ricerca.
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 valori numerici (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 progetto.
- LOCATION_ID: la regione in cui utilizzi Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Consulta 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 delle seguenti 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 di risultati successiva, passa i parametri di richiesta originali con il valore next_page_token
restituito.
L'array facet_results
mostra i contenuti corrispondenti alla query originale.
La risposta riportata sopra indica che una delle videocamere di sicurezza si trova in un negozio di articoli sportivi, mentre l'altra si trova in un supermercato.
Per limitare questa query in modo da mostrare solo i filmati del supermercato, recapita la stessa richiesta con una selezione di aspetti.
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 frazione Ipermercati, qualsiasi risposta conterrà l'annotazione "store-type":"Grocery"
.
Restituire i metadati delle risorse clip durante la ricerca
L'API Vertex AI Vision consente inoltre agli utenti di specificare metadati aggiuntivi dei clip 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 progetto.
- LOCATION_ID: la regione in cui utilizzi Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Consulta 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 delle seguenti 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
Nei criteri di ricerca puoi specificare se restituire le annotazioni corrispondenti per ogni elemento del risultato 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 di dati in un corpus del data 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 importate nel corpus utilizzando l'importazione di video in streaming o una richiesta CreateAnnotation
.
Una volta importate le annotazioni, puoi cercare "image-classification"
e visualizzare i risultati dei video e le relative annotazioni:
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 progetto.
- LOCATION_ID: la regione in cui utilizzi Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Consulta 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 delle seguenti 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 consente agli utenti di inserire query di ricerca anziché specificare singoli criteri. Puoi eseguire ricerche in base a criteri di tipo stringa impostati per essere cercabili nello schema di 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 progetto.
- LOCATION_ID: la regione in cui utilizzi Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Consulta 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 delle seguenti 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:
Applicare 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 ai annotation
forniti dall'utente. Questa operazione può essere utile per ordinare i risultati con tipi di schema di dati che possono essere ordinati, ad esempio tipi di stringa e numerici.
Per utilizzare questa funzionalità, specifica schema_key_sorting_strategy
, che richiede almeno una chiave dello schema di 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 progetto.
- LOCATION_ID: la regione in cui utilizzi Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Consulta 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 delle seguenti 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 di operazione riuscita (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 di ricerca utilizza i dati dei video, ad esempio le annotazioni fornite dagli utenti e gli approfondimenti generati dai Google Cloud modelli di comprensione dei video, per offrire all'utente opzioni di ricerca aggiuntive. Ad esempio, se vuoi scegliere come target i clip con veicoli di un colore specifico tra i dati video delle auto nel tuo magazzino, 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/intelligente. - Tutti i valori
mapped_fields
devono avere 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 durante la compilazione della 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 progetto.
- LOCATION_ID: la regione in cui utilizzi Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Consulta le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG: il nome del target
SearchConfig
. - Il valore
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 delle seguenti 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 mappatura delle sfaccettature 1:1
Per creare una frazione per una singola chiave di annotazione specificata dall'utente, devi assicurarti che
Request.search_configuration.facet_property.mapped_fields
contenga un singolo
elemento. Il valore di questo elemento deve essere un nome della chiave di annotazione specificato dall'utente.
L'esempio seguente mostra come creare una mappatura delle sfaccettature per la chiave di annotazione "Location"
fornita dall'utente.
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 progetto.
- LOCATION_ID: la regione in cui utilizzi Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Consulta le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG: il nome del target
SearchConfig
. - Il valore
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 delle seguenti 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 1 non riuscita:
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 3 non riuscita:
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 personalizzata 1:1 o più aspetti
I client che vogliono creare una mappatura tra un valore dell'aspetto 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 progetto.
- LOCATION_ID: la regione in cui utilizzi Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Consulta le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG: il nome del target
SearchConfig
. - Il valore
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 delle seguenti 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 1 non riuscita:
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 normali facet, ma ogni bucket di facet copre un intervallo continuo. Una configurazione aggiuntiva
(range_facet_config
) fornisce al sistema informazioni su
questi intervalli di bucket delle sfaccettature.
I facet di intervallo sono disponibili per:
- Numeri interi
- Date
Esistono tre tipi di fasce:
- 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 si applica solo ai componenti delle fasce di date.
Le stesse condizioni si applicano come sfaccettature singole, con alcune verifiche aggiuntive relative alla specifica dell'intervallo.
Specifica del bucket con intervallo fisso
L'esempio seguente crea una specifica del facet di 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 progetto.
- LOCATION_ID: la regione in cui utilizzi Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Consulta le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG: il nome del target
SearchConfig
. - Il valore
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 delle seguenti 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 dell'intervallo personalizzato
L'esempio seguente crea una specifica del facet di 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 progetto.
- LOCATION_ID: la regione in cui utilizzi Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Consulta le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG: il nome del target
SearchConfig
. - Il valore
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 delle seguenti 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 di intervallo di date / ore
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 progetto.
- LOCATION_ID: la regione in cui utilizzi Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Consulta le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG: il nome del target
SearchConfig
. - Il valore
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 delle seguenti 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 di aspetti per la ricerca
Dopo aver creato questi bucket di aspetti, puoi utilizzarli per eseguire ricerche nel data warehouse.
REST
Questa richiesta utilizza oggetti facetSelections
per specificare un gruppo di bucket delle 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 progetto.
- LOCATION_ID: la regione in cui utilizzi Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Consulta 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 delle seguenti 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 già esistere.- La richiesta deve contenere almeno un valore non vuoto per
searchCriteriaProperty
ofacetProperty
. - L'array
mappedFields
non deve essere vuoto e deve essere mappato alle chiavi di annotazione fornite dall'utente esistenti. - Tutti i parametri
mappedFields
devono essere dello stesso tipo. - Tutti i valori
mappedFields
devono avere la stessa granularità. - Tutti i
mappedFields
devono condividere le stesse opzioni di corrispondenzaSearchConfig
semantica.
REST e riga di comando
Il seguente esempio di codice aggiorna una risorsa di configurazione della ricerca del 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
. Consulta le regioni disponibili. - CORPUS_ID: l'ID del corpus di destinazione.
- SEARCHCONFIG_ID: l'ID del target
SearchConfig
. "mappedFields"
: una o più chiavi di annotazione esistenti assegnate dall'utente.
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 delle seguenti 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" ] } }