API RAG Engine

Vertex AI RAG Engine è un componente della piattaforma Vertex AI, che facilita la Retrieval-Augmented Generation (RAG). RAG Engine consente ai modelli linguistici di grandi dimensioni (LLM) di accedere e incorporare dati da fonti di conoscenza esterne, come documenti e database. Utilizzando la RAG, gli LLM possono generare risposte più accurate e informative.

Elenco dei parametri

Questa sezione elenca:

Parametri Esempi
Consulta Parametri di gestione del corpus. Vedi Esempi di gestione del corpus.
Vedi Parametri di gestione dei file. Vedi Esempi di gestione dei file.
Vedi Parametri di gestione del progetto. Vedi Esempi di gestione dei progetti.

Parametri di gestione del corpus

Per informazioni su un corpus RAG, vedi Gestione dei corpus.

Crea un corpus RAG

Questa tabella elenca i parametri utilizzati per creare un corpus RAG.

Body Request
Parametri

corpus_type_config

(Facoltativo) Immutabile.

RagCorpus.CorpusTypeConfig

La configurazione per specificare il tipo di corpus.

display_name

Obbligatorio: string

Il nome visualizzato del corpus RAG.

description

(Facoltativo) string

La descrizione del corpus RAG.

encryption_spec

(Facoltativo) Immutabile: string

Il nome della chiave CMEK viene utilizzato per criptare i dati at-rest correlati al corpus RAG. Il nome della chiave è applicabile solo all'opzione RagManaged per il database vettoriale. Una volta creato il corpus, questo campo può essere impostato e non può essere aggiornato o eliminato.

Formato: projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key_name}

vector_db_config

(Facoltativo) Immutabile: RagVectorDbConfig

La configurazione per i database vettoriali.

vertex_ai_search_config.serving_config

(Facoltativo) string

La configurazione di Vertex AI Search.

Formato: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config} o projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/servingConfigs/{serving_config}

CorpusTypeConfig
Parametri

document_corpus

oneof RagCorpus.CorpusTypeConfig.DocumentCorpus

Il valore predefinito di corpus_type_config, che rappresenta un corpus RAG convenzionale basato su documenti.

memory_corpus

oneof RagCorpus.CorpusTypeConfig.MemoryCorpus

Se imposti questo tipo, il corpus RAG è un MemoryCorpus che può essere utilizzato con l'API Gemini Live come archivio di memoria.

Per ulteriori informazioni, consulta Utilizzare il motore RAG di Vertex AI come archivio di memoria.

memory_corpus.llm_parser

oneof RagFileParsingConfig.LlmParser

Il parser LLM utilizzato per analizzare e archiviare i contesti delle sessioni dall'API Gemini Live. Puoi creare ricordi per l'indicizzazione.

RagVectorDbConfig
Parametri

rag_managed_db

oneof vector_db: RagVectorDbConfig.RagManagedDb

Se non viene specificato alcun database vettoriale, rag_managed_db è il database vettoriale predefinito.

rag_managed_db.knn

oneof retrieval_strategy: KNN

Valore predefinito.

Trova i vicini più vicini esatti confrontando tutti i punti dati nel tuo corpus RAG.

Se non specifichi una strategia durante la creazione del corpus RAG, viene utilizzata la strategia di recupero KNN predefinita.

rag_managed_db.ann

oneof retrieval_strategy: ANN

tree_depth

Determina il numero di livelli nell'albero.

Se nel corpus RAG sono presenti O(10K) file RAG, imposta questo valore su 2.
  • Se sono necessari più livelli, imposta questo valore su 3.
  • Se il numero di livelli non è specificato, Vertex AI RAG Engine assegna un valore predefinito di 2 a questo parametro.

leaf_count

Determina il numero di nodi foglia nella struttura ad albero.

  • Il valore consigliato è 10 * sqrt(num of RAG files in your RAG corpus).
  • Se non specificato, Vertex AI RAG Engine assegna un valore predefinito di 500 a questo parametro.

rebuild_ann_index

  • Vertex AI RAG Engine ricompila l'indice ANN.
  • Imposta true nella richiesta API ImportRagFiles.
  • Prima di eseguire query sul corpus RAG, è necessario ricompilare l'indice ANN una volta.
  • È supportata una sola ricompilazione simultanea dell'indice in un progetto in ogni località.

weaviate

oneof vector_db: RagVectorDbConfig.Weaviate

Specifica l'istanza Weaviate.

weaviate.http_endpoint

string

L'endpoint HTTP dell'istanza Weaviate.

Questo valore non può essere modificato dopo l'impostazione. Puoi lasciarlo vuoto nella chiamata API CreateRagCorpus e impostarlo con un valore non vuoto in una chiamata API UpdateRagCorpus successiva.

weaviate.collection_name

string

La raccolta Weaviate a cui è mappato il corpus RAG.

