Crea e aggiorna lo schema di dati

Un Vision Warehouse connesso (corpus) in un'app di importazione dei dati di cui è stato eseguito il deployment contiene uno o più oggetti multimediali assets. Puoi fornire maggiori dettagli su questo oggetto multimediale assets con dataSchema e risorse annotation fornite dagli utenti.

Le risorse dello schema dei dati devono essere create prima di poter creare una risorsa annotation con quella chiave dello schema dei dati. Dopo aver creato uno schema dei dati (risorse dataSchema) per indicare all'API Vertex AI Vision come interpretare le annotazioni dei contenuti multimediali, puoi creare risorse annotation per i contenuti multimediali in un warehouse.

Crea schema di dati (API)

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 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.
  • DATASCHEMA_KEY: questa chiave deve corrispondere a quella di un'annotazione specificata dall'utente ed essere univoca all'interno di un corpus. Ad esempio: data-key.
  • ANNOTATION_DATA_TYPE: il tipo di dati dell'annotazione. I valori disponibili sono:
    • DATA_TYPE_UNSPECIFIED
    • INTEGER
    • FLOAT
    • STRING
    • DATETIME
    • GEO_COORDINATE
    • PROTO_ANY
    • BOOLEAN

    Per saperne di più, consulta la documentazione di riferimento dell'API.

  • ANNOTATION_GRANULARITY: la granularità delle annotazioni in questo dataSchema. I valori disponibili sono:
    • GRANULARITY_UNSPECIFIED - Granularità non specificata.
    • GRANULARITY_ASSET_LEVEL - Granularità a livello di asset (le annotazioni non devono contenere informazioni sulla partizione temporale dell'asset multimediale).
    • GRANULARITY_PARTITION_LEVEL - Granularità a livello di partizione (le annotazioni devono contenere informazioni sulla partizione temporale per l'asset multimediale).
  • SEARCH_STRATEGY: uno dei valori enum disponibili. I tipi di strategie di ricerca da applicare alla chiave di annotazione. I valori disponibili sono:
    • NO_SEARCH
    • EXACT_SEARCH
    • SMART_SEARCH

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "key": "DATASCHEMA_KEY",
  "schema_details": {
    "type": "ANNOTATION_DATA_TYPE",
    "granularity": "ANNOTATION_GRANULARITY",
    "search_strategy": {
      "search_strategy_type": "SEARCH_STRATEGY"
    }
  }
}

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/dataSchemas"

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/dataSchemas" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID",
  "key": "data-key",
  "schemaDetails": {
    "type": "BOOLEAN",
    "granularity": "GRANULARITY_ASSET_LEVEL",
    "searchStrategy": {
      "search_strategy_type": "EXACT_SEARCH"
    }
  }
}

Aggiorna schema dei dati (API)

REST & CMD LINE

Il seguente codice aggiorna un dataSchema utilizzando il metodo projects.locations.corpora.dataSchemas.patch.

Questo esempio utilizza ?updateMask=schemaDetails.type,schemaDetails.granularity nell'URL della richiesta e include i nuovi valori schemaDetails.type e schemaDetails.granularity nel corpo della richiesta per aggiornare lo schema dei dati.

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 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.
  • DATASCHEMA_ID: L'ID dello schema dei dati di destinazione.
  • ?updateMask=fieldToUpdate: uno dei campi disponibili a cui puoi applicare un updateMask. Specifica il nuovo valore del campo corrispondente nel corpo della richiesta. Questo nuovo valore sostituisce il valore del campo esistente. Campi disponibili:
    • Chiave: ?updateMask=key
    • Tipo di schema: ?updateMask=schemaDetails.type
    • Granularità dello schema: ?updateMask=schemaDetails.granularity
    • Tipo di strategia di ricerca dello schema: ?updateMask=schemaDetails.searchStrategy.searchStrategyType
    • Aggiorna tutti i campi: ?updateMask=*

Metodo HTTP e URL:

PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity

