Il motore RAG di Vertex AI è un componente della piattaforma Vertex AI, che facilita la generazione con potenziamento del recupero (RAG). Il motore RAG consente ai modelli linguistici di grandi dimensioni (LLM) di accedere e incorporare i dati di fonti di conoscenza esterne, come documenti e database. Utilizzando la RAG, gli LLM possono generare risposte più accurate e informative.
Sintassi di esempio
Questa sezione fornisce la sintassi per creare un corpus RAG.
curl
PROJECT_ID: Your project ID. LOCATION: The region to process the request. curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora\ -d '{ "display_name" : "...", "description": "..." }'
Python
corpus = rag.create_corpus(display_name=..., description=...) print(corpus)
Elenco dei parametri
Questa sezione elenca quanto segue:
Parametri | Esempi |
---|---|
Consulta Parametri di gestione del corpus. | Consulta Esempi di gestione del corpus. |
Consulta Parametri di gestione dei file. | Consulta gli esempi di gestione dei file. |
Parametri di gestione del corpus
Per informazioni su un corpus RAG, consulta Gestione dei corpora.
Crea un corpus RAG
Questa tabella elenca i parametri utilizzati per creare un corpus RAG.
Richiesta del corpo
Parametri | |
---|---|
|
Obbligatorio: Il nome visualizzato del corpus RAG. |
|
(Facoltativo) La descrizione del corpus RAG. |
|
(Facoltativo) Immutabile: La configurazione per i database Vector. |
|
(Facoltativo) La configurazione di Vertex AI Search. Formato: |
RagVectorDbConfig
Parametri | |
---|---|
|
Se non viene specificato alcun database vettoriale, |
|
Specifica l'istanza Weaviate. |
|
L'endpoint HTTP dell'istanza Weaviate. Questo valore non può essere modificato dopo l'impostazione. Puoi lasciarlo vuoto nella chiamata API |
|
La raccolta Weaviate a cui viene mappato il corpus RAG. Questo valore non può essere modificato dopo l'impostazione. Puoi lasciarlo vuoto nella chiamata API |
|
Specifica l'istanza Pinecone. |
|
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 |
|
Specifica l'istanza Vertex AI Feature Store. |
|
Il Vertex AI Feature Store Formato: Questo valore non può essere modificato dopo l'impostazione. Puoi lasciarlo vuoto nella chiamata API |
|
Specifica l'istanza Vertex Vector Search. |
|
Si tratta del nome della risorsa dell'indice di ricerca vettoriale utilizzato con il corpus RAG. Formato: Questo valore non può essere modificato dopo l'impostazione. Puoi lasciarlo vuoto nella chiamata API |
|
Questo è il nome della risorsa dell'endpoint dell'indice di ricerca vettoriale utilizzato con il corpus RAG. Formato: Questo valore non può essere modificato dopo l'impostazione. Puoi lasciarlo vuoto nella chiamata API |
|
Si tratta del nome completo della risorsa del secret archiviato in Secret Manager, che contiene la chiave API Weaviate o Pinecone, a seconda della scelta del database di vettori. Formato: Puoi lasciarlo vuoto nella chiamata API |
|
(Facoltativo) Immutabile: Il modello di embedding da utilizzare per il corpus RAG. Questo valore non può essere modificato dopo essere stato impostato. Se lasci vuoto questo campo, utilizzeremo text-embedding-004 come modello di embedding. |
Aggiornare un corpus RAG
Questa tabella elenca i parametri utilizzati per aggiornare un corpus RAG.
Richiesta del corpo
Parametri | |
---|---|
|
(Facoltativo) Il nome visualizzato del corpus RAG. |
|
(Facoltativo) La descrizione del corpus RAG. |
|
L'endpoint HTTP dell'istanza Weaviate. Se |
|
La raccolta Weaviate a cui viene mappato il corpus RAG. Se |
|
Questo è il nome utilizzato per creare l'indice Pinecone utilizzato con il corpus RAG. Se |
|
Il Vertex AI Feature Store Formato: Se il tuo |
|
Si tratta del nome della risorsa dell'indice di ricerca vettoriale utilizzato con il corpus RAG. Formato: Se il tuo |
|
Questo è il nome della risorsa dell'endpoint dell'indice di ricerca vettoriale utilizzato con il corpus RAG. Formato: Se il tuo |
|
Il nome completo della risorsa del secret archiviato in Secret Manager, che contiene la chiave API Weaviate o Pinecone, dipende dalla scelta del database di vettori. Formato: |
Elenca i corpora RAG
Questa tabella elenca i parametri utilizzati per elencare i corpora RAG.
Parametri | |
---|---|
|
(Facoltativo) Le dimensioni della pagina dell'elenco standard. |
|
(Facoltativo) Il token della pagina dell'elenco standard. In genere, viene ottenuto da |
Ottenere un corpus RAG
Questa tabella elenca i parametri utilizzati per ottenere un corpus RAG.
Parametri | |
---|---|
|
Il nome della risorsa |
Eliminare un corpus RAG
Questa tabella elenca i parametri utilizzati per eliminare un corpus RAG.
Parametri | |
---|---|
|
Il nome della risorsa |
Parametri di gestione dei file
Per informazioni su un file RAG, consulta Gestione dei file.
Carica un file RAG
Questa tabella elenca i parametri utilizzati per caricare un file RAG.
Richiesta del corpo
Parametri | |
---|---|
|
Il nome della risorsa |
|
Obbligatorio: Il file da caricare. |
|
Obbligatorio: La configurazione del |
RagFile |
|
---|---|
|
Obbligatorio: Il nome visualizzato del file RAG. |
|
(Facoltativo) La descrizione del file RAG. |
UploadRagFileConfig |
|
---|---|
|
Numero di token di ogni chunk. |
|
La sovrapposizione tra i chunk. |
Importa file RAG
Questa tabella elenca i parametri utilizzati per importare un file RAG.
Parametri | |
---|---|
|
Obbligatorio: Il nome della risorsa Formato: |
|
Località Cloud Storage. Supporta l'importazione di singoli file e di intere directory di Cloud Storage. |
|
URI Cloud Storage contenente il file di caricamento. |
|
Posizione di Google Drive. Supporta l'importazione di singoli file e cartelle di Google Drive. |
|
Il canale Slack in cui viene caricato il file. |
|
La query Jira in cui viene caricato il file. |
|
Le origini SharePoint in cui viene caricato il file. |
|
Numero di token di ogni chunk. |
|
La sovrapposizione tra i chunk. |
|
(Facoltativo) Specifica la configurazione di analisi per Se questo campo non è impostato, RAG utilizza il parser predefinito. |
|
(Facoltativo) 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 è 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 |
|
---|---|
|
Obbligatorio: L'ID della risorsa Google Drive. |
|
Obbligatorio: Il tipo di risorsa di Google Drive. |
SlackSource |
|
---|---|
|
Ripetuta: Informazioni sul canale Slack, inclusi ID e intervallo di tempo da importare. |
|
Obbligatorio: L'ID canale Slack. |
|
(Facoltativo) Il timestamp iniziale dei messaggi da importare. |
|
(Facoltativo) Il timestamp finale dei messaggi da importare. |
|
Obbligatorio: Il nome completo della risorsa del secret archiviato in Secret Manager,
che contiene un token di accesso al canale Slack che ha accesso agli ID canale Slack.
Formato: |
JiraSource |
|
---|---|
|
Ripetuta: Un elenco di progetti Jira da importare nella loro interezza. |
|
Ripetuta: Un elenco di query Jira personalizzate da importare. Per informazioni su JQL (Jira Query Language), consulta
|
|
Obbligatorio: L'indirizzo email di Jira. |
|
Obbligatorio: L'URI del server Jira. |
|
Obbligatorio: Il nome completo della risorsa del secret archiviato in Secret Manager,
che contiene la chiave API di Jira che ha accesso agli ID canale Slack.
Formato: |
SharePointSources |
|
---|---|
|
Il percorso della cartella di SharePoint da cui scaricare. |
|
L'ID della cartella di SharePoint da cui scaricare. |
|
Il nome del drive da cui scaricare. |
|
L'ID del dispositivo da cui scaricare. |
|
L'ID applicazione dell'app registrata nel portale Microsoft Azure.
|
|
Obbligatorio: Il nome completo della risorsa del secret archiviato in Secret Manager, che contiene il secret dell'applicazione per l'app registrata in Azure. Formato: |
|
Identificatore univoco dell'istanza di Azure Active Directory. |
|
Il nome del sito SharePoint da cui scaricare. Può essere il nome o l'ID del sito. |
RagFileParsingConfig |
|
---|---|
|
Il parser del layout da utilizzare per i |
|
Il nome completo di un processore Document AI o di una versione del processore. Formato:
|
|
Il numero massimo di richieste che il job può inviare al processore Document AI al minuto. Consulta la pagina https://cloud.google.com/document-ai/quotas e la pagina Quota per il tuo progetto per impostare un valore appropriato qui. Se non specificato, viene utilizzato un valore predefinito di 120 QPM. |
Recuperare un file RAG
Questa tabella elenca i parametri utilizzati per ottenere un file RAG.
Parametri | |
---|---|
|
Il nome della risorsa |
Eliminare un file RAG
Questa tabella elenca i parametri utilizzati per eliminare un file RAG.
Parametri | |
---|---|
|
Il nome della risorsa |
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 | |
---|---|
|
Obbligatorio: Il nome della risorsa della località da cui recuperare Formato: |
|
L'origine dati per Vertex RagStore. |
|
Obbligatorio: Query di recupero RAG singola. |
VertexRagStore
VertexRagStore |
|
---|---|
|
elenco: La rappresentazione dell'origine RAG. Può essere utilizzato per specificare solo il corpus o i |
|
(Facoltativo)
Formato: |
|
elenco: Un elenco di risorse Formato: |
RagQuery |
|
---|---|
|
La query in formato di testo per ottenere contesti pertinenti. |
|
(Facoltativo) La configurazione di recupero per la query. |
RagRetrievalConfig |
|
---|---|
|
(Facoltativo) Il numero di contesti da recuperare. |
|
(Facoltativo) Il valore alpha controlla il peso tra i risultati della ricerca di vettori densi e sparsi. 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 uniformemente la ricerca di vettori sparsi e densi. La ricerca ibrida è disponibile solo per Weaviate. |
|
Restituisce solo i contesti con una distanza del vettore inferiore alla soglia. |
|
Restituisce solo i contesti con una somiglianza di vettori superiore alla soglia. |
|
(Facoltativo) Il nome del modello del servizio di ranking. Esempio: |
|
(Facoltativo) Il nome del modello utilizzato per il ranking. Esempio: |
Parametri di previsione
Questa tabella elenca i parametri di previsione.
GenerateContentRequest |
|
---|---|
|
Impostato per utilizzare un'origine dati basata sul RAG store di Vertex AI. |
Per informazioni dettagliate, visita la pagina VertexRagStore.
Esempi di gestione del corpus
Questa sezione fornisce esempi di come utilizzare l'API per gestire il corpus RAG.
Creare 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 del
RagCorpus
. - CORPUS_DESCRIPTION: la descrizione del
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 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://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"
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://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora" | Select-Object -Expand Content
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"
}'
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Aggiornare un esempio di corpus RAG
Puoi aggiornare il corpus RAG con un nuovo nome visualizzato, una descrizione e una configurazione del database di vettori. Tuttavia, non puoi modificare i seguenti parametri nel corpus RAG:
- Il tipo di database vettoriale. Ad esempio, non puoi cambiare il database di vettori da Weaviate a Vertex AI Feature Store.
- Se utilizzi l'opzione del 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 del tuo corpus RAG.
- CORPUS_DISPLAY_NAME: il nome visualizzato del
RagCorpus
. - CORPUS_DESCRIPTION: la descrizione del
RagCorpus
. - INDEX_NAME: il nome della risorsa del
Vector Search Index
. Formato:projects/{project}/locations/{location}/indexes/{index}
- INDEX_ENDPOINT_NAME: il nome della risorsa del
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 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://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
,
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://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID" | Select-Object -Expand Content
Esempio di elenco di corpora RAG
Questo esempio di codice mostra come elencare tutti i corpora 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: le dimensioni standard della pagina dell'elenco. Puoi modificare il numero di
RagCorpora
da restituire per pagina aggiornando il parametropage_size
. - PAGE_TOKEN: il token della pagina dell'elenco standard. Ottenuto in genere utilizzando
ListRagCorporaResponse.next_page_token
della chiamataVertexRagDataService.ListRagCorpora
precedente.
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 delle seguenti 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
RagCorpora
in base al PROJECT_ID
specificato.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
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 delle seguenti 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
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 rimanda al
modello di embedding 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/
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Eliminare 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 delle seguenti 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
DeleteOperationMetadata
.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
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, apporta 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 seguente comando:
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"
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Esempio di importazione di file RAG
File e cartelle possono essere importati da Drive o
Cloud Storage. Puoi utilizzare response.metadata
per visualizzare errori parziali, ora della richiesta e tempo di risposta nell'oggetto response
dell'SDK.
response.skipped_rag_files_count
si riferisce al numero di file
che sono stati ignorati durante l'importazione. Un file viene ignorato quando si verificano le seguenti condizioni:
- Il file è già stato importato.
- Il file non è cambiato.
- 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 località di Cloud Storage. Esempio:
gs://my-bucket1, gs://my-bucket2
. - CHUNK_SIZE: facoltativo. Numero di token che deve avere ogni chunk.
- 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 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://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
,
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://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
ImportRagFilesOperationMetadata
.
L'esempio seguente mostra come importare un file da Cloud Storage. Utilizza il campo di controllo max_embedding_requests_per_min
per limitare la frequenza con cui RAG Engine chiama il modello di embedding 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 frequenza con cui RAG Engine chiama il modello di embedding 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.
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
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
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: le dimensioni standard della pagina dell'elenco. Puoi modificare il numero di
RagFiles
da restituire per pagina aggiornando il parametropage_size
. - PAGE_TOKEN: il token della pagina dell'elenco standard. Ottenuto in genere utilizzando
ListRagFilesResponse.next_page_token
della chiamataVertexRagDataService.ListRagFiles
precedente.
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 delle seguenti 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
RagFiles
in base al RAG_CORPUS_ID
specificato.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Visualizza 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 delle seguenti 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
RagFile
.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Eliminare 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 delle seguenti 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
DeleteOperationMetadata
.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
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 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 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://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"
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://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content
RagFiles
correlati.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
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-1.5-pro-002
- GENERATION_METHOD: metodo LLM per la generazione di contenuti. Opzioni:
generateContent
,streamGenerateContent
- INPUT_PROMPT: il testo inviato all'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 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 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://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
,
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://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand Content
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Passaggi successivi
- Per scoprire di più sui modelli di generazione supportati, consulta Modelli di IA generativa che supportano RAG.
- Per scoprire di più sui modelli di incorporamento supportati, consulta Modelli di incorporamento.
- Per scoprire di più sui modelli aperti, consulta Modelli aperti.
- Per scoprire di più su RAG Engine, consulta la panoramica di RAG Engine.