Questo valore non può essere modificato dopo l'impostazione. Puoi lasciarlo vuoto nella chiamata API CreateRagCorpus e impostarlo con un valore non vuoto in una chiamata API UpdateRagCorpus successiva.

pinecone

oneof vector_db: RagVectorDbConfig.Pinecone

Specifica l'istanza Pinecone.

pinecone.index_name

string

Questo è il nome utilizzato per creare l'indice Pinecone utilizzato con il corpus RAG.

Questo valore non può essere modificato dopo l'impostazione. Puoi lasciarlo vuoto nella chiamata API CreateRagCorpus e impostarlo con un valore non vuoto in una chiamata API UpdateRagCorpus successiva.

vertex_feature_store

oneof vector_db: RagVectorDbConfig.VertexFeatureStore

Specifica l'istanza Vertex AI Feature Store.

vertex_feature_store.feature_view_resource_name

string

Il Vertex AI Feature Store FeatureView a cui è mappato il corpus RAG.

Formato: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

Questo valore non può essere modificato dopo l'impostazione. Puoi lasciarlo vuoto nella chiamata API CreateRagCorpus e impostarlo con un valore non vuoto in una chiamata API UpdateRagCorpus successiva.

vertex_vector_search

oneof vector_db: RagVectorDbConfig.VertexVectorSearch

Specifica l'istanza di Vertex Vector Search.

vertex_vector_search.index

string

Questo è il nome risorsa dell'indice Vector Search utilizzato con il corpus RAG.

Formato: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Questo valore non può essere modificato dopo l'impostazione. Puoi lasciarlo vuoto nella chiamata API CreateRagCorpus e impostarlo con un valore non vuoto in una chiamata API UpdateRagCorpus successiva.

vertex_vector_search.index_endpoint

string

Questo è il nome della risorsa dell'endpoint di indice Vector Search utilizzato con il corpus RAG.

Formato: projects/{project}/locations/{location}/indexes/{index}

Questo valore non può essere modificato dopo l'impostazione. Puoi lasciarlo vuoto nella chiamata API CreateRagCorpus e impostarlo con un valore non vuoto in una chiamata API UpdateRagCorpus successiva.

api_auth.api_key_config.api_key_secret_version

string

Questo è il nome completo della risorsa del secret archiviato in Secret Manager, che contiene la chiave API Weaviate o Pinecone a seconda del database vettoriale scelto.

Formato: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

Puoi lasciarlo vuoto nella chiamata API CreateRagCorpus e impostarlo con un valore non vuoto in una chiamata API UpdateRagCorpus successiva.

rag_embedding_model_config.vertex_prediction_endpoint.endpoint

(Facoltativo) Immutabile: string

Il modello di embedding da utilizzare per il corpus RAG. Questo valore non può essere modificato dopo l'impostazione. Se lo lasci vuoto, utilizziamo text-embedding-005 come modello di incorporamento.

Aggiorna un corpus RAG

Questa tabella elenca i parametri utilizzati per aggiornare un corpus RAG.

Body Request
Parametri

display_name

(Facoltativo) string

Il nome visualizzato del corpus RAG.

description

(Facoltativo) string

La descrizione del corpus RAG.

rag_vector_db.weaviate.http_endpoint

string

L'endpoint HTTP dell'istanza Weaviate.

Se il tuo RagCorpus è stato creato con una configurazione Weaviate e questo campo non è mai stato impostato prima, puoi aggiornare l'endpoint HTTP dell'istanza Weaviate.

rag_vector_db.weaviate.collection_name

string

La raccolta Weaviate a cui è mappato il corpus RAG.

Se il tuo RagCorpus è stato creato con una configurazione Weaviate e questo campo non è mai stato impostato prima, puoi aggiornare il nome della raccolta dell'istanza Weaviate.

rag_vector_db.pinecone.index_name

string

Questo è il nome utilizzato per creare l'indice Pinecone utilizzato con il corpus RAG.

Se il tuo RagCorpus è stato creato con una configurazione Pinecone e questo campo non è mai stato impostato prima, puoi aggiornare il nome dell'indice dell'istanza Pinecone.

rag_vector_db.vertex_feature_store.feature_view_resource_name

string

Il Vertex AI Feature Store FeatureView a cui è mappato il corpus RAG.

Formato: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

Se il tuo RagCorpus è stato creato con una configurazione Vertex AI Feature Store e questo campo non è mai stato impostato prima, puoi aggiornarlo.

rag_vector_db.vertex_vector_search.index

string

Questo è il nome risorsa dell'indice Vector Search utilizzato con il corpus RAG.

Formato: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Se il tuo RagCorpus è stato creato con una configurazione Vector Search e questo campo non è mai stato impostato prima, puoi aggiornarlo.

rag_vector_db.vertex_vector_search.index_endpoint

string

Questo è il nome della risorsa dell'endpoint di indice Vector Search utilizzato con il corpus RAG.

