Nesta página, mostramos como conectar seu mecanismo de RAG da Vertex AI à Pesquisa de vetor da Vertex AI.
Você também pode acompanhar usando o notebook Mecanismo de RAG da Vertex AI com o Vector Search da Vertex AI.
Configuração da pesquisa vetorial da Vertex AI
A pesquisa vetorial da Vertex AI é baseada na tecnologia de pesquisa vetorial desenvolvida pela pesquisa do Google. Com a Pesquisa de vetor, é possível usar a mesma infraestrutura que fornece uma base para os produtos do Google, como Pesquisa Google, YouTube e Google Play.
Para integrar com o mecanismo RAG da Vertex AI, é necessário um índice de pesquisa vetorial 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 vetorial compatível com seu corpus de RAG, ele precisa atender aos seguintes critérios:
IndexUpdateMethod
precisa serSTREAM_UPDATE
. Consulte Criar índice de stream.O tipo de medida de distância precisa ser definido explicitamente como um dos seguintes:
DOT_PRODUCT_DISTANCE
COSINE_DISTANCE
A dimensão do vetor precisa ser consistente com o modelo de embedding que você planeja usar no corpus de 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 documentação de referência da API Python.
Criar um endpoint de índice da Pesquisa de vetor
Os endpoints públicos são compatíveis com o mecanismo de RAG da Vertex AI.
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 documentação de referência da API Python.
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 documentação de referência da API Python.
Se for a primeira vez que você implanta um índice em um endpoint de índice, leva cerca de 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 seu endpoint de índice.
Identifique o nome do recurso do índice e do 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 pesquisa vetorial da Vertex AI no mecanismo de RAG da Vertex AI
Depois que a instância do Vector Search for configurada, siga as etapas desta seção para definir a instância do Vector Search como o banco de dados de vetores do aplicativo RAG.
Definir o banco de dados de vetores para criar um corpus RAG
Ao criar o corpus de 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 de 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 atendido,
a solicitação será rejeitada.
Python
Antes de testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar 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"
Importar arquivos usando a API RAG
Use a API ImportRagFiles
para importar
arquivos do Cloud Storage ou
do Google Drive para o índice da pesquisa vetorial. 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"
#
# 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 o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Recuperar contextos relevantes usando a API RAG
Depois que as importações de arquivos forem concluídas, o contexto relevante poderá ser recuperado do
índice da Pesquisa vetorial 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 documentação de referência da API Python.
Gerar conteúdo usando a API Gemini da Vertex AI
Para gerar conteúdo usando modelos do Gemini, faça uma chamada para a
API GenerateContent
da Vertex AI. Ao especificar o
RAG_CORPUS_RESOURCE
na solicitação, a API recupera automaticamente os dados do
índice da 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 o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.