Esta página mostra como conectar o mecanismo RAG à Gemini Enterprise Agent Platform Busca vetorial.
Você também pode acompanhar usando o notebook RAG Engine with Agent Platform Vector Search.
Configuração da busca vetorial da Agent Platform
A Pesquisa de vetor da Agent Platform é baseada na tecnologia de pesquisa vetorial desenvolvida pela pesquisa do Google. Com a busca vetorial, é possível usar a mesma infraestrutura que fornece uma base para os produtos do Google, como Pesquisa Google, YouTube e Google Play.
Para integrar ao mecanismo RAG, é necessário um índice de Pesquisa de vetor vazio.
Configurar o SDK da Vertex AI
Para configurar o SDK da Vertex AI, consulte Configuração.
Criar um índice de Pesquisa de vetor
Para criar um índice de Pesquisa de vetor compatível com o corpus RAG, ele precisa atender aos seguintes critérios:
IndexUpdateMethodprecisa serSTREAM_UPDATE. Consulte Criar um índice de stream.O tipo de medida de distância precisa ser definido explicitamente como um dos seguintes:
DOT_PRODUCT_DISTANCECOSINE_DISTANCE
A dimensão do vetor precisa ser consistente com o modelo de embedding que você planeja usar no corpus RAG. Outros parâmetros podem ser ajustados com base nas suas escolhas, que determinam se os parâmetros adicionais podem ser ajustados.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Criar um endpoint de índice de Pesquisa de vetor
Os endpoints públicos são compatíveis com o mecanismo RAG.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Implantar um índice em um endpoint de índice
Antes de fazer a pesquisa de vizinho mais próximo, o índice precisa ser implantado em um endpoint de índice.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Se for a primeira vez que você implanta um índice em um endpoint de índice, levará aproximadamente 30 minutos para criar e iniciar automaticamente o back-end antes que o índice possa ser armazenado. Após a primeira implantação, o índice fica pronto em segundos. Para conferir o status da implantação do índice, abra o Console da Pesquisa de vetor, selecione a guia Endpoints de índice e escolha o endpoint de índice.
Identifique o nome do recurso do índice e o endpoint de índice, que têm os seguintes formatos:
projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexes/${INDEX_ID}projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexEndpoints/${INDEX_ENDPOINT_ID}.
Usar a busca vetorial da Agent Platform no mecanismo RAG
Depois que a instância da Busca vetorial for configurada, siga as etapas desta seção para definir a instância da Busca vetorial como o banco de dados vetorial do aplicativo RAG.
Definir o banco de dados vetorial para criar um corpus RAG
Ao criar o corpus RAG, especifique apenas o INDEX_ENDPOINT_NAME e o INDEX_NAME completos. Use o ID numérico para os nomes de recursos do índice e do endpoint de índice. O corpus RAG é criado e associado automaticamente ao índice da Pesquisa de vetor. As validações são realizadas nos
critérios. Se algum dos requisitos não for atendido, a solicitação será rejeitada.
Python
Antes de testar esta amostra, siga as instruções de configuração Python no Guia de início rápido da Agent Platform: como usar bibliotecas de cliente.
Para autenticar na Agent Platform, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como 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"
Importar arquivos usando a API RAG
Use o método de API ragFiles.import
para importar arquivos do Cloud Storage ou do Google Drive para o
índice da Pesquisa de vetor. Os arquivos são incorporados e armazenados no índice da Pesquisa de vetor.
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
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Recuperar contextos relevantes usando a API RAG
Após a conclusão das importações de arquivos, o contexto relevante pode ser recuperado do índice da Pesquisa de vetor usando a 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
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Gerar conteúdo usando a API Gemini da Agent Platform
Para gerar conteúdo usando modelos do Gemini, faça uma chamada para a API GenerateContent da Agent Platform. Ao especificar o RAG_CORPUS_RESOURCE na solicitação, a API recupera automaticamente dados do índice da Pesquisa de vetor.
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
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.