Formato: projects/{project}/locations/{location}/indexes/{index}

Se il tuo RagCorpus è stato creato con una configurazione Vector Search e questo campo non è mai stato impostato prima, puoi aggiornarlo.

rag_vector_db.api_auth.api_key_config.api_key_secret_version

string

Il nome completo della risorsa del secret archiviato in Secret Manager, che contiene la chiave API Weaviate o Pinecone, dipende dal database vettoriale scelto.

Formato: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

Elenca i corpora RAG

Questa tabella elenca i parametri utilizzati per elencare i corpus RAG.

Parametri

page_size

(Facoltativo) int

Le dimensioni standard della pagina dell'elenco.

page_token

(Facoltativo) string

Il token della pagina dell'elenco standard. In genere, viene ottenuto da [ListRagCorporaResponse.next_page_token][] della precedente chiamata [VertexRagDataService.ListRagCorpora][].

Recuperare un corpus RAG

Questa tabella elenca i parametri utilizzati per ottenere un corpus RAG.

Parametri

name

string

Il nome della risorsa RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

Elimina un corpus RAG

Questa tabella elenca i parametri utilizzati per eliminare un corpus RAG.

Parametri

name

string

Il nome della risorsa RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

Parametri di gestione dei file

Per informazioni su un file RAG, vedi Gestione dei file.

Caricare un file RAG

Questa tabella elenca i parametri utilizzati per caricare un file RAG.

Body Request
Parametri

parent

string

Il nome della risorsa RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

rag_file

Obbligatorio: RagFile

Il file da caricare.

upload_rag_file_config

Obbligatorio: UploadRagFileConfig

La configurazione di RagFile da caricare in RagCorpus.

RagFile

display_name

Obbligatorio: string

Il nome visualizzato del file RAG.

description

(Facoltativo) string

La descrizione del file RAG.

UploadRagFileConfig

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

Numero di token di ogni blocco.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

La sovrapposizione tra i chunk.

Importare file RAG

Questa tabella elenca i parametri utilizzati per importare un file RAG.

Parametri

parent

Obbligatorio: string

Il nome della risorsa RagCorpus.

Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

gcs_source

oneof import_source: GcsSource

Percorso di Cloud Storage.

Supporta l'importazione di singoli file e di intere directory Cloud Storage.

gcs_source.uris

list di string

URI Cloud Storage contenente il file di caricamento.

google_drive_source

oneof import_source: GoogleDriveSource

Posizione di Google Drive.

Supporta l'importazione di singoli file e cartelle di Google Drive.

slack_source

oneof import_source: SlackSource

Il canale Slack in cui viene caricato il file.

jira_source

oneof import_source: JiraSource

La query Jira in cui viene caricato il file.

share_point_sources

oneof import_source: SharePointSources

Le origini SharePoint in cui viene caricato il file.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

Numero di token di ogni blocco.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

La sovrapposizione tra i chunk.

rag_file_parsing_config

(Facoltativo) RagFileParsingConfig

Specifica la configurazione dell'analisi per RagFiles.

Se questo campo non è impostato, RAG utilizza il parser predefinito.

max_embedding_requests_per_min

(Facoltativo) int32

Il numero massimo di query al minuto che questo job può eseguire sul modello di embedding specificato nel corpus. Questo valore è specifico per questo job e non viene condiviso con altri job di importazione. Consulta la pagina Quote del progetto per impostare un valore appropriato.

Se non specificato, viene utilizzato un valore predefinito di 1000 QPM.

GoogleDriveSource

resource_ids.resource_id

Obbligatorio: string

L'ID della risorsa Google Drive.

resource_ids.resource_type

Obbligatorio: string

Il tipo di risorsa Google Drive.

SlackSource

channels.channels

Ripetuto: SlackSource.SlackChannels.SlackChannel

Informazioni sul canale Slack, inclusi ID e intervallo di tempo da importare.

channels.channels.channel_id

Obbligatorio: string

L'ID del canale Slack.

channels.channels.start_time

(Facoltativo) google.protobuf.Timestamp

Il timestamp iniziale dei messaggi da importare.

channels.channels.end_time

(Facoltativo) google.protobuf.Timestamp

Il timestamp finale per i messaggi da importare.

channels.api_key_config.api_key_secret_version

Obbligatorio: string

Il nome risorsa completo del secret archiviato in Secret Manager, che contiene un token di accesso al canale Slack che ha accesso agli ID canale Slack.
Vedi: https://api.slack.com/tutorials/tracks/getting-a-token.

Formato: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

JiraSource

jira_queries.projects

Ripetuto: string

Un elenco di progetti Jira da importare nella loro interezza.

jira_queries.custom_queries

Ripetuto: string

Un elenco di query Jira personalizzate da importare. Per informazioni su JQL (Jira Query Language), consulta
Assistenza Jira

jira_queries.email

Obbligatorio: string

