Quando importi dati strutturati utilizzando la console Google Cloud, Vertex AI Agent Builder rileva automaticamente lo schema. Puoi utilizzare questo schema rilevato automaticamente nelle o utilizzare l'API per fornire uno schema che indichi la struttura dei dati.
Se fornisci uno schema e lo aggiorni in un secondo momento con un nuovo schema, il nuovo schema deve essere compatibile con quello originale. In caso contrario, l'aggiornamento dello schema non va a buon fine.
Per informazioni di riferimento sullo schema, consulta
dataStores.schemas
Approcci per fornire lo schema per il datastore
Esistono vari approcci per determinare lo schema per i dati strutturati.
Rileva e modifica automaticamente. Consenti a Vertex AI Agent Builder di rilevare e suggerire automaticamente di uno schema iniziale. Quindi, perfezioni lo schema tramite nell'interfaccia della console Cloud. Google consiglia vivamente di: dopo il rilevamento automatico dei campi, mapperai le proprietà chiave a tutte campi importanti.
Questo è l'approccio che utilizzerai quando segui la console Google Cloud Istruzioni per i dati strutturati in Creare un dati di ricerca store e Crea un datastore di suggerimenti generici.
Fornisci lo schema come oggetto JSON. Fornisci lo schema a Vertex AI Agent Builder come oggetto JSON. Devi aver preparato un oggetto JSON corretto. Per un esempio di oggetto JSON, consulta Schema di esempio come oggetto JSON. Dopo aver creato lo schema, carica i dati in base allo schema.
Questo è l'approccio che puoi utilizzare quando crei un datastore tramite l'API mediante un comando (o un programma) curl. Ad esempio, consulta Importa una volta da BigQuery. Consulta anche le seguenti istruzioni, Fornisci il tuo schema.
Media: fornisci i tuoi dati nello schema definito da Google. Se crei un file di dati per i media, puoi scegliere di usare lo schema predefinito di Google. Se scegli questa opzione, presupponiamo che tu abbia strutturato l'oggetto JSON nel formato indicato in Informazioni sui documenti multimediali e sullo spazio di archiviazione dei dati. Di predefinito, il rilevamento automatico aggiunge allo schema tutti i nuovi campi che trova durante importazione dati.
Questo è l'approccio che usi quando segui le istruzioni Crea un'app multimediale e un datastore. È anche la nei tutorial, Inizia a utilizzare i contenuti multimediali consigli e Guida introduttiva all'utilizzo dei contenuti multimediali ricerca, in cui i dati di esempio vengono forniti nella Schema predefinito di Google.
Contenuti multimediali: rileva e modifica automaticamente, assicurandoti di includere i contenuti multimediali richiesti proprietà. Per i dati multimediali, puoi utilizzare il rilevamento automatico per suggerire lo schema e modificarlo per perfezionarlo. Nell'oggetto JSON, devi includere campi che possono essere mappato alle proprietà della chiave multimediale:
title
,uri
,category
,media_duration
emedia_available_time
.Questo è l'approccio che utilizzerai per importare i dati multimediali tramite Console Google Cloud se i dati multimediali non rientrano nello schema definito da Google.
Media: fornisci il tuo schema come oggetto JSON. Fornisci il parametro da Vertex AI Agent Builder come oggetto JSON. Devi avere un piano un oggetto JSON corretto. Lo schema deve includere campi che possono essere mappata alle proprietà della chiave multimediale:
title
,uri
,category
,media_duration
emedia_available_time
.Per un esempio di oggetto JSON, vedi Schema di esempio. come oggetto JSON. Dopo aver creato lo schema, caricare i dati multimediali in base a quello schema.
Per questo approccio, utilizzi l'API tramite un comando (o un programma) curl. Consulta le istruzioni riportate di seguito, Fornisci il tuo schema.
Informazioni sul rilevamento automatico e sulla modifica
Quando inizi a importare i dati, Vertex AI Search campiona il primo alcuni documenti importati. In base a questi documenti, propone uno schema per i dati, che puoi rivedere o modificare.
Se i campi da mappare alle proprietà chiave non sono presenti nei documenti campionati, puoi aggiungerli manualmente quando esamini lo schema.
Se Vertex AI Search rileva campi aggiuntivi in un secondo momento durante l'importazione dei dati, li importa comunque e li aggiunge allo schema. Se vuoi modificare lo schema dopo l'importazione di tutti i dati, consulta Aggiornare lo schema.
Schema di esempio come oggetto JSON
Puoi definire uno schema personalizzato utilizzando lo schema JSON , ovvero un linguaggio dichiarativo open source per definire, annotare e convalidare documenti JSON. Ad esempio, questa è un'annotazione dello schema JSON valida:
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "dynamic": "true", "datetime_detection": true, "geolocation_detection": true, "properties": { "title": { "type": "string", "keyPropertyMapping": "title", "retrievable": true, "completable": true }, "description": { "type": "string", "keyPropertyMapping": "description" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } }, "uri": { "type": "string", "keyPropertyMapping": "uri" }, "brand": { "type": "string", "indexable": true, "dynamicFacetable": true }, "location": { "type": "geolocation", "indexable": true, "retrievable": true }, "creationDate": { "type": "datetime", "indexable": true, "retrievable": true }, "isCurrent": { "type": "boolean", "indexable": true, "retrievable": true }, "runtime": { "type": "string", "keyPropertyMapping": "media_duration" }, "releaseDate": { "type": "string", "keyPropertyMapping": "media_available_time" } } }
Se definisci uno schema multimediale, devi includere campi che possono essere e mappata alle proprietà della chiave multimediale. Queste proprietà chiave sono mostrate in questo esempio.
Ecco alcuni dei campi in questo esempio di schema:
dynamic
. Sedynamic
è impostato sul valore di stringa"true"
, tutte le nuove proprietà trovate nei dati importati vengono aggiunte allo schema. Se il criteriodynamic
viene impostato su"false"
, vengono trovate nuove proprietà in importate vengono ignorati; le proprietà non vengono aggiunte allo schema, vengono importati.Ad esempio, uno schema ha due proprietà:
title
edescription
, e carichi dati che contengono le proprietà dititle
,description
erating
. Sedynamic
è"true"
, la proprietà e i dati delle valutazioni vengono importati. Sedynamic
è"false"
, le proprietàrating
non vengono importate, anche setitle
edescription
vengono importate.Il valore predefinito è
"true"
.datetime_detection
. Sedatetime_detection
è impostato sul valore booleanotrue
, quando vengono importati i dati in formato data e ora, il tipo di schema viene impostato sudatetime
. I formati supportati sono RFC 3339 e ISO 8601Ad esempio:
2024-08-05 08:30:00 UTC
2024-08-05T08:30:00Z
2024-08-05T01:30:00-07:00
2024-08-05
2024-08-05T08:30:00+00:00
Se
datatime_detection
è impostato sul valore booleanofalse
, quando vengono importati i dati in formato data/ora, il tipo di schema viene impostato sustring
.Il valore predefinito è
true
.geolocation_detection
Segeolocation_detection
è impostato sul valore booleanotrue
, quindi, quando vengono importati i dati in formato di geolocalizzazione, il tipo di schema è impostato sugeolocation
. I dati vengono rilevati come geolocalizzazione se si tratta di un oggetto contenente un numero di latitudine e un numero di longitudine oppure un oggetto contenente una stringa di indirizzo.Ad esempio:
"myLocation": {"latitude":37.42, "longitude":-122.08}
"myLocation": {"address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043"}
Se
geolocation_detection
è impostato sul valore booleanofalse
, quando vengono importati i dati in formato di geolocalizzazione, il tipo di schema viene impostato suobject
.Il valore predefinito è
true
.keyPropertyMapping
Un campo che mappa parole chiave predefinite a elementi critici campi nei documenti, contribuendo a chiarirne il significato semantico. Valori includonotitle
,description
,uri
ecategory
. Tieni presente che il nome del campo non deve necessariamente corrispondere al valorekeyPropertyValues
. Ad esempio, per un campo denominatomy_title
, puoi includere un campokeyPropertyValues
con un valoretitle
.Per i datastore della ricerca, i campi contrassegnati con
keyPropertyMapping
sono indicizzabili e disponibili per la ricerca per impostazione predefinita, ma non Recuperabile, completabile o dynamicFacetable. Ciò significa che devi includere i campiindexable
osearchable
con unkeyPropertyValues
per ottenere il comportamento predefinito previsto.type
. Il tipo di campo. Si tratta di un valore di stringa che èdatetime
,geolocation
o uno dei tipi primitivi (integer
,boolean
,object
,array
,number
ostring
).
I seguenti campi delle proprietà si applicano solo alle app di ricerca:
retrievable
. Indica se questo campo può essere restituito in una risposta alla ricerca. Può essere impostato per i campi di tiponumber
,string
,boolean
,integer
,datetime
egeolocation
. Un massimo di 50 possono essere impostati come recuperabili. I campi definiti dall'utente e i campikeyPropertyValues
non sono recuperabili per impostazione predefinita. Per creare un campo Recuperabile, includi"retrievable": true
nel campo.indexable
Indica se questo campo può essere filtrato, facet migliorato o ordinato inservingConfigs.search
. Questo valore può essere impostato per i campi di tiponumber
,string
,boolean
,integer
,datetime
egeolocation
. È possibile impostare un massimo di 50 campi come indicizzabili. I campi definiti dall'utente non sono indicizzabili per impostazione predefinita, ad eccezione dei campi contenenti il campokeyPropertyMapping
. Per rendere un campo indicizzabile, includi"indexable": true
al campo.dynamicFacetable
. Indica che il campo può essere utilizzato come facet dinamico. Questo valore può essere impostato per i campi di tiponumber
,string
,boolean
einteger
. Per rendere un campo classificabile dinamicamente in facet, deve essere anche indicizzabile: includi"dynamicFacetable": true
e"indexable": true
con il campo.searchable
. Indica se questo campo può essere sottoposto a indicizzazione inversa per trovare corrispondenze per le query di testo non strutturato. Questo valore può essere impostato solo per i campi di tipostring
. È possibile impostare come disponibili per la ricerca un massimo di 50 campi. Definito dall'utente non sono disponibili per la ricerca per impostazione predefinita, ad eccezione dei campi contenenti i campi campokeyPropertyMapping
. Per rendere un campo disponibile per la ricerca, includi"searchable": true
nel campo.completable
Indica se questo campo può essere restituito come suggerimento di completamento automatico. Questo valore può essere impostato solo per i campi di tipostring
. Per rendere un campo completabile, includi"completable": true
nel campo.
Inoltre, il seguente campo si applica solo alle app di consigli:
recommendationsFilterable
. Indica che il campo può essere utilizzato in un'espressione di filtro dei consigli. Per informazioni generali sui consigli per filtrare, vedi Filtrare i consigli.... "genres": { "type": "string", "recommendationsFilterable": true, ... },
Fornisci il tuo schema come oggetto JSON
Per fornire uno schema personalizzato, devi creare un datastore che contenga uno spazio vuoto e poi aggiorni lo schema, fornendolo come oggetto JSON. Segui questi passaggi:
Prepara lo schema come oggetto JSON, utilizzando come guida lo schema di esempio come oggetto JSON.
Crea un datastore.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DATA_STORE_DISPLAY_NAME", "industryVertical": "INDUSTRY_VERTICAL" }'
Sostituisci quanto segue:
PROJECT_ID
: l'ID del tuo progetto Google Cloud.DATA_STORE_ID
: l'ID del datastore di Vertex AI Search che vuoi creare. Questo ID può contenere solo lettere minuscole, cifre, trattini bassi e trattini.DATA_STORE_DISPLAY_NAME
: il nome visualizzato di Vertex AI Cerca nel datastore che vuoi creare.INDUSTRY_VERTICAL
:GENERIC
oMEDIA
Utilizza il metodo dell'API schemas.patch per fornire il nuovo schema JSON come oggetto JSON.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/schemas/default_schema" \ -d '{ "structSchema": JSON_SCHEMA_OBJECT }'
Sostituisci quanto segue:
PROJECT_ID
: l'ID del tuo progetto Google Cloud.DATA_STORE_ID
: l'ID del datastore di Vertex AI Search.JSON_SCHEMA_OBJECT
: il tuo nuovo schema JSON un oggetto JSON. Ad esempio:{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string", "keyPropertyMapping": "title" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } }, "uri": { "type": "string", "keyPropertyMapping": "uri" } } }
(Facoltativo) Esamina lo schema seguendo la procedura Visualizzare una definizione di schema.
Passaggi successivi
- Creare un'app di ricerca
- Creare un'app di consigli
- Creare un'app multimediale
- Ottenere la definizione dello schema per i dati strutturati
- Aggiornare uno schema per i dati strutturati