Questa pagina mostra come connettere il corpus RAG Engine al database Weaviate.
Puoi anche seguire le istruzioni utilizzando questo notebook Motore RAG con Weaviate.
Puoi utilizzare l'istanza del database Weaviate, che è un database open source, con RAG Engine per indicizzare ed eseguire una ricerca di somiglianza basata su vettori. Una ricerca per similarità è un modo per trovare brani di testo simili a quello che stai cercando, il che richiede l'utilizzo di un modello di incorporamento. Il modello di incorporamento produce dati vettoriali per ogni porzione di testo confrontata. La ricerca di similarità viene utilizzata per recuperare contesti semantici per il grounding per restituire i contenuti più accurati dal tuo LLM.
Con RAG Engine, puoi continuare a utilizzare l'istanza del database vettoriale completamente gestita, di cui sei responsabile del provisioning. RAG Engine utilizza il database vettoriale per l'archiviazione, la gestione degli indici e la ricerca.
Considerazioni
Prima di utilizzare il database Weaviate, considera i seguenti passaggi:
- Devi creare, configurare ed eseguire il deployment dell'istanza e della raccolta del database Weaviate. Segui le istruzioni riportate in Crea la raccolta Weaviate per configurare una raccolta in base allo schema.
- Devi fornire una chiave API Weaviate, che consente a RAG Engine di interagire
con il database Weaviate. RAG Engine supporta
AuthN
eAuthZ
basati su chiave API, che si connettono al tuo database Weaviate e supportano una connessione HTTPS. - RAG Engine non archivia e gestisce la chiave API Weaviate. Devi invece
procedere nel seguente modo:
- Archivia la chiave in Google Cloud Secret Manager.
- Concedi all'account di servizio del progetto le autorizzazioni per accedere al secret.
- Fornisci l'accesso a RAG Engine al nome della risorsa del tuo secret.
- Quando interagisci con il database Weaviate, RAG Engine accede alla risorsa secret utilizzando il tuoaccount di serviziot.
- Il corpus del motore RAG e la raccolta Weaviate hanno una mappatura
uno a uno. I file RAG vengono archiviati in una raccolta di database Weaviate. Quando viene effettuata una chiamata all'API
CreateRagCorpus
o all'APIUpdateRagCorpus
, il corpus RAG viene associato alla raccolta del database. - Oltre alle ricerche semantiche basate su incorporamenti densi, la ricerca ibrida è supportata anche da RAG Engine tramite un database Weaviate. Puoi anche regolare la ponderazione tra la somiglianza vettoriale densa e quella sparsa in una ricerca ibrida.
Esegui il provisioning del database Weaviate
Prima di utilizzare il database Weaviate con il motore RAG, devi svolgere le seguenti operazioni:
- Configura ed esegui il deployment dell'istanza del database Weaviate.
- Prepara l'endpoint HTTPS.
- Crea la raccolta Weaviate.
- Utilizza la chiave API per eseguire il provisioning di Weaviate utilizzando
AuthN
eAuthZ
. - Esegui il provisioning del account di servizio RAG Engine.
Configura ed esegui il deployment dell'istanza del database Weaviate
Devi seguire la guida rapida ufficiale di Weaviate. Tuttavia, puoi utilizzare la guida diGoogle Cloud Marketplace, che è facoltativa.
Puoi configurare l'istanza di Weaviate ovunque, purché l'endpoint Weaviate sia accessibile per la configurazione e il deployment nel tuo progetto. Puoi quindi gestire completamente l'istanza del database Weaviate.
Poiché RAG Engine non è coinvolto in nessuna fase del ciclo di vita dell'istanza del database Weaviate, è tua responsabilità concedere le autorizzazioni a RAG Engine in modo che possa archiviare e cercare dati nel tuo database Weaviate. È inoltre tua responsabilità assicurarti che i dati nel tuo database possano essere utilizzati da RAG Engine. Ad esempio, se modifichi i tuoi dati, RAG Engine non è responsabile di eventuali comportamenti imprevisti dovuti a queste modifiche.
Prepara l'endpoint HTTPS
Durante il provisioning di Weaviate, assicurati di creare un endpoint HTTPS. Sebbene le connessioni HTTP siano supportate, preferiamo che il traffico del motore RAG e del database Weaviate utilizzi una connessione HTTPS.
Crea la tua raccolta Weaviate
Poiché il corpus del motore RAG e la raccolta Weaviate hanno una mappatura uno a uno, devi creare una raccolta nel database Weaviate prima di associarla al corpus del motore RAG. Questa associazione
una tantum viene creata quando chiami l'API CreateRagCorpus
o l'API
UpdateRagCorpus
.
Quando crei una raccolta in Weaviate, devi utilizzare lo schema seguente:
Nome proprietà | Tipo di dati |
---|---|
fileId |
text |
corpusId |
text |
chunkId |
text |
chunkDataType |
text |
chunkData |
text |
fileOriginalUri |
text |
Utilizza la chiave API per eseguire il provisioning di Weaviate utilizzando AuthN
e AuthZ
Il provisioning della chiave API Weaviate prevede i seguenti passaggi:
- Crea la chiave API Weaviate.
- Configura Weaviate utilizzando la chiave API di Weaviate.
- Archivia la chiave API Weaviate in Secret Manager.
Crea la chiave API
RAG Engine può connettersi alle istanze del database Weaviate solo utilizzando la chiave API per l'autenticazione e l'autorizzazione. Per configurare l'autenticazione basata su chiave API nell'istanza del database Weaviate, devi seguire la guida ufficiale di Weaviate all'autenticazione.
Se la creazione della chiave API Weaviate richiede informazioni sull'identità da associare che provengono dal motore RAG, devi creare il tuo primo corpus e utilizzare il tuo account di servizio del motore RAG come identità.
Archivia la chiave API in Secret Manager
Una chiave API contiene informazioni sensibili che consentono l'identificazione personale (informazioni personali sensibili), che sono soggette a requisiti legali. Se i dati SPII vengono compromessi o utilizzati in modo improprio, un privato potrebbe subire un rischio o un danno significativo. Per ridurre al minimo i rischi per una persona durante l'utilizzo di RAG Engine, non archiviare e gestire la chiave API ed evita di condividerla non criptata.
Per proteggere le informazioni sensibili di identificazione personale:
- Archivia la chiave API in Secret Manager.
- Concedi al tuo account di servizio RAG Engine le autorizzazioni per i tuoi secret
e gestisci ilcontrollo dell'accessoo a livello di risorsa secret.
- Vai alle autorizzazioni del progetto.
- Attiva l'opzione Includi concessioni di ruoli fornite da Google.
- Trova il account di servizio, che ha il formato
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
- Modifica le entità dell'account di servizio.
- Aggiungi il ruolo Funzione di accesso ai secret di Secret Manager al service account.
- Durante la creazione o l'aggiornamento del corpus RAG, passa il nome della risorsa secret a RAG Engine e memorizzalo.
Quando effettui richieste API alle tue istanze di database Weaviate, RAG Engine utilizza ogniaccount di serviziot per leggere la chiave API corrispondente alle tue risorse secret in Secret Manager dai tuoi progetti.
Esegui il provisioning del account di servizio RAG Engine
Quando crei la prima risorsa nel tuo progetto, RAG Engine crea un account di servizio dedicato. Puoi trovare il account di servizio nella pagina IAM del progetto. Il account di servizio segue questo formato:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
Ad esempio, service-123456789@gcp-sa-vertex-rag.iam.gserviceaccount.com
.
Quando esegui l'integrazione con il database Weaviate, il tuo account di servizio viene utilizzato nei seguenti scenari:
- Puoi utilizzare il account di servizio per generare la chiave API Weaviate per l'autenticazione. In alcuni casi, la generazione della chiave API non richiede informazioni sull'utente, il che significa che non è necessario unaccount di serviziot quando viene generata la chiave API.
- Puoi associare il account di servizio alla chiave API nel database Weaviate
per configurare l'autenticazione (
AuthN
) e l'autorizzazione (AuthZ
). Tuttavia, il account di servizio non è obbligatorio. - Puoi archiviare la chiave API Secret Manager nel tuo progetto e concedere al account di servizio le autorizzazioni per queste risorse secret.
- RAG Engine utilizza i service account per accedere alla chiave API da Secret Manager nei tuoi progetti.
Configura l'ambiente della console Google Cloud
Fai clic per scoprire come configurare il tuo ambiente
Scopri come configurare il tuo ambiente selezionando una delle seguenti schede:
Python
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Installa o aggiorna l'SDK Vertex AI per Python eseguendo il seguente comando:
pip3 install --upgrade "google-cloud-aiplatform>=1.38"
Node.js
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Installa o aggiorna l'SDK Vertex AI per Node.js eseguendo questo comando:
npm install @google-cloud/vertexai
Java
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Per aggiungere
google-cloud-vertexai
come dipendenza, aggiungi il codice appropriato per il tuo ambiente:Maven con BOM
Aggiungi il seguente codice HTML a
pom.xml
:<dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>libraries-bom</artifactId> <version>26.32.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-vertexai</artifactId> </dependency> </dependencies>
Maven senza BOM
Aggiungi il seguente codice HTML a
pom.xml
:<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-vertexai</artifactId> <version>0.4.0</version> </dependency>
Gradle without BOM
Add the following to your
build.gradle
implementation 'com.google.cloud:google-cloud-vertexai:0.4.0'
Go
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Esamina i pacchetti Go dell'API Vertex AI disponibili per determinare quale pacchetto soddisfa al meglio le esigenze del tuo progetto:
Pacchetto cloud.google.com/go/vertexai (consigliato)
vertexai
è un pacchetto creato da persone che fornisce l'accesso a funzionalità comuni.Questo pacchetto è consigliato come punto di partenza per la maggior parte degli sviluppatori che creano con l'API Vertex AI. Per accedere a funzionalità e caratteristiche non ancora coperte da questo pacchetto, utilizza
aiplatform
generato automaticamente.Pacchetto cloud.google.com/go/aiplatform
aiplatform
è un pacchetto generato automaticamente.Questo pacchetto è destinato ai progetti che richiedono l'accesso a funzionalità e caratteristiche dell'API Vertex AI non ancora fornite dal pacchetto
vertexai
creato da persone.
Installa il pacchetto Go desiderato in base alle esigenze del tuo progetto eseguendo uno dei seguenti comandi:
# Human authored package. Recommended for most developers. go get cloud.google.com/go/vertexai
# Auto-generated package. go get cloud.google.com/go/aiplatform
C#
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
REST
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- Configura le variabili di ambiente inserendo quanto segue. Sostituisci
PROJECT_ID
con l'ID del tuo progetto Google Cloud .MODEL_ID="gemini-2.0-flash-001" PROJECT_ID="PROJECT_ID"
- Esegui il provisioning dell'endpoint:
gcloud beta services identity create --service=aiplatform.googleapis.com --project=${PROJECT_ID}
-
(Facoltativo) Se utilizzi Cloud Shell e ti viene chiesto di autorizzarla, fai clic su Autorizza.
Prepara il corpus RAG
Per accedere ai dati del database Weaviate, RAG Engine deve avere accesso a un corpus RAG. Questa sezione fornisce i passaggi per creare un singolo corpus RAG e corpus RAG aggiuntivi.
Utilizzare le API CreateRagCorpus
e UpdateRagCorpus
Quando chiami le API CreateRagCorpus
e
UpdateRagCorpus
, devi specificare i seguenti campi:
rag_vector_db_config.weaviate
: dopo aver chiamato l'APICreateRagCorpus
, viene scelta la configurazione del database vettoriale. La configurazione del database vettoriale contiene tutti i campi di configurazione. Se il camporag_vector_db_config.weaviate
non è impostato,rag_vector_db_config.rag_managed_db
viene impostato per impostazione predefinita.weaviate.http_endpoint
: l'endpoint Weaviate HTTP o HTTPS viene creato durante il provisioning dell'istanza del database Weaviate.weaviate.collection_name
: il nome della raccolta creata durante il provisioning dell'istanza Weaviate. Il nome deve iniziare con una lettera maiuscola.api_auth.api_key_config
: la configurazione specifica di utilizzare una chiave API per autorizzare l'accesso al database vettoriale.api_key_config.api_key_secret_version
: il nome della risorsa del secret memorizzato in Secret Manager, che contiene la chiave API di Weaviate.
Puoi creare e associare il tuo corpus RAG alla raccolta Weaviate nell'istanza del database. Tuttavia, potresti aver bisogno del account di servizio per generare la chiave API e configurare l'istanza del database Weaviate. Quando crei il tuo primo corpus RAG, viene generato il account di servizio. Dopo aver creato il primo corpus RAG, l'associazione tra il database Weaviate e la chiave API potrebbe non essere pronta per l'uso nella creazione di un altro corpus RAG.
Nel caso in cui il database e la chiave non siano pronti per essere associati al tuo corpus RAG, esegui le seguenti operazioni sul corpus RAG:
Imposta il campo
weaviate
inrag_vector_db_config
.- Non puoi modificare il database vettoriale associato.
- Lascia vuoti i campi
http_endpoint
ecollection_name
. Entrambi i campi possono essere aggiornati in un secondo momento.
Se non hai memorizzato la chiave API in Secret Manager, puoi lasciare vuoto il campo
api_auth
. Quando chiami l'APIUpdateRagCorpus
, puoi aggiornare il campoapi_auth
. Weaviate richiede che vengano eseguite le seguenti operazioni:- Imposta
api_key_config
nel campoapi_auth
. Imposta
api_key_secret_version
della chiave API Weaviate in Secret Manager. Il campoapi_key_secret_version
utilizza il seguente formato:projects/{project}/secrets/{secret}/versions/{version}
- Imposta
Se specifichi campi che possono essere impostati una sola volta, come
http_endpoint
ocollection_name
, non puoi modificarli a meno che non elimini il corpus RAG e lo crei di nuovo. Altri campi, come quello della chiave API,api_key_secret_version
, possono essere aggiornati.Quando chiami
UpdateRagCorpus
, puoi impostare il campovector_db
.vector_db
deve essere impostato suweaviate
dalla chiamata APICreateRagCorpus
. In caso contrario, il sistema sceglie l'opzione Database gestito RAG, che è l'impostazione predefinita. Questa opzione non può essere modificata quando chiami l'APIUpdateRagCorpus
. Quando chiamiUpdateRagCorpus
e il campovector_db
è impostato parzialmente, puoi aggiornare i campi contrassegnati come Modificabile (anche denominati modificabili).
Questa tabella elenca i campi modificabili e immutabili di WeaviateConfig
utilizzati
nel codice.
Nome campo | Modificabile o immutabile |
---|---|
http_endpoint |
Immutabile una volta impostato |
collection_name |
Immutabile una volta impostato |
api_key_authentication |
Modificabile |
Crea il primo corpus RAG
Quando il account di servizio RAG Engine non esiste:
- Crea un corpus RAG nel motore RAG con una configurazione Weaviate vuota, che avvia il provisioning del motore RAG per creare unaccount di serviziot.
- Scegli un nome per il account di servizio RAG Engine che rispetti questo
formato:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
Ad esempio,
service-123456789@gcp-sa-vertex-rag.iam.gserviceaccount.com
. - Utilizza il account di servizio per accedere al secret archiviato in Secret Manager del tuo progetto, che contiene la chiave API Weaviate.
- Una volta completato il provisioning di Weaviate, ottieni le seguenti informazioni:
- L'endpoint HTTP o HTTPS di Weaviate.
- Il nome della tua raccolta Weaviate.
- Chiama l'API
CreateRagCorpus
per creare un corpus RAG con una configurazione Weaviate vuota e chiama l'APIUpdateRagCorpus
per aggiornare il corpus RAG con le seguenti informazioni:- L'endpoint HTTP o HTTPS di Weaviate.
- Il nome della tua raccolta Weaviate.
- Il nome della risorsa della chiave API.
Crea un altro corpus RAG
Quando esiste il account di servizio RAG Engine:
- Recupera il account di servizio RAG Engine dalle autorizzazioni del progetto.
- Attiva l'opzione "Includi concessioni di ruoli fornite da Google".
- Scegli un nome per il account di servizio RAG Engine che rispetti questo
formato:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
- Utilizza il account di servizio per accedere al secret archiviato in Secret Manager del tuo progetto, che contiene la chiave API Weaviate.
- Durante il provisioning di Weaviate, recupera le seguenti informazioni:
- L'endpoint HTTP o HTTPS di Weaviate.
- Il nome della tua raccolta Weaviate.
- Crea un corpus RAG nel motore RAG e connettiti alla raccolta Weaviate
in uno dei seguenti modi:
- Esegui una chiamata API
CreateRagCorpus
per creare un corpus RAG con una configurazione Weaviate compilata, che è l'opzione preferita. - Esegui una chiamata API
CreateRagCorpus
per creare un corpus RAG con una configurazione Weaviate vuota ed esegui una chiamata APIUpdateRagCorpus
per aggiornare il corpus RAG con le seguenti informazioni:- Endpoint HTTP del database Weaviate
- Nome della raccolta Weaviate
- Chiave API
- Esegui una chiamata API
Esempi
Questa sezione presenta codice campione che mostra come configurare il database Weaviate, Secret Manager, il corpus RAG e il file RAG. Viene fornito anche un codice di esempio per mostrare come importare file, recuperare il contesto, generare contenuti ed eliminare il corpus RAG e i file RAG.
Per utilizzare il blocco note dell'API Model Garden RAG, consulta Utilizzare Weaviate con Llama 3.
Configura il database Weaviate
Questo esempio di codice mostra come configurare i dati di Weaviate e Secret Manager.
REST
# TODO(developer): Update the variables.
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate API Key.
WEAVIATE_API_KEY="example-api-key"
# Select your Weaviate collection name, which roughly corresponds to a Vertex AI Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weavaite will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# Create a collection in Weaviate which includes the required schema fields shown below.
echo '{
"class": "'${WEAVIATE_COLLECTION_NAME}'",
"properties": [
{ "name": "fileId", "dataType": [ "string" ] },
{ "name": "corpusId", "dataType": [ "string" ] },
{ "name": "chunkId", "dataType": [ "string" ] },
{ "name": "chunkDataType", "dataType": [ "string" ] },
{ "name": "chunkData", "dataType": [ "string" ] },
{ "name": "fileOriginalUri", "dataType": [ "string" ] }
]
}' | curl \
-X POST \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer "${WEAVIATE_API_KEY} \
-d @- \
${HTTP_ENDPOINT_NAME}/v1/schema
Configurare Secret Manager
Per configurare Secret Manager, devi abilitarlo e impostare le autorizzazioni.
Crea secret
Per abilitare Secret Manager:
Console
Vai alla pagina Secret Manager.
Fai clic su + Crea secret.
Inserisci il Nome del secret. I nomi dei secret possono contenere solo lettere latine (A-Z), numeri (0-9), trattini (-) e trattini bassi (_).
La specificazione dei seguenti campi è facoltativa:
- Per caricare il file con il tuo segreto, fai clic su Sfoglia.
- Leggi le norme relative alla replica.
- Se vuoi gestire manualmente le posizioni per il secret, seleziona Gestisci manualmente le località per questo secret. Deve essere selezionata almeno una regione.
- Seleziona l'opzione di crittografia.
- Se vuoi impostare manualmente il periodo di rotazione, seleziona Imposta periodo di rotazione.
- Se vuoi specificare gli argomenti di pubblicazione o abbonamento per ricevere notifiche sugli eventi, fai clic su Aggiungi argomenti.
- Per impostazione predefinita, il secret non ha scadenza. Se vuoi impostare una data di scadenza, seleziona Imposta data di scadenza.
- Per impostazione predefinita, le versioni del secret vengono eliminate su richiesta. Per ritardare l'eliminazione delle versioni del secret, seleziona Imposta durata per l'eliminazione ritardata.
- Se vuoi utilizzare le etichette per organizzare e categorizzare i secret, fai clic su + Aggiungi etichetta.
- Se vuoi utilizzare le annotazioni per collegare metadati non identificativi ai tuoi secret, fai clic su + Aggiungi annotazione.
Fai clic su Crea secret.
REST
# Create a secret in SecretManager.
curl "https://secretmanager.googleapis.com/v1/projects/${PROJECT_ID}/secrets?secretId=${SECRET_NAME}" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"replication\": {\"automatic\": {}}}"
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Python.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Imposta autorizzazioni
Devi concedere le autorizzazioni Secret Manager al tuo account di servizio.
Console
Nella sezione IAM e amministrazione della console Google Cloud , trova il tuo service account e fai clic sull'icona a forma di matita per modificarlo.
Nel campo Ruolo, seleziona Secret Manager Secret Accessor.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Python.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Aggiungi versione secret
REST
# TODO(developer): Update the variables.
# Select a resource name for your Secret, which contains your API Key.
SECRET_NAME="MyWeaviateApiKeySecret"
# Your Weaviate API Key.
WEAVIATE_API_KEY="example-api-key"
# Encode your WEAVIATE_API_KEY using base 64.
SECRET_DATA=$(echo ${WEAVIATE_API_KEY} | base64)
# Create a new version of your secret which uses SECRET_DATA as payload
curl "https://secretmanager.googleapis.com/v1/projects/${PROJECT_ID}/secrets/${SECRET_NAME}:addVersion" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"payload\": {\"data\": \"${SECRET_DATA}\"}}"
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Python.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Utilizzare Weaviate con Llama 3
Il notebook dell'API RAG di Model Garden mostra come utilizzare l'SDK Vertex AI per Python con un corpus Weaviate e il modello Llama 3. Per utilizzare il notebook, devi:
Utilizza il notebook dell'API Model Garden RAG.
Per altri esempi, consulta la sezione Esempi.
Crea un corpus RAG
Questo esempio di codice mostra come creare un corpus RAG e imposta l'istanza Weaviate come database vettoriale.
REST
# TODO(developer): Update the variables.
PROJECT_ID = "YOUR_PROJECT_ID"
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate collection name, which roughly corresponds to a Vertex AI Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weaviate will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# The resource name of your Weaviate API Key your Secret.
SECRET_NAME="MyWeaviateApiKeySecret"
# The Secret Manager resource name containing the API Key for your Weaviate endpoint.
# For example, projects/{project}/secrets/{secret}/versions/latest
APIKEY_SECRET_VERSION="projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/latest"
# Select a Corpus display name.
CORPUS_DISPLAY_NAME="SpecialCorpus"
# Call CreateRagCorpus API and set all Vector DB Config parameters for Weaviate to create a new corpus associated to your selected Weaviate collection.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_vector_db_config" : {
"weaviate": {
"http_endpoint": '\""${HTTP_ENDPOINT_NAME}"\"',
"collection_name": '\""${WEAVIATE_COLLECTION_NAME}"\"'
},
"api_auth" : {
"api_key_config": {
"api_key_secret_version": '\""${APIKEY_SECRET_VERSION}"\"'
}
}
}
}'
# TODO(developer): Update the variables.
# Get operation_id returned in CreateRagCorpus.
OPERATION_ID="your-operation-id"
# Poll Operation status until done = true in the response.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/operations/${OPERATION_ID}
# Call ListRagCorpora API to verify the RAG corpus is created successfully.
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora"
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Python.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Utilizzare il file RAG
L'API RAG gestisce il caricamento, l'importazione, l'elenco e l'eliminazione dei file.
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 di
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 di queste 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
,
quindi esegui il comando seguente:
$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
è rag_file_id
generato dal server.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Importare file RAG
File e cartelle possono essere importati da Drive o Cloud Storage.
REST
Utilizza response.metadata
per visualizzare errori parziali, tempo di richiesta e tempo di risposta nell'oggetto response
dell'SDK.
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 delle 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 di queste 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
,
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/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
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.
// 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 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.
// 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 Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Recuperare 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 \
"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 Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Elenca 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 parametropage_size
. - PAGE_TOKEN: il token della pagina dell'elenco standard. Ottenuto in genere utilizzando
ListRagFilesResponse.next_page_token
della chiamata precedenteVertexRagDataService.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 \
"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
nel RAG_CORPUS_ID
specificato.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
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 \
"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 Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Recuperare il contesto
Quando un utente pone una domanda o fornisce un prompt, il componente di recupero in RAG cerca nella sua knowledge base le 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": 0.8 }, "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
,
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 Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Genera contenuti
Una previsione controlla il metodo LLM che genera contenuti.
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
,
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 Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Ricerca ibrida
La ricerca ibrida è supportata dal database Weaviate, che combina la ricerca semantica e quella per parole chiave per migliorare la pertinenza dei risultati di ricerca. Durante il recupero dei risultati di ricerca, una combinazione di punteggi di similarità provenienti dalla corrispondenza semantica (un vettore denso) e dalla corrispondenza delle parole chiave (un vettore sparso) produce i risultati finali classificati.
Ricerca ibrida utilizzando l'API di recupero di RAG Engine
Questo è un esempio di come abilitare una ricerca ibrida utilizzando l'API di recupero di RAG Engine.
REST
# TODO(developer): Update the variables.
PROJECT_ID = "YOUR_PROJECT_ID"
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate collection name, which roughly corresponds to a Vertex AI Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weaviate will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# The resource name of your Weaviate API Key your Secret.
SECRET_NAME="MyWeaviateApiKeySecret"
# The Secret Manager resource name containing the API Key for your Weaviate endpoint.
# For example, projects/{project}/secrets/{secret}/versions/latest
APIKEY_SECRET_VERSION="projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/latest"
# Select a Corpus display name.
CORPUS_DISPLAY_NAME="SpecialCorpus"
# Call CreateRagCorpus API and set all Vector DB Config parameters for Weaviate to create a new corpus associated to your selected Weaviate collection.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_vector_db_config" : {
"weaviate": {
"http_endpoint": '\""${HTTP_ENDPOINT_NAME}"\"',
"collection_name": '\""${WEAVIATE_COLLECTION_NAME}"\"'
},
"api_auth" : {
"api_key_config": {
"api_key_secret_version": '\""${APIKEY_SECRET_VERSION}"\"'
}
}
}
}'
# TODO(developer): Update the variables.
# Get operation_id returned in CreateRagCorpus.
OPERATION_ID="your-operation-id"
# Poll Operation status until done = true in the response.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/operations/${OPERATION_ID}
# Call ListRagCorpora API to verify the RAG corpus is created successfully.
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora"
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Utilizzare la ricerca ibrida e RAG Engine per la generazione con grounding
Questo è un esempio di come utilizzare la ricerca ibrida e il motore RAG per la generazione con grounding.
REST
# TODO(developer): Update the variables.
PROJECT_ID = "YOUR_PROJECT_ID"
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate collection name, which roughly corresponds to a Vertex AI Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weaviate will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# The resource name of your Weaviate API Key your Secret.
SECRET_NAME="MyWeaviateApiKeySecret"
# The Secret Manager resource name containing the API Key for your Weaviate endpoint.
# For example, projects/{project}/secrets/{secret}/versions/latest
APIKEY_SECRET_VERSION="projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/latest"
# Select a Corpus display name.
CORPUS_DISPLAY_NAME="SpecialCorpus"
# Call CreateRagCorpus API and set all Vector DB Config parameters for Weaviate to create a new corpus associated to your selected Weaviate collection.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_vector_db_config" : {
"weaviate": {
"http_endpoint": '\""${HTTP_ENDPOINT_NAME}"\"',
"collection_name": '\""${WEAVIATE_COLLECTION_NAME}"\"'
},
"api_auth" : {
"api_key_config": {
"api_key_secret_version": '\""${APIKEY_SECRET_VERSION}"\"'
}
}
}
}'
# TODO(developer): Update the variables.
# Get operation_id returned in CreateRagCorpus.
OPERATION_ID="your-operation-id"
# Poll Operation status until done = true in the response.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/operations/${OPERATION_ID}
# Call ListRagCorpora API to verify the RAG corpus is created successfully.
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora"
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.