L'indirizzo email Jira.

jira_queries.server_uri

Obbligatorio: string

L'URI del server Jira.

jira_queries.api_key_config.api_key_secret_version

Obbligatorio: string

Il nome risorsa completo del secret archiviato in Secret Manager, che contiene la chiave API Jira con accesso agli ID dei canali Slack.
Vedi: https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/

Formato: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

SharePointSources

share_point_sources.sharepoint_folder_path

oneof in folder_source: string

Il percorso della cartella di SharePoint da cui scaricare i file.

share_point_sources.sharepoint_folder_id

oneof in folder_source: string

L'ID della cartella SharePoint da cui scaricare.

share_point_sources.drive_name

oneof in drive_source: string

Il nome dell'unità da cui scaricare.

share_point_sources.drive_id

oneof in drive_source: string

L'ID dell'unità da cui scaricare.

share_point_sources.client_id

string

L'ID applicazione per l'app registrata nel portale Microsoft Azure.
L'applicazione deve essere configurata anche con le autorizzazioni MS Graph "Files.ReadAll", "Sites.ReadAll" e BrowserSiteLists.Read.All.

share_point_sources.client_secret.api_key_secret_version

Obbligatorio: string

Il nome completo della risorsa del secret archiviato in Secret Manager, che contiene il secret dell'applicazione per l'app registrata in Azure.

Formato: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

share_point_sources.tenant_id

string

Identificatore univoco dell'istanza di Azure Active Directory.

share_point_sources.sharepoint_site_name

string

Il nome del sito SharePoint da cui eseguire il download. Può trattarsi del nome o dell'ID del sito.

RagFileParsingConfig

layout_parser

oneof parser: RagFileParsingConfig.LayoutParser

Il parser del layout da utilizzare per RagFile.

layout_parser.processor_name

string

Il nome completo della risorsa di un processore o di una versione del processore Document AI.

Formato:
projects/{project_id}/locations/{location}/processors/{processor_id}
projects/{project_id}/locations/{location}/processors/{processor_id}/processorVersions/{processor_version_id}

layout_parser.max_parsing_requests_per_min

string

Il numero massimo di richieste che il job può effettuare al processore Document AI al minuto.

Consulta la pagina https://cloud.google.com/document-ai/quotas e la pagina Quote per il tuo progetto per impostare un valore appropriato qui. Se non specificato, viene utilizzato un valore predefinito di 120 QPM.

llm_parser

oneof parser: RagFileParsingConfig.LlmParser

Il parser LLM da utilizzare per RagFile.

llm_parser.model_name

string

Il nome della risorsa di un modello LLM.

Formato:
projects/{project_id}/locations/{location}/publishers/{publisher}/models/{model}

llm_parser.max_parsing_requests_per_min

string

Il numero massimo di richieste che il job può eseguire al modello LLM al minuto.

Per impostare un valore appropriato per il tuo progetto, consulta la sezione relativa alle quote del modello e la pagina Quote per il tuo progetto per impostare un valore appropriato. Se non specificato, viene utilizzato un valore predefinito di 5000 QPM.

Recuperare un file RAG

Questa tabella elenca i parametri utilizzati per ottenere un file RAG.

Parametri

name

string

Il nome della risorsa RagFile. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

Eliminare un file RAG

Questa tabella elenca i parametri utilizzati per eliminare un file RAG.

Parametri

name

string

Il nome della risorsa RagFile. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

Parametri di recupero e previsione

Questa sezione elenca i parametri di recupero e previsione.

Parametri di recupero

Questa tabella elenca i parametri per l'API retrieveContexts.

Parametri

parent

Obbligatorio: string

Il nome risorsa della località da recuperare RagContexts.
Gli utenti devono disporre dell'autorizzazione per effettuare una chiamata nel progetto.

Formato: projects/{project}/locations/{location}

vertex_rag_store

VertexRagStore

L'origine dati per Vertex RagStore.

query

Obbligatorio: RagQuery

Singola query di recupero RAG.

VertexRagStore
VertexRagStore

rag_resources

elenco: RagResource

La rappresentazione dell'origine RAG. Può essere utilizzato per specificare solo il corpus o RagFile. Supporta solo un corpus o più file di un corpus.

rag_resources.rag_corpus

(Facoltativo) string

Nome della risorsa RagCorpora.

Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}

rag_resources.rag_file_ids

elenco: string

Un elenco di risorse RagFile.

Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file}

RagQuery

text

string

La query in formato di testo per ottenere contesti pertinenti.

rag_retrieval_config

(Facoltativo) RagRetrievalConfig

La configurazione del recupero per la query.

RagRetrievalConfig

top_k

(Facoltativo) int32

Il numero di contesti da recuperare.

hybrid_search.alpha

(Facoltativo) float