Corpo JSON della richiesta:

{
  "key": "original-data-key",
  "schemaDetails": {
    "type":"INTEGER",
    "granularity":"GRANULARITY_PARTITION_LEVEL"
    "searchStrategy": {
      "searchStrategyType": "NO_SEARCH"
    }
  }
}

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/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity"

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/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID",
  "key": "original-data-key",
  "schemaDetails": {
    "type": "INTEGER",
    "granularity": "GRANULARITY_PARTITION_LEVEL",
    "searchStrategy": {
      "searchStrategyType": "NO_SEARCH"
    }
  }
}

Aggiungere uno schema di dati strutturati personalizzato

La struttura personalizzata consente agli utenti di definire contenitori più complessi per contenere i valori e fornire funzionalità di ricerca. Per utilizzare questa funzionalità, lo schema dei dati deve essere definito, ad esempio:

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 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/dataSchemas

Corpo JSON della richiesta:

{
  "key": "person",
  "schema_details" : {
    "type":"CUSTOMIZED_STRUCT",
    "granularity":"GRANULARITY_ASSET_LEVEL",
    "customized_struct_config": {
      "field_schemas": {
         "name": {
            "type":"STRING",
            "granularity":"GRANULARITY_ASSET_LEVEL",
            "search_strategy": {
               "search_strategy_type":"EXACT_SEARCH"
            }
         },
         "age": {
            "type":"FLOAT",
            "granularity":"GRANULARITY_ASSET_LEVEL",
            "search_strategy": {
               "search_strategy_type":"EXACT_SEARCH"
            }
         }
      }
    }
  }
}

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/dataSchemas"

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/dataSchemas" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID",
  "key": "person",
  "schemaDetails" : {
    "type":"CUSTOMIZED_STRUCT",
    "granularity":"GRANULARITY_ASSET_LEVEL",
    "customized_struct_config": {
      "field_schemas": {
         "name": {
            "type":"STRING",
            "granularity":"GRANULARITY_ASSET_LEVEL",
            "search_strategy": {
               "search_strategy_type":"EXACT_SEARCH"
            }
         },
         "age": {
            "type":"FLOAT",
            "granularity":"GRANULARITY_ASSET_LEVEL",
            "search_strategy": {
               "search_strategy_type":"EXACT_SEARCH"
            }
         }
      }
    }
  }
}

Dopodiché, possiamo inserire le annotazioni.

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 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.
  • ASSET_ID: l'ID dell'asset di destinazione.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "user_specified_annotation" : {
    "key": "person",
    "value": {
      "customized_struct_value":{
        "elements" : {
          "name": {
            "str_value":"John"
          },
          "age": {
            "float_value":10.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/assets/ASSET_ID/annotations"

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/assets/ASSET_ID/annotations" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID",
  "userSpecifiedAnnotation": {
    "key": "person",
    "value": {
      "customized_struct_value":{
        "elements" : {
          "name": {
            "str_value":"John"
          },
          "age": {
            "float_value":10.5
          }
        }
      }
    }
  }
}

Una volta indicizzata l'annotazione, è possibile emettere una richiesta di ricerca nel seguente modo:

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 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,
  "criteria": {
    "field": "person.name",
    "text_array": {
      "txt_values": "John"
    },
  },
}

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:

Modificare i dettagli dello schema del warehouse (console)

I campi dello schema vengono generati dai modelli tramite le applicazioni. Puoi anche aggiungere campi personalizzati.

Dopo aver modificato i campi con funzionalità di ricerca, puoi utilizzarli per cercare nel tuo magazzino.

Console

  1. Apri la scheda Magazzini della dashboard di Vertex AI Vision.

    Vai alla scheda Magazzini

  2. Trova il magazzino che ti interessa e seleziona il suo nome. Viene visualizzata la pagina Dettagli magazzino.

  3. Seleziona i campi che vuoi abilitare per la ricerca.

Selezionare i campi di ricerca con sfaccettature nell'interfaccia utente