Cercare i dati del data warehouse video in streaming utilizzando la riga di comando

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:

  1. criteria: contenuti di testo, numeri o date forniti dall'utente.
  2. facet_selections: contenuti di testo restituiti dal server e selezionati dall'utente.
  3. 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 campo criteria 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 esempio europe-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 esempio europe-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 esempio europe-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:

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 esempio europe-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 esempio europe-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:

  1. Request.search_configuration.name non deve esistere già.
  2. L'array mapped_fields non deve essere vuoto e deve essere mappato alle chiavi di annotazione esistenti fornite dall'utente.
  3. Tutti i parametri mapped_fields devono essere dello stesso tipo.
  4. Tutti i mapped_fields devono condividere la configurazione della corrispondenza esatta/intelligente.
  5. 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 esempio europe-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 esempio europe-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:

  1. Request.search_configuration deve contenere un SearchCriteriaProperty in modo che Request.search_configuration.search_criteria_property.mapped_fields contenga gli stessi elementi di Request.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 esempio europe-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:

  1. Numeri interi
  2. Date

Esistono tre tipi di fasce:

  1. Intervallo fisso: ogni bucket ha le stesse dimensioni.
  2. Intervallo personalizzato: dimensioni dei bucket programmabili. Ad esempio, logaritmica.
  3. Intervallo di date: granularità dei bucket fisse di DAY, MONTH e YEAR. 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 esempio europe-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 esempio europe-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 esempio europe-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
 

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 esempio europe-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:

  1. Request.searchConfig.name deve già esistere.
  2. La richiesta deve contenere almeno un valore non vuoto per searchCriteriaProperty o facetProperty.
  3. L'array mappedFields non deve essere vuoto e deve essere mappato alle chiavi di annotazione fornite dall'utente esistenti.
  4. Tutti i parametri mappedFields devono essere dello stesso tipo.
  5. Tutti i valori mappedFields devono avere la stessa granularità.
  6. Tutti i mappedFields devono condividere le stesse opzioni di corrispondenza SearchConfig 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 esempio europe-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"
    ]
  }
}