Il valore alpha controlla la ponderazione tra i risultati della ricerca vettoriale densa e sparsa. L'intervallo è [0, 1], dove 0 indica solo la ricerca vettoriale sparsa e 1 indica solo la ricerca vettoriale densa. Il valore predefinito è 0,5, che bilancia in modo uniforme la ricerca vettoriale sparsa e densa.

La ricerca ibrida è disponibile solo per Weaviate.

filter.vector_distance_threshold

oneof vector_db_threshold: double

Restituisce solo i contesti con una distanza del vettore inferiore alla soglia.

filter.vector_similarity_threshold

oneof vector_db_threshold: double

Restituisce solo i contesti con una somiglianza del vettore superiore alla soglia.

ranking.rank_service.model_name

(Facoltativo) string

Il nome del modello del servizio di classificazione.

Esempio: semantic-ranker-512@latest

ranking.llm_ranker.model_name

(Facoltativo) string

Il nome del modello utilizzato per il ranking.

Esempio: gemini-2.5-flash

Parametri di previsione

Questa tabella elenca i parametri di previsione.

GenerateContentRequest

tools.retrieval.vertex_rag_store

VertexRagStore

Impostato per utilizzare un'origine dati basata sull'archivio RAG di Vertex AI.

Per maggiori dettagli, consulta VertexRagStore.

Parametri di gestione dei progetti

Questa tabella elenca i parametri a livello di progetto.

RagEngineConfig
Parametri
RagManagedDbConfig.scaled Questo livello offre prestazioni su scala di produzione insieme alla funzionalità di scalabilità automatica.
RagManagedDbConfig.basic Questo livello offre un livello di computing economico e basso.
RagManagedDbConfig.unprovisioned Questo livello elimina RagManagedDb e la relativa istanza Spanner sottostante.

Esempi di gestione del corpus

Questa sezione fornisce esempi di come utilizzare l'API per gestire il corpus RAG.

Crea un esempio di corpus RAG

Questo esempio di codice mostra come creare un corpus RAG.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • LOCATION: la regione in cui elaborare la richiesta.
  • CORPUS_DISPLAY_NAME: il nome visualizzato di RagCorpus.
  • CORPUS_DESCRIPTION: la descrizione di RagCorpus.

Metodo HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora

Corpo JSON della richiesta:

{
  "display_name" : "CORPUS_DISPLAY_NAME",
  "description": "CORPUS_DESCRIPTION",
}

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"

PowerShell

Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

$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://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora" | Select-Object -Expand Content
Dovresti ricevere un codice di stato riuscito (2xx).

Il seguente esempio mostra come creare un corpus RAG utilizzando l'API REST.

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  CORPUS_DISPLAY_NAME: The display name of the <code>RagCorpus</code>.
    // CreateRagCorpus
    // Input: LOCATION, PROJECT_ID, CORPUS_DISPLAY_NAME
    // Output: CreateRagCorpusOperationMetadata
    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora \
    -d '{
          "display_name" : "CORPUS_DISPLAY_NAME"
      }'

Aggiorna un esempio di corpus RAG

Puoi aggiornare il corpus RAG con un nuovo nome visualizzato, una nuova descrizione e una nuova configurazione del database vettoriale. Tuttavia, non puoi modificare i seguenti parametri nel corpus RAG:

  • Il tipo di database vettoriale. Ad esempio, non puoi modificare il database vettoriale da Weaviate a Vertex AI Feature Store.
  • Se utilizzi l'opzione di database gestito, non puoi aggiornare la configurazione del database vettoriale.

Questi esempi mostrano come aggiornare un corpus RAG.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • LOCATION: la regione in cui elaborare la richiesta.
  • CORPUS_ID: l'ID corpus del tuo corpus RAG.
  • CORPUS_DISPLAY_NAME: il nome visualizzato di RagCorpus.
  • CORPUS_DESCRIPTION: la descrizione di RagCorpus.
  • INDEX_NAME: il nome della risorsa di Vector Search Index. Formato: projects/{project}/locations/{location}/indexes/{index}
  • INDEX_ENDPOINT_NAME: il nome della risorsa di Vector Search Index Endpoint. Formato: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Metodo HTTP e URL:

PATCH https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID

Corpo JSON della richiesta:

{
  "display_name" : "CORPUS_DISPLAY_NAME",
  "description": "CORPUS_DESCRIPTION",
  "rag_vector_db_config": {
     "vertex_vector_search": {
         "index": "INDEX_NAME",
         "index_endpoint": "INDEX_ENDPOINT_NAME",
     }
  }
}

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID"

PowerShell

Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

$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://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID" | Select-Object -Expand Content
Dovresti ricevere un codice di stato riuscito (2xx).

Esempio di elenco di corpora RAG

