Esta página mostra como associar o seu motor RAG do Vertex AI à Vertex AI Vector Search.
Também pode seguir as instruções através do bloco de notas Vertex AI RAG Engine com a Vertex AI Vector Search.
Configuração do Vertex AI Vector Search
O Vertex AI Vector Search baseia-se na tecnologia de pesquisa vetorial desenvolvida pela Google Research. Com a pesquisa vetorial, pode usar a mesma infraestrutura que fornece uma base para produtos Google, como a Pesquisa Google, o YouTube e o Google Play.
Para fazer a integração com o motor RAG do Vertex AI, é necessário um índice do Vector Search vazio.
Configure o SDK Vertex AI
Para configurar o SDK Vertex AI, consulte o artigo Configuração.
Crie um índice do Vector Search
Para criar um índice de pesquisa vetorial compatível com o seu corpus de RAG, o índice tem de cumprir os seguintes critérios:
IndexUpdateMethod
tem de serSTREAM_UPDATE
. Consulte o artigo Crie um índice de streams.O tipo de medida de distância tem de ser definido explicitamente como um dos seguintes:
DOT_PRODUCT_DISTANCE
COSINE_DISTANCE
A dimensão do vetor tem de ser consistente com o modelo de incorporação que planeia 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 ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Crie um ponto final do índice do Vector Search
Os pontos finais públicos são suportados pelo Vertex AI RAG Engine.
Python
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Implemente um índice num ponto final do índice
Antes de fazermos a pesquisa de vizinho mais próximo, o índice tem de ser implementado num ponto final do índice.
Python
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Se estiver a implementar um índice num ponto final de índice pela primeira vez, a criação e o início automáticos do back-end demoram aproximadamente 30 minutos antes de o índice poder ser armazenado. Após a primeira implementação, o índice fica pronto em segundos. Para ver o estado da implementação do índice, abra a Vector Search Console, selecione o separador Index endpoints e escolha o seu ponto final do índice.
Identifique o nome do recurso do índice e o ponto final do í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}
.
Use a pesquisa vetorial da Vertex AI no motor RAG da Vertex AI
Depois de configurar a instância de pesquisa vetorial, siga os passos nesta secção para definir a instância de pesquisa vetorial como a base de dados vetorial para a aplicação RAG.
Defina a base de dados vetorial para criar um corpus RAG
Quando criar o corpus de RAG, especifique apenas o INDEX_ENDPOINT_NAME
completo e o INDEX_NAME
. Certifique-se de que usa o ID numérico para os nomes de recursos do índice e do ponto final do índice. O corpus RAG é criado e associado automaticamente ao índice de pesquisa vetorial. As validações são realizadas nos critérios. Se algum dos requisitos não for cumprido,
o pedido é rejeitado.
Python
Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento 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"
Importe ficheiros através da API RAG
Use a API ImportRagFiles
para importar ficheiros do Cloud Storage ou do Google Drive para o índice de pesquisa vetorial. Os ficheiros são incorporados e
armazenados no índice do 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
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Obtenha contextos relevantes através da API RAG
Após a conclusão das importações de ficheiros, o contexto relevante pode ser obtido a partir do índice de pesquisa vetorial através da 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 ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Gere conteúdo com a API Gemini do Vertex AI
Para gerar conteúdo com modelos Gemini, faça uma chamada à API GenerateContent
do Vertex AI. Ao especificar o
RAG_CORPUS_RESOURCE
no pedido, a API obtém automaticamente dados do índice de pesquisa vetorial.
REST
# TODO(developer): Update and uncomment the following lines:
# MODEL_ID=gemini-2.0-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 ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.