Questa pagina mostra come connettere il motore RAG a Vector Search di Gemini Enterprise Agent Platform.
Puoi anche seguire la procedura utilizzando il notebook RAG Engine con Agent Platform Vector Search.
Configurazione di Agent Platform Vector Search
Agent Platform Vector Search 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.
Configura l'SDK Vertex AI
Per configurare l'SDK Vertex AI, consulta Configurazione.
Crea indice Vector Search
Per creare un indice Vector Search compatibile con il tuo corpus RAG, l'indice deve soddisfare i seguenti criteri:
IndexUpdateMethoddeve essereSTREAM_UPDATE, consulta Crea indice di flusso.Il tipo di misurazione della distanza deve essere impostato esplicitamente su uno dei seguenti valori:
DOT_PRODUCT_DISTANCECOSINE_DISTANCE
La dimensione del vettore deve essere coerente con il modello di embedding che prevedi di utilizzare nel corpus RAG. 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 Python, consulta Installa l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Crea un endpoint indice Vector Search
Gli endpoint pubblici sono supportati dal motore RAG.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installa l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Esegui il deployment di un indice su un endpoint indice
Prima di eseguire la ricerca del vicino più prossimo, è necessario eseguire il deployment dell'indice in un endpoint indice.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installa l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Se è la prima volta che esegui il deployment di un indice in un endpoint indice, la creazione e l'avvio automatico 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 di Vector Search, seleziona la scheda Endpoint indice e scegli l'endpoint indice.
Identifica il nome della risorsa dell'indice e dell'endpoint 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}.
Utilizza Agent Platform Vector Search in RAG Engine
Dopo aver configurato l'istanza di Vector Search, segui i passaggi descritti in questa sezione per impostarla come database vettoriale per l'applicazione RAG.
Imposta il database vettoriale per creare un corpus RAG
Quando crei il corpus RAG, specifica solo i valori completi di INDEX_ENDPOINT_NAME e
INDEX_NAME. Assicurati di utilizzare l'ID numerico per i nomi delle risorse sia dell'indice che dell'endpoint indice. Il corpus RAG viene creato e associato automaticamente all'indice Vector Search. Le convalide vengono eseguite in base ai criteri. Se uno dei requisiti non viene soddisfatto, la richiesta viene rifiutata.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di 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 Configura l'autenticazione per un ambiente di sviluppo locale.
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"
Importa file utilizzando l'API RAG
Utilizza il metodo API ragFiles.import per importare i file da Cloud Storage o Google Drive nell'indice di Vector Search. I file vengono incorporati e archiviati nell'indice di Vector Search.
REST
# TODO(developer): Update and uncomment the following lines:
# RAG_CORPUS_ID = "your-rag-corpus-id"
#
# Google Cloud 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 Python, consulta Installa l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Recupera i contesti pertinenti utilizzando l'API RAG
Al termine dell'importazione dei file, il contesto pertinente può essere recuperato dall'indice di 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 Python, consulta Installa l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Genera contenuti utilizzando l'API Gemini di Agent Platform
Per generare contenuti utilizzando i modelli Gemini, effettua una chiamata all'API GenerateContent di Agent Platform. Specificando 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 Python, consulta Installa l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.