Questo esempio di codice mostra come elencare tutti i corpus RAG.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • LOCATION: la regione in cui elaborare la richiesta.
  • PAGE_SIZE: La dimensione standard della pagina dell'elenco. Puoi modificare il numero di RagCorpora da restituire per pagina aggiornando il parametro page_size.
  • PAGE_TOKEN: il token della pagina di elenco standard. Ottenuto in genere utilizzando ListRagCorporaResponse.next_page_token della chiamata precedente VertexRagDataService.ListRagCorpora.

Metodo HTTP e URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN

Per inviare la richiesta, scegli una di queste opzioni:

curl

Esegui questo comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"

PowerShell

Esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
Dovresti ricevere un codice di stato di operazione riuscita ("2xx") e un elenco di RagCorpora nell'PROJECT_ID specificato.

Ottenere un esempio di corpus RAG

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • LOCATION: la regione in cui elaborare la richiesta.
  • RAG_CORPUS_ID: l'ID della risorsa RagCorpus.

Metodo HTTP e URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID

Per inviare la richiesta, scegli una di queste opzioni:

curl

Esegui questo comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

PowerShell

Esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
Una risposta corretta restituisce la risorsa RagCorpus.

I comandi get e list vengono utilizzati in un esempio per dimostrare come RagCorpus utilizza il campo rag_embedding_model_config in vector_db_config, che punta al modello di incorporamento che hai scelto.

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
// GetRagCorpus
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID
// Output: RagCorpus
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID

// ListRagCorpora
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/

Elimina un esempio di corpus RAG

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • LOCATION: la regione in cui elaborare la richiesta.
  • RAG_CORPUS_ID: l'ID della risorsa RagCorpus.

Metodo HTTP e URL:

DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID

Per inviare la richiesta, scegli una di queste opzioni:

curl

Esegui questo comando:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

PowerShell

Esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
Una risposta corretta restituisce DeleteOperationMetadata.

Esempi di gestione dei file

Questa sezione fornisce esempi di come utilizzare l'API per gestire i file RAG.

Carica un esempio di file RAG

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  LOCAL_FILE_PATH: The local path to the file to be uploaded.
  DISPLAY_NAME: The display name of the RAG file.
  DESCRIPTION: The description of the RAG file.

Per inviare la richiesta, utilizza il comando seguente:

  curl -X POST \
    -H "X-Goog-Upload-Protocol: multipart" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -F metadata="{'rag_file': {'display_name':' DISPLAY_NAME', 'description':'DESCRIPTION'}}" \
    -F file=@LOCAL_FILE_PATH \
    "https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"

Esempio di importazione di file RAG

File e cartelle possono essere importati da Drive o Cloud Storage.

response.skipped_rag_files_count indica il numero di file ignorati durante l'importazione. Un file viene ignorato quando si verificano le seguenti condizioni:

  1. Il file è già stato importato.
  2. Il file non è cambiato.
  3. La configurazione del chunking per il file non è cambiata.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • LOCATION: la regione in cui elaborare la richiesta.
  • RAG_CORPUS_ID: l'ID della risorsa RagCorpus.
  • GCS_URIS: un elenco di posizioni di Cloud Storage. Esempio: gs://my-bucket1, gs://my-bucket2.
  • CHUNK_SIZE: (Facoltativo) il numero di token che ogni blocco deve avere.
  • CHUNK_OVERLAP: (facoltativo) Numero di token sovrapposti tra i chunk.

Metodo HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import

Corpo JSON della richiesta:

{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": "GCS_URIS"
    },
    "rag_file_chunking_config": {
      "chunk_size": CHUNK_SIZE,
      "chunk_overlap": CHUNK_OVERLAP
    }
  }
}

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

PowerShell

Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

$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://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
Una risposta corretta restituisce la risorsa ImportRagFilesOperationMetadata.

Il seguente esempio mostra come importare un file da Cloud Storage. Utilizza il campo di controllo max_embedding_requests_per_min per limitare la velocità con cui RAG Engine chiama il modello di incorporamento durante il processo di indicizzazione ImportRagFiles. Il campo ha un valore predefinito di 1000 chiamate al minuto.

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  GCS_URIS: A list of Cloud Storage locations. Example: gs://my-bucket1.
  CHUNK_SIZE: Number of tokens each chunk should have.
  CHUNK_OVERLAP: Number of tokens overlap between chunks.
  EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID, GCS_URIS
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import \
-d '{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": "GCS_URIS"
    },
    "rag_file_chunking_config": {
      "chunk_size": CHUNK_SIZE,
      "chunk_overlap": CHUNK_OVERLAP
    },
    "max_embedding_requests_per_min": EMBEDDING_MODEL_QPM_RATE
  }
}'

// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID: The operation ID you get from the response of the previous command.
poll_op_wait OPERATION_ID

