Questa pagina mostra come connettere RAG Engine a Gemini Enterprise Agent Platform Vector Search.
Puoi anche seguire le istruzioni utilizzando il RAG Engine with Agent Platform Vector Search notebook.
Configurazione di Vector Search di Agent Platform
Vector Search di Agent Platform si basa sulla tecnologia Vector Search sviluppata da Google Research. Con Vector Search puoi utilizzare la stessa infrastruttura alla base di prodotti Google come la Ricerca Google, YouTube e Google Play.
Per l'integrazione con RAG Engine è necessario un indice Vector Search vuoto.
Configurare l'SDK Vertex AI
Per configurare l'SDK Vertex AI, consulta la sezione Configurazione.
Creare un indice della Ricerca Vector Search
Per creare un indice Vector Search compatibile con il corpus RAG, l'indice deve soddisfare i seguenti criteri:
IndexUpdateMethoddeve essereSTREAM_UPDATE, vedi Creare un indice di stream.Il tipo di misura della distanza deve essere impostato in modo esplicito su uno dei seguenti valori:
DOT_PRODUCT_DISTANCECOSINE_DISTANCE
La dimensione del vettore deve essere coerente con il modello di embedding che intendi utilizzare nel corpus RAG. Gli altri parametri possono essere ottimizzati in base alle tue scelte, che determinano se i parametri aggiuntivi possono essere ottimizzati.
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 la Python documentazione di riferimento dell'API.
Creare un endpoint di indice Vector Search
Gli endpoint pubblici sono supportati da RAG Engine.
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 la Python documentazione di riferimento dell'API.
Eseguire il deployment di un indice su un endpoint di indice
Prima di eseguire la ricerca dei vicini più prossimi, l'indice deve essere sottoposto a deployment su un endpoint di indice.
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 la Python documentazione di riferimento dell'API.
Se è la prima volta che esegui il deployment di un indice su un endpoint di indice, la creazione e l'inizializzazione automatica del backend richiedono circa 30 minuti prima che l'indice possa essere archiviato. Dopo il primo deployment, l'indice è pronto in pochi secondi. Per visualizzare lo stato del deployment dell'indice, apri la console Vector Search, seleziona la scheda Endpoint di indice e scegli l'endpoint di indice.
Identifica il nome della risorsa dell'indice e dell'endpoint di indice, che hanno i seguenti formati:
projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexes/${INDEX_ID}projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexEndpoints/${INDEX_ENDPOINT_ID}.
Utilizzare Vector Search di Agent Platform in RAG Engine
Dopo aver configurato l'istanza Vector Search, segui i passaggi descritti in questa sezione per impostare l'istanza Vector Search come database vettoriale per l'applicazione RAG.
Impostare il database vettoriale per creare un corpus RAG
Quando crei il corpus RAG, specifica solo INDEX_ENDPOINT_NAME e INDEX_NAME completi. Assicurati di utilizzare l'ID numerico per i nomi delle risorse dell'indice e dell'endpoint di indice. Il corpus RAG viene creato e associato automaticamente all'indice Vector Search. Vengono eseguite le convalide sui
criteri. Se uno dei requisiti non viene soddisfatto, la richiesta viene rifiutata.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python nella guida rapida di Agent Platform per l'utilizzo delle librerie client.
Per eseguire l'autenticazione in Agent Platform, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
REST
# TODO(developer): Update and un-comment the following lines:
# CORPUS_DISPLAY_NAME = "YOUR_CORPUS_DISPLAY_NAME"
# Full index/indexEndpoint resource name
# Index: projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexes/${INDEX_ID}
# IndexEndpoint: projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexEndpoints/${INDEX_ENDPOINT_ID}
# INDEX_RESOURCE_NAME = "YOUR_INDEX_ENDPOINT_RESOURCE_NAME"
# INDEX_NAME = "YOUR_INDEX_RESOURCE_NAME"
# Call CreateRagCorpus API to create a new RagCorpus
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://${LOCATION_ID}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/ragCorpora -d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_vector_db_config" : {
"vertex_vector_search": {
"index":'\""${INDEX_NAME}"\"'
"index_endpoint":'\""${INDEX_ENDPOINT_NAME}"\"'
}
}
}'
# Call ListRagCorpora API to verify the RagCorpus is created successfully
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://${LOCATION_ID}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/ragCorpora"
Importare file utilizzando l'API RAG
Utilizza il ragFiles.import API
metodo
per importare file da Cloud Storage o Google Drive nell'
indice Vector Search. I file vengono incorporati e archiviati nell'indice Vector Search.
REST
# TODO(developer): Update and uncomment the following lines:
# RAG_CORPUS_ID = "your-rag-corpus-id"
#
# Cloud de Confiance by S3NS Storage bucket/file location.
# For example, "gs://rag-fos-test/"
# GCS_URIS= "your-gcs-uris"
# Call ImportRagFiles API to embed files and store in the BigQuery table
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_NUMBER}/locations/us-central1/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
"import_rag_files_config": {
"gcs_source": {
"uris": '\""${GCS_URIS}"\"'
},
"rag_file_chunking_config": {
"chunk_size": 512
}
}
}'
# Call ListRagFiles API to verify the files are imported successfully
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/us-central1/ragCorpora/${RAG_CORPUS_ID}/ragFiles
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 la Python documentazione di riferimento dell'API.
Recuperare i contesti pertinenti utilizzando l'API RAG
Una volta completate le importazioni dei file, il contesto pertinente può essere recuperato dall'indice Vector Search utilizzando l'API RetrieveContexts.
REST
# TODO(developer): Update and uncomment the following lines:
# RETRIEVAL_QUERY="your-retrieval-query"
#
# Full RAG corpus resource name
# Format:
# "projects/${PROJECT_NUMBER}/locations/us-central1/ragCorpora/${RAG_CORPUS_ID}"
# RAG_CORPUS_RESOURCE="your-rag-corpus-resource"
# Call RetrieveContexts API to retrieve relevant contexts
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/us-central1:retrieveContexts \
-d '{
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": '\""${RAG_CORPUS_RESOURCE}"\"',
},
},
"query": {
"text": '\""${RETRIEVAL_QUERY}"\"',
"similarity_top_k": 10
}
}'
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 la Python documentazione di riferimento dell'API.
Generare contenuti utilizzando l'API Gemini di Agent Platform
Per generare contenuti utilizzando i modelli Gemini, effettua una chiamata all'API GenerateContent di Agent Platform. Se specifichi RAG_CORPUS_RESOURCE nella richiesta, l'API recupera automaticamente i dati dall'indice Vector Search.
REST
# TODO(developer): Update and uncomment the following lines:
# MODEL_ID=gemini-2.5-flash
# GENERATE_CONTENT_PROMPT="your-generate-content-prompt"
# GenerateContent with contexts retrieved from the FeatureStoreOnline index
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_NUMBER}/locations/us-central1/publishers/google/models/${MODEL_ID}:generateContent \
-d '{
"contents": {
"role": "user",
"parts": {
"text": '\""${GENERATE_CONTENT_PROMPT}"\"'
}
},
"tools": {
"retrieval": {
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": '\""${RAG_CORPUS_RESOURCE}"\"',
},
"similarity_top_k": 8,
"vector_distance_threshold": 0.32
}
}
}
}'
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 la Python documentazione di riferimento dell'API.