RAG (Retrieval-augmented Generation) consente ai modelli linguistici di grandi dimensioni (LLM) di accedere fonti di conoscenza esterne, come documenti e database. Utilizzando RAG, gli LLM può generare risposte più accurate e informative in base ai dati che le fonti di conoscenza esterne contengono.
Sintassi di esempio
Questa sezione fornisce la sintassi per creare un corpus RAG.
curl
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" : "...", "description": "...", "rag_embedding_model_config": { "vertex_prediction_endpoint": { "endpoint": "..." } } }'
Python
corpus = rag.create_corpus(display_name=..., description=...) print(corpus)
Elenco dei parametri
In questa sezione sono elencate le seguenti informazioni:
Parametri | Esempi |
---|---|
Consulta Parametri di gestione del corpus. | Consulta gli 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.
Parametri | |
---|---|
|
Facoltativo: Il nome visualizzato del corpus RAG. |
|
Facoltativo: La descrizione del corpus RAG. |
|
(Facoltativo) Il modello di embedding da utilizzare per il corpus RAG. |
|
(Facoltativo) L'endpoint HTTPS o HTTP dell'istanza di Weaviate. |
|
Facoltativo: La raccolta Weaviate su cui mappa il corpus di RAG. |
|
Facoltativo: Il Vertex AI Feature Store Formato: |
|
Facoltativo: Il nome della risorsa della versione del secret di Secret Manager che memorizza la chiave API. Formato: |
|
Questo campo ti aiuta a impostare la scelta di un database vettoriale da associare al tuo corpus RAG e deve essere impostato durante la chiamata dell'API |
|
Questo è il nome utilizzato per
crea l'indice della pigna che viene utilizzato con il corpus RAG. Puoi impostare il nome durante la chiamata |
|
Si tratta del nome completo della risorsa del secret archiviato in
Secret Manager, che contiene la chiave API Pinecone. Puoi impostare il nome durante la chiamata |
|
Questo campo consente di impostare
di un database vettoriale da associare al tuo corpus RAG e
deve essere impostato durante la chiamata API |
|
Questo è il nome della risorsa di Vector Search utilizzata con il corpus RAG. Puoi impostare il nome durante la chiamata |
|
Questo è il nome della risorsa dell'endpoint dell'indice di ricerca vettoriale utilizzato con il corpus RAG. Puoi impostare il nome durante la chiamata |
Aggiornare un corpus RAG
In questa tabella sono elencati i parametri utilizzati per aggiornare un corpus RAG.
Nome | Descrizione |
---|---|
display_name |
Facoltativo: string Il nome visualizzato del corpus RAG. |
description |
(Facoltativo) string La visualizzazione del corpus RAG. |
rag_vector_db_config.weaviate.http_endpoint |
Facoltativo: string L'endpoint HTTPS o HTTP dell'istanza di Weaviate. |
rag_vector_db_config.weaviate.collection_name |
Facoltativo: string La raccolta Weaviate su cui mappa il corpus di RAG. |
rag_vector_db_config.vertex_feature_store.feature_view_resource_name |
(Facoltativo) string La visualizzazione delle funzionalità di Vertex AI Feature Store a cui viene mappato il corpus RAG. Formato: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view} |
api_auth.api_key_config.api_key_secret_version |
Facoltativo: string Il nome della risorsa della versione del secret di Secret Manager in cui è archiviata la chiave API. Formato: projects/{project}/secrets/{secret}/versions/{version} |
|
Questo campo consente di impostare la scelta
un database vettoriale da associare al tuo corpus RAG
deve essere impostato durante la chiamata API |
|
Questo è il nome utilizzato per creare l'indice Pinecone utilizzato con il corpus RAG. Puoi impostare il nome durante la chiamata |
|
Si tratta del nome completo della risorsa del secret archiviato in
Secret Manager, che contiene la chiave API Pinecone. Puoi impostare il nome durante la chiamata |
|
Questo campo consente di impostare
di un database vettoriale da associare al tuo corpus RAG e
deve essere impostato durante la chiamata API |
|
Questo è il nome della risorsa di Vector Search utilizzata con il corpus RAG. Puoi impostare il nome durante la chiamata |
|
Questo è il nome della risorsa dell'endpoint indice di Vector Search utilizzato con il corpus RAG. Puoi impostare il nome durante la chiamata |
Elenca i corpora RAG
Questa tabella elenca i parametri utilizzati per elencare il corpora RAG.
Parametri | |
---|---|
|
Facoltativo: Le dimensioni della pagina dell'elenco standard. |
|
Facoltativo: Il token della pagina dell'elenco standard. Risultato ottenuto in genere da |
Ottieni un corpus RAG
Questa tabella elenca i parametri utilizzati per ottenere un corpus RAG.
Parametri | |
---|---|
|
L'ID della risorsa |
Eliminare un corpus RAG
In questa tabella sono elencati i parametri utilizzati per eliminare un corpus RAG.
Parametri | |
---|---|
|
L'ID della risorsa |
Parametri di gestione dei file
Per informazioni su un file RAG, consulta Gestione dei file.
Carica un file RAG
In questa tabella sono elencati i parametri utilizzati per caricare un file RAG.
Parametri | |
---|---|
|
L'ID della risorsa |
|
Facoltativo: Il nome visualizzato del corpus Rag. |
|
Facoltativo: La descrizione di RagCorpus. |
Importa file RAG
In questa tabella sono elencati i parametri utilizzati per importare un file RAG.
Parametri | |
---|---|
|
L'ID della risorsa |
|
URI Cloud Storage contenente il file di caricamento. |
|
Facoltativo: Il tipo di risorsa Google Drive. |
|
Facoltativo: L'ID della risorsa di Google Drive. |
|
(Facoltativo) Numero di token che deve avere ogni chunk. |
|
Facoltativo: Il numero di token che si sovrappongono tra due blocchi. |
|
Facoltativo: Numero che rappresenta un limite per limitare la frequenza con cui RAG Engine chiama il modello di embedding durante il processo di indicizzazione. Il limite predefinito è |
|
L'ID della risorsa |
|
Facoltativo: Le dimensioni della pagina dell'elenco standard. |
|
Facoltativo: Il token standard della pagina elenco. In genere ottenuto da |
Recuperare un file RAG
Questa tabella elenca i parametri utilizzati per ottenere un file RAG.
Parametri | |
---|---|
|
L'ID della risorsa |
Elimina un file RAG
Questa tabella elenca i parametri utilizzati per eliminare un file RAG.
Parametri | |
---|---|
|
L'ID della risorsa |
Recupero e previsione
In questa sezione sono elencati i parametri di recupero e previsione.
Parametri di recupero
In questa tabella sono elencati i parametri di recupero.
Parametro | Descrizione |
---|---|
similarity_top_k |
Controlla il numero massimo di contesti recuperati. |
vector_distance_threshold |
Vengono presi in considerazione solo i contesti con una distanza inferiore alla soglia. |
Parametri di previsione
In questa tabella sono elencati i parametri di previsione.
Parametri | |
---|---|
|
modello LLM per la generazione di contenuti. |
|
Il nome della risorsa RagCorpus. Formato: |
|
Il testo all'LLM per la generazione di contenuti. Valore massimo: elenco |
|
Facoltativo: Vengono restituiti solo i contesti con una distanza vettoriale inferiore alla soglia. |
|
Facoltativo: Il numero di contesti principali da recuperare. |
Esempi di gestione dei 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 di
RagCorpus
. - CORPUS_DESCRIPTION: la descrizione del
RagCorpus
. - RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT: il modello di incorporamento 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", "rag_embedding_model_config_endpoint": "RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT" }
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 "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:
$headers = @{ }
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
L'esempio seguente mostra come creare un corpus RAG utilizzando il metodo REST tramite Google Cloud CLI o tramite l'API Compute Engine.
// Either your first party publisher model or fine-tuned endpoint
// Example: projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/textembedding-gecko@003
// or
// Example: projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/12345
ENDPOINT_NAME=${RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT}
// Corpus display name
// Such as "my_test_corpus"
CORPUS_DISPLAY_NAME=YOUR_CORPUS_DISPLAY_NAME
// CreateRagCorpus
// Input: ENDPOINT, PROJECT_ID, CORPUS_DISPLAY_NAME
// Output: CreateRagCorpusOperationMetadata
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_embedding_model_config" : {
"vertex_prediction_endpoint": {
"endpoint": '\""${ENDPOINT_NAME}"\"'
}
}
}'
// Poll the operation status.
// The last component of the RagCorpus "name" field is the server-generated
// rag_corpus_id: (only Bold part)
// projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/7454583283205013504.
OPERATION_ID=OPERATION_ID
poll_op_wait ${OPERATION_ID}
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta 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 quanto segue: parametri nel tuo 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 del database gestito, non puoi aggiornare la configurazione del database vettoriale.
Questi esempi mostrano come aggiornare un corpus RAG.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI, vedi Installa l'SDK Vertex AI. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
from vertexai.preview import rag
import vertexai
# TODO(developer): Update and un-comment on the following lines:
# PROJECT_ID = "YOUR_PROJECT_ID"
# corpus_name = "YOUR_CORPUS_NAME"
# e.g. "projects/1234567890/locations/us-central1/ragCorpora/1234567890'"
# display_name = "test_corpus"
# description = "Corpus Description"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")
corpus = rag.update_corpus(
corpus_name=corpus_name,
display_name=display_name,
description=description,
)
print(corpus)
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
CORPUS_ID: The corpus ID of your RAG corpus.
CORPUS_DISPLAY_NAME: The display name of the RAG corpus.
CORPUS_DESCRIPTION: The description of the RAG corpus.
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}
}
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json, quindi esegui questo comando:
curl -X PATH \
-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 }
Save the request body in a file named request.json, and execute the following command:
```sh
$headers = @{ }
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
```
Elenco di corpora RAG di esempio
Questo esempio di codice mostra come elencare tutti i corpora RAG.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la regione in cui elaborare la richiesta.
- PAGE_SIZE: le dimensioni standard della pagina di elenco. Puoi modificare il numero di
RagCorpora
da restituire per pagina aggiornando il parametropage_size
. - PAGE_TOKEN: il token standard della pagina elenco. 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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"
PowerShell
Esegui questo comando:
$headers = @{ }
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 ulteriori informazioni, consulta documentazione di riferimento dell'API Python.
Esempio di corpus RAG
REST
Prima di utilizzare i dati della richiesta, effettua 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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
PowerShell
Esegui questo comando:
$headers = @{ }
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
.
In un esempio vengono utilizzati i comandi get
e list
per dimostrare come
RagCorpus
utilizza il campo rag_embedding_model_config
, che rimanda alla
di incorporamento che hai scelto.
// Server-generated rag_corpus_id in CreateRagCorpus
RAG_CORPUS_ID=RAG_CORPUS_ID
// GetRagCorpus
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID
// Output: RagCorpus
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${ENDPOINT}/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://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora"
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Elimina un esempio di corpus RAG
REST
Prima di utilizzare i dati della richiesta, effettua 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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
PowerShell
Esegui questo comando:
$headers = @{ }
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, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta 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 file RAG di esempio
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
. - INPUT_FILE: il percorso di un file locale.
- FILE_DISPLAY_NAME: il nome visualizzato di
RagFile
. - RAG_FILE_DESCRIPTION: la descrizione del
RagFile
.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload
Corpo JSON della richiesta:
{ "rag_file": { "display_name": "FILE_DISPLAY_NAME", "description": "RAG_FILE_DESCRIPTION" } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato INPUT_FILE
,
quindi esegui il comando seguente:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @INPUT_FILE \
"https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"
PowerShell
Salva il corpo della richiesta in un file denominato INPUT_FILE
.
ed esegui questo comando:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile INPUT_FILE `
-Uri "https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload" | Select-Object -Expand Content
RagFile
. L'ultimo componente del campo RagFile.name
è il rag_file_id
generato dal server.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi 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
Puoi importare file e cartelle da Drive o
di archiviazione ideale in 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, effettua 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
. - DRIVE_RESOURCE_ID: l'ID della risorsa Drive. Esempi:
https://drive.google.com/file/d/ABCDE
https://drive.google.com/corp/drive/u/0/folders/ABCDEFG
- DRIVE_RESOURCE_TYPE: tipo di risorsa Drive. Opzioni:
RESOURCE_TYPE_FILE
- FileRESOURCE_TYPE_FOLDER
- Cartella- 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/upload/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 }, "google_drive_source": { "resource_ids": { "resource_id": DRIVE_RESOURCE_ID, "resource_type": DRIVE_RESOURCE_TYPE }, } } }
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 "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/upload/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:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/upload/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
di archiviazione ideale in 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.
// Cloud Storage bucket/file location.
// Such as "gs://rag-e2e-test/"
GCS_URIS=YOUR_GCS_LOCATION
// Enter the QPM rate to limit RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT
// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: ENDPOINT, 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://${ENDPOINT}/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": 512
},
"max_embedding_requests_per_min": '"${EMBEDDING_MODEL_QPM_RATE}"'
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID=OPERATION_ID
poll_op_wait ${OPERATION_ID}
L'esempio seguente mostra come importare un file da
Drive. Utilizza il campo di controllo max_embedding_requests_per_min
per
limita la frequenza con cui RAG Engine chiama il modello di incorporamento durante
Procedura di indicizzazione di ImportRagFiles
. Il campo ha un valore predefinito di 1000
chiamate
al minuto.
// Google Drive folder location.
FOLDER_RESOURCE_ID=YOUR_GOOGLE_DRIVE_FOLDER_RESOURCE_ID
// Enter the QPM rate to limit RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT
// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: ENDPOINT, 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://${ENDPOINT}/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=OPERATION_ID
poll_op_wait ${OPERATION_ID}
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi 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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
Esegui questo comando:
$headers = @{ }
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.
Esempio di elenco di file RAG
Questo esempio di codice mostra come elencare i file RAG.
REST
Prima di utilizzare i dati della richiesta, effettua 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 di elenco. Puoi modificare il numero di
RagFiles
da restituire per pagina aggiornando il parametropage_size
. - PAGE_TOKEN: il token standard della pagina elenco. Ottenuta 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 \
"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:
$headers = @{ }
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
sotto il RAG_CORPUS_ID
specificato.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Elimina un esempio di file RAG
Questo esempio di codice mostra come eliminare un file RAG.
REST
Prima di utilizzare i dati della richiesta, effettua 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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
Esegui questo comando:
$headers = @{ }
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, vedi 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, effettua 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 vettoriale 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": 0.8 }, "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 "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:
$headers = @{ }
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.
Previsione
La previsione genera una risposta con grounding utilizzando i contesti recuperati.
REST
Prima di utilizzare i dati della richiesta, effettua 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 vettoriale 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 "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:
$headers = @{ }
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, vedi 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, vedi 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.