L'esempio riportato di seguito mostra come importare un file da Drive. Utilizza il campo di controllo max_embedding_requests_per_min per limitare la velocità con cui RAG Engine chiama il modello di incorporamento durante la procedura di indicizzazione ImportRagFiles. Il campo ha un valore predefinito di 1000 chiamate al minuto.

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  FOLDER_RESOURCE_ID: The resource ID of your Google Drive folder.
  CHUNK_SIZE: Number of tokens each chunk should have.
  CHUNK_OVERLAP: Number of tokens overlap between chunks.
  EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID, FOLDER_RESOURCE_ID
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import \
-d '{
  "import_rag_files_config": {
    "google_drive_source": {
      "resource_ids": {
        "resource_id": "FOLDER_RESOURCE_ID",
        "resource_type": "RESOURCE_TYPE_FOLDER"
      }
    },
    "max_embedding_requests_per_min": EMBEDDING_MODEL_QPM_RATE
  }
}'

// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID: The operation ID you get from the response of the previous command.
poll_op_wait OPERATION_ID

Esempio di elenco di file RAG

Questo esempio di codice mostra come elencare i file RAG.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • LOCATION: la regione in cui elaborare la richiesta.
  • RAG_CORPUS_ID: l'ID della risorsa RagCorpus.
  • PAGE_SIZE: La dimensione standard della pagina dell'elenco. Puoi modificare il numero di RagFiles da restituire per pagina aggiornando il parametro page_size.
  • PAGE_TOKEN: il token della pagina di elenco standard. Ottenuto in genere utilizzando ListRagFilesResponse.next_page_token della chiamata precedente VertexRagDataService.ListRagFiles.

Metodo HTTP e URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN

Per inviare la richiesta, scegli una di queste opzioni:

curl

Esegui questo comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"

PowerShell

Esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
Dovresti ricevere un codice di stato di operazione riuscita (2xx) insieme a un elenco di RagFiles nel RAG_CORPUS_ID specificato.

Ottenere un esempio di file RAG

Questo esempio di codice mostra come ottenere un file RAG.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • LOCATION: la regione in cui elaborare la richiesta.
  • RAG_CORPUS_ID: l'ID della risorsa RagCorpus.
  • RAG_FILE_ID: l'ID della risorsa RagFile.

Metodo HTTP e URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID

Per inviare la richiesta, scegli una di queste opzioni:

curl

Esegui questo comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

PowerShell

Esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
Una risposta corretta restituisce la risorsa RagFile.

Elimina un esempio di file RAG

Questo esempio di codice mostra come eliminare un file RAG.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • LOCATION: la regione in cui elaborare la richiesta.
  • RAG_CORPUS_ID: l'ID della risorsa RagCorpus.
  • RAG_FILE_ID: l'ID della risorsa RagFile. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}.

Metodo HTTP e URL:

DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID

Per inviare la richiesta, scegli una di queste opzioni:

curl

Esegui questo comando:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

PowerShell

Esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
Una risposta corretta restituisce la risorsa DeleteOperationMetadata.

Esempio di query di recupero

Quando un utente pone una domanda o fornisce un prompt, il componente di recupero in RAG esegue una ricerca nella knowledge base per trovare informazioni pertinenti alla query.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION: la regione in cui elaborare la richiesta.
  • PROJECT_ID: il tuo ID progetto
  • RAG_CORPUS_RESOURCE: il nome della risorsa RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
  • VECTOR_DISTANCE_THRESHOLD: vengono restituiti solo i contesti con una distanza del vettore inferiore alla soglia.
  • TEXT: il testo della query per ottenere contesti pertinenti.
  • SIMILARITY_TOP_K: il numero di contesti principali da recuperare.

Metodo HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts

Corpo JSON della richiesta:

{
 "vertex_rag_store": {
    "rag_resources": {
      "rag_corpus": "RAG_CORPUS_RESOURCE"
    },
    "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD
  },
  "query": {
   "text": "TEXT",
   "similarity_top_k": SIMILARITY_TOP_K
  }
}

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"

PowerShell

Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

$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://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content
Dovresti ricevere un codice di stato riuscito (2xx) e un elenco di RagFiles correlati.

Esempio di generazione

L'LLM genera una risposta fondata utilizzando i contesti recuperati.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • LOCATION: la regione in cui elaborare la richiesta.
  • MODEL_ID: modello LLM per la generazione di contenuti. Esempio: gemini-2.5-flash
  • GENERATION_METHOD: Metodo LLM per la generazione di contenuti. Opzioni: generateContent, streamGenerateContent
  • INPUT_PROMPT: Il testo inviato al LLM per la generazione di contenuti. Prova a utilizzare un prompt pertinente ai file RAG caricati.
  • RAG_CORPUS_RESOURCE: il nome della risorsa RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
  • SIMILARITY_TOP_K: (Facoltativo) il numero di contesti principali da recuperare.
  • VECTOR_DISTANCE_THRESHOLD: (facoltativo) Vengono restituiti i contesti con una distanza del vettore inferiore alla soglia.

Metodo HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD

Corpo JSON della richiesta:

