Crea e aggiorna lo schema di dati

Un Vision Warehouse (corpus) connesso in un'app di importazione dati di cui è stato eseguito il deployment contiene uno o più oggetti multimediali assets. Puoi fornire ulteriori dettagli su questi oggetti multimediali assets con le risorse dataSchema e annotation fornite dall'utente.

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

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 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.
  • DATASCHEMA_KEY: questa chiave deve corrispondere alla chiave di un'annotazione specificata dall'utente e deve 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 per l'asset multimediale).
    • GRANULARITY_PARTITION_LEVEL - Granularità a livello di partizione (le annotazioni devono contenere informazioni sulle partizioni temporali per la risorsa 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 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/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 e riga di comando

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 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 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.
  • 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 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 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/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"
    }
  }
}

Aggiungi uno schema di dati strutturati personalizzato

La struttura personalizzata consente agli utenti di definire contenitori più complessi per contenere i valori e fornire la 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 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/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 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/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 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.
  • ASSET_ID: l'ID della risorsa 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 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/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 inviare una richiesta di ricerca come segue:

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

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:

Modificare i dettagli dello schema del magazzino (console)

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

Dopo aver modificato i campi delle tabelle pivot, puoi utilizzarli per cercare nel tuo data warehouse.

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 nome. Viene visualizzata la pagina Dettagli magazzino.

  3. Seleziona i campi da attivare per la ricerca.

Selezionare i campi di ricerca filtrabili nell'interfaccia utente