En esta página, se muestra cómo conectar tu motor de RAG a Vector Search de Gemini Enterprise Agent Platform.
También puedes seguir el notebook de RAG Engine con Agent Platform Vector Search.
Configuración de la búsqueda de vectores de Agent Platform
La búsqueda de vectores de Agent Platform se basa en la tecnología de Vector Search desarrollada por Google Research. Con Vector Search, puedes usar la misma infraestructura que proporciona una base para los productos de Google, como la Búsqueda de Google, YouTube y Google Play.
Para integrarse con RAG Engine, se requiere un índice de Vector Search vacío.
Configura el SDK de Vertex AI
Para configurar el SDK de Vertex AI, consulta Configuración.
Crea un índice de Vector Search
Para crear un índice de Vector Search que sea compatible con tu corpus de RAG, el índice debe cumplir con los siguientes criterios:
IndexUpdateMethoddebe serSTREAM_UPDATE. Consulta Crea un índice de transmisión.El tipo de medición de distancia se debe establecer de forma explícita en uno de los siguientes valores:
DOT_PRODUCT_DISTANCECOSINE_DISTANCE
La dimensión del vector debe ser coherente con el modelo de incorporación que planeas usar en el corpus de RAG. Otros parámetros se pueden ajustar según tus elecciones, que determinan si se pueden ajustar los parámetros adicionales.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API de Python.
Crea un extremo de índice de Vector Search
RAG Engine admite extremos públicos.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API de Python.
Implementa un índice en un extremo de índice
Antes de realizar la búsqueda de vecinos más cercanos, el índice debe implementarse en un extremo de índice.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API de Python.
Si es la primera vez que implementas un índice en un extremo de índice, se tarda alrededor de 30 minutos en compilar e iniciar el backend de forma automática antes de que se pueda almacenar el índice. Después de la primera implementación, el índice estará listo en segundos. Para ver el estado de la implementación del índice, abre la consola de Vector Search, selecciona la pestaña Extremos de índice y elige tu extremo de índice.
Identifica el nombre del recurso de tu índice y el extremo del índice, que tienen los siguientes formatos:
projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexes/${INDEX_ID}projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexEndpoints/${INDEX_ENDPOINT_ID}
Usa la búsqueda de vectores de Agent Platform en RAG Engine
Después de configurar la instancia de Vector Search, sigue los pasos de esta sección para establecer la instancia de Vector Search como la base de datos de vectores para la aplicación de RAG.
Establece la base de datos de vectores para crear un corpus de RAG
Cuando crees el corpus de RAG, especifica solo el INDEX_ENDPOINT_NAME y el INDEX_NAME completos. Asegúrate de usar el ID numérico para los nombres de recursos del índice y del extremo de índice. El corpus de RAG se crea y se asocia automáticamente con el
índice de Vector Search. Las validaciones se realizan en los
criterios. Si no se cumple alguno de los requisitos,
se rechaza la solicitud.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de Agent Platform sobre cómo usar bibliotecas cliente.
Para autenticarte en Agent Platform, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
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 archivos con la API de RAG
Usa el método de la API de ragFiles.import para importar archivos de Cloud Storage o Google Drive al índice de Vector Search. Los archivos se incorporan y almacenan en el
índice de 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
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API de Python.
Cómo recuperar contextos relevantes con la API de RAG
Una vez que se completen las importaciones de archivos, se puede recuperar el contexto relevante del
índice de Vector Search con la API de 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
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API de Python.
Genera contenido con la API de Gemini de Agent Platform
Para generar contenido con los modelos de Gemini, realiza una llamada a la
API de GenerateContent de Agent Platform. Cuando especificas el
RAG_CORPUS_RESOURCE en la solicitud, la API recupera automáticamente los datos del
índice de 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
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API de Python.