{
 "contents": {
  "role": "user",
  "parts": {
    "text": "INPUT_PROMPT"
  }
 },
 "tools": {
  "retrieval": {
   "disable_attribution": false,
   "vertex_rag_store": {
    "rag_resources": {
      "rag_corpus": "RAG_CORPUS_RESOURCE"
    },
    "similarity_top_k": SIMILARITY_TOP_K,
    "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD
   }
  }
 }
}

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD"

PowerShell

Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

$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://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand Content
Una risposta corretta restituisce i contenuti generati con le citazioni.

Esempi di gestione dei progetti

Il livello è un'impostazione a livello di progetto disponibile nella risorsa RagEngineConfig e influisce sui corpus RAG che utilizzano RagManagedDb. Per ottenere la configurazione del livello, utilizza GetRagEngineConfig. Per aggiornare la configurazione del livello, utilizza UpdateRagEngineConfig.

Per ulteriori informazioni sulla gestione della configurazione del livello, vedi Gestire il livello.

Recupera la configurazione del progetto

Il seguente codice campione mostra come leggere il tuo RagEngineConfig:

Console

  1. Nella console Google Cloud , vai alla pagina Motore RAG.

    Vai a RAG Engine

  2. Seleziona la regione in cui è in esecuzione RAG Engine. L'elenco dei corpora RAG è aggiornato.
  3. Fai clic su Configura RAG Engine. Viene visualizzato il riquadro Configura RAG Engine. Puoi vedere il livello selezionato per il motore RAG.
  4. Fai clic su Annulla.

Python

from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

rag_engine_config = rag.rag_data.get_rag_engine_config(
    name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"
)

print(rag_engine_config)

REST

curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig

Aggiorna la configurazione del progetto

Questa sezione fornisce esempi di codice per mostrare come modificare il livello nella configurazione.

Aggiorna il tuo RagEngineConfig al livello Scaled

I seguenti esempi di codice mostrano come impostare RagEngineConfig sul livello scalato:

Console

  1. Nella console Google Cloud , vai alla pagina Motore RAG.

    Vai a RAG Engine

  2. Seleziona la regione in cui è in esecuzione RAG Engine. L'elenco dei corpora RAG è aggiornato.
  3. Fai clic su Configura RAG Engine. Viene visualizzato il riquadro Configura RAG Engine.
  4. Seleziona il livello su cui vuoi eseguire RAG Engine.
  5. Fai clic su Salva.

Python

from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"

new_rag_engine_config = rag.RagEngineConfig(
name=rag_engine_config_name,
rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Scaled()),
)

updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
rag_engine_config=new_rag_engine_config
)

print(updated_rag_engine_config)

REST

curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'scaled': {}}}"

Aggiorna il tuo RagEngineConfig al livello Basic

I seguenti esempi di codice mostrano come impostare RagEngineConfig sul livello Basic:

Se hai una grande quantità di dati nel tuo RagManagedDb nei tuoi corpora RAG, il downgrade a un livello Basic potrebbe non riuscire a causa di capacità di calcolo e archiviazione insufficienti.

Console

  1. Nella console Google Cloud , vai alla pagina Motore RAG.

    Vai a RAG Engine

  2. Seleziona la regione in cui è in esecuzione RAG Engine. L'elenco dei corpora RAG è aggiornato.
  3. Fai clic su Configura RAG Engine. Viene visualizzato il riquadro Configura RAG Engine.
  4. Seleziona il livello su cui vuoi eseguire RAG Engine.
  5. Fai clic su Salva.

Python

from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"

new_rag_engine_config = rag.RagEngineConfig(
name=rag_engine_config_name,
rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Basic()),
)

updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
rag_engine_config=new_rag_engine_config
)

print(updated_rag_engine_config)

REST

curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'basic': {}}}"

Aggiorna il tuo RagEngineConfig al livello Non sottoposto a provisioning

I seguenti esempi di codice mostrano come impostare RagEngineConfig sul livello Non sottoposto a provisioning:

Console

  1. Nella console Google Cloud , vai alla pagina Motore RAG.

    Vai a RAG Engine

  2. Seleziona la regione in cui è in esecuzione RAG Engine. L'elenco dei corpora RAG è aggiornato.
  3. Fai clic su Configura RAG Engine. Viene visualizzato il riquadro Configura RAG Engine.
  4. Fai clic su Elimina RAG Engine. Viene visualizzata una finestra di dialogo di conferma.
  5. Verifica di voler eliminare i dati in RAG Engine digitando delete, quindi fai clic su Conferma.
  6. Fai clic su Salva.

Python

from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"

new_rag_engine_config = rag.RagEngineConfig(
  name=rag_engine_config_name,
  rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Unprovisioned()),
)

updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
  rag_engine_config=new_rag_engine_config
)

print(updated_rag_engine_config)

REST

curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'unprovisioned': {}}}"

Passaggi successivi