Esta página mostra como conectar o corpus do RAG Engine ao banco de dados do Weaviate.
Você também pode acompanhar este notebook RAG Engine com Weaviate.
É possível usar a instância do banco de dados do Weaviate, que é um banco de dados de código aberto, com o mecanismo RAG para indexar e realizar uma pesquisa de similaridade baseada em vetores. Uma pesquisa de similaridade é uma maneira de encontrar partes de texto semelhantes ao texto que você está procurando, o que exige o uso de um modelo de embedding. O modelo de embedding produz dados vetoriais para cada parte do texto que está sendo comparado. A pesquisa de similaridade é usada para extrair contextos semânticos para agrupamento e retornar o conteúdo mais preciso do seu LLM.
Com o RAG Engine, você pode continuar usando a instância de banco de dados de vetor totalmente gerenciada, que é sua responsabilidade provisionar. O RAG Engine usa o banco de dados de vetores para armazenamento, gerenciamento de índices e pesquisa.
Considerações
Siga estas etapas antes de usar o banco de dados do Weaviate:
- Você precisa criar, configurar e implantar a instância e a coleção do banco de dados do Weaviate. Siga as instruções em Criar sua coleção do Weaviate para configurar uma coleção com base no seu esquema.
- É necessário fornecer uma chave de API do Weaviate, que permite que o RAG Engine interaja
com o banco de dados do Weaviate. O RAG Engine oferece suporte a
AuthN
eAuthZ
com base na chave da API, que se conecta ao seu banco de dados do Weaviate e oferece suporte a uma conexão HTTPS. - O RAG Engine não armazena nem gerencia sua chave de API do Weaviate. Em vez disso, faça o seguinte:
- Armazene sua chave no Secret Manager do Google Cloud.
- Conceda permissões à conta de serviço do projeto para acessar o secret.
- Forneça ao RAG Engine acesso ao nome do recurso do secret.
- Quando você interage com o banco de dados do Weaviate, o RAG Engine acessa seu recurso secreto usando sua conta de serviço.
- O corpus do RAG Engine e a coleção do Weaviate têm um mapeamento um a um. Os arquivos RAG são armazenados em uma coleção de banco de dados do Weaviate. Quando uma chamada é
feita para a API
CreateRagCorpus
ouUpdateRagCorpus
, o corpus RAG é associado à coleção do banco de dados. - Além das pesquisas semânticas densas baseadas em embeddings, a pesquisa híbrida também é aceita pelo RAG Engine em um banco de dados do Weaviate. Também é possível ajustar o peso entre a similaridade de vetores densos e esparsos em uma pesquisa híbrida.
Provisionar o banco de dados do Weaviate
Antes de usar o banco de dados do Weaviate com o RAG Engine, faça o seguinte:
- Configure e implante sua instância do banco de dados do Weaviate.
- Prepare o endpoint HTTPS.
- Crie sua coleção do Weaviate.
- Use sua chave de API para provisionar o Weaviate usando
AuthN
eAuthZ
. - Provisione a conta de serviço do RAG Engine.
Configurar e implantar a instância do banco de dados do Weaviate
Siga o guia de início rápido oficial do Weaviate. No entanto, você pode usar o guia do Google Cloud Marketplace, que é opcional.
É possível configurar a instância do Weaviate em qualquer lugar, desde que o endpoint do Weaviate seja acessível para configuração e implantação no projeto. Depois, você pode gerenciar totalmente a instância do banco de dados do Weaviate.
Como o RAG Engine não está envolvido em nenhuma etapa do ciclo de vida da instância do banco de dados do Weaviate, é sua responsabilidade conceder permissões ao RAG Engine para que ele possa armazenar e pesquisar dados no banco de dados do Weaviate. Também é sua responsabilidade garantir que os dados no seu banco de dados possam ser usados pelo RAG Engine. Por exemplo, se você mudar seus dados, o RAG Engine não será responsável por comportamentos inesperados devido a essas mudanças.
Preparar o endpoint HTTPS
Durante o provisionamento do Weaviate, crie um endpoint HTTPS. Embora as conexões HTTP sejam compatíveis, preferimos que o RAG Engine e o tráfego do banco de dados do Weaviate usem uma conexão HTTPS.
Criar sua coleção do Weaviate
Como o corpus do RAG Engine e a coleção do Weaviate têm um mapeamento um a um, é necessário criar uma coleção no banco de dados do Weaviate antes de associá-la ao corpus do RAG Engine. Essa associação única
é feita quando você chama a API CreateRagCorpus
ou a
UpdateRagCorpus
.
Ao criar uma coleção no Weaviate, use o seguinte esquema:
Nome da propriedade | Tipo de dado |
---|---|
fileId |
text |
corpusId |
text |
chunkId |
text |
chunkDataType |
text |
chunkData |
text |
fileOriginalUri |
text |
Use sua chave de API para provisionar o Weaviate usando AuthN
e AuthZ
O provisionamento da chave da API Weaviate envolve as seguintes etapas:
- Crie a chave da API Weaviate.
- Configure o Weaviate usando sua chave de API.
- Armazene sua chave de API do Weaviate no Secret Manager.
Criar a chave de API
O RAG Engine só pode se conectar às instâncias do banco de dados do Weaviate usando sua chave de API para autenticação e autorização. Siga o guia oficial de autenticação do Weaviate para configurar a autenticação baseada em chave de API na sua instância de banco de dados do Weaviate.
Se a criação da chave de API do Weaviate exigir informações de identidade para se associar às informações do RAG Engine, crie seu primeiro corpus e use sua conta de serviço do RAG Engine como uma identidade.
Armazenar a chave de API no Secret Manager
Uma chave de API contém informações sensíveis de identificação pessoal (SPII, na sigla em inglês), que estão sujeitas a requisitos legais. Se os dados do SPII forem comprometidos ou usados indevidamente, um indivíduo poderá sofrer um risco ou dano significativo. Para minimizar os riscos a um indivíduo ao usar o RAG Engine, não armazene e gerencie sua chave de API e evite compartilhar a chave de API não criptografada.
Para proteger o SPII, faça o seguinte:
- Armazene a chave de API no Secret Manager.
- Conceda à sua conta de serviço do RAG Engine as permissões para os segredos
e gerencie o controle de acesso no nível do recurso secreto.
- Navegue até as permissões do projeto.
- Ative a opção Incluir concessões de papel fornecidas pelo Google.
- Encontre a conta de serviço, que tem o formato
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
- Edite os principais da conta de serviço.
- Adicione o papel de Acessador de secrets do Secret Manager à conta de serviço.
- Durante a criação ou atualização do corpus do RAG, transmita o nome do recurso secreto para o RAG Engine e armazene o nome do recurso secreto.
Quando você faz solicitações de API para as instâncias do banco de dados do Weaviate, o RAG Engine usa cada conta de serviço para ler a chave de API correspondente aos recursos secretos no Secret Manager dos seus projetos.
Provisionar a conta de serviço do RAG Engine
Quando você cria o primeiro recurso no projeto, o RAG Engine cria uma conta de serviço dedicada. É possível encontrar sua conta de serviço na página do IAM do projeto. A conta de serviço segue este formato:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
Por exemplo, service-123456789@gcp-sa-vertex-rag.iam.gserviceaccount.com
Ao integrar com o banco de dados do Weaviate, sua conta de serviço é usada nos seguintes cenários:
- Você pode usar sua conta de serviço para gerar a chave da API Weaviate para autenticação. Em alguns casos, a geração da chave de API não exige nenhuma informação do usuário, o que significa que uma conta de serviço não é necessária ao gerar a chave de API.
- É possível vincular sua conta de serviço à chave de API no banco de dados do Weaviate
para configurar a autenticação (
AuthN
) e a autorização (AuthZ
). No entanto, a conta de serviço não é obrigatória. - É possível armazenar a chave de API do Secret Manager no projeto e conceder permissões da conta de serviço a esses recursos secretos.
- O RAG Engine usa contas de serviço para acessar a chave de API do Secret Manager nos seus projetos.
Configurar o ambiente do console do Google Cloud
Clique para aprender a configurar seu ambiente
Saiba como configurar seu ambiente selecionando uma das guias a seguir:
Python
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Instale ou atualize o SDK da Vertex AI para Python executando o seguinte comando:
pip3 install --upgrade "google-cloud-aiplatform>=1.38"
Node.js
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Instalar ou atualizar o SDK da Vertex AI para Node.js executando o seguinte comando:
npm install @google-cloud/vertexai
Java
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
Para adicionar
google-cloud-vertexai
como uma dependência, adicione o código apropriado para seu ambiente:Maven com BoM
Adicione o seguinte HTML a seu
pom.xml
:<dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>libraries-bom</artifactId> <version>26.32.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-vertexai</artifactId> </dependency> </dependencies>
Maven sem BOM
Adicione o seguinte HTML a seu
pom.xml
:<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-vertexai</artifactId> <version>0.4.0</version> </dependency>
Gradle without BOM
Add the following to your
build.gradle
implementation 'com.google.cloud:google-cloud-vertexai:0.4.0'
Go
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Analise os pacotes disponíveis da API Vertex AI para Go para determinar qual deles atende melhor às necessidades do seu projeto:
Pacote cloud.google.com/go/vertexai (recomendado)
vertexai
é um pacote criado por humanos que fornece acesso a recursos e capabilities comuns.Esse pacote é recomendado como ponto de partida para a maioria dos desenvolvedores que criam usando a API Vertex AI. Para acessar recursos e capabilities ainda não cobertos por esse pacote, use o
aiplatform
gerado automaticamente.Pacote cloud.google.com/go/aiplatform
aiplatform
é um pacote gerado automaticamente.Esse pacote é destinado a projetos que exigem acesso a recursos e capabilities da API Vertex AI ainda não fornecidos pelo pacote
vertexai
criado por humanos.
Instale o pacote Go desejado com base nas necessidades do seu projeto executando um dos seguintes comandos:
# Human authored package. Recommended for most developers. go get cloud.google.com/go/vertexai
# Auto-generated package. go get cloud.google.com/go/aiplatform
C#
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
REST
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- Insira o comando abaixo para configurar as variáveis de ambiente. Substitua
PROJECT_ID
pelo ID do seu projeto do Google Cloud.MODEL_ID="gemini-1.5-flash-002" PROJECT_ID="PROJECT_ID"
- Provisione o endpoint:
gcloud beta services identity create --service=aiplatform.googleapis.com --project=${PROJECT_ID}
-
Opcional: se você estiver usando o Cloud Shell e for solicitado a autorizá-lo, clique em Autorizar.
Preparar o corpus RAG
Para acessar dados do seu banco de dados do Weaviate, o RAG Engine precisa ter acesso a um corpus de RAG. Esta seção mostra as etapas para criar um único corpus RAG e outros corpora RAG.
Usar as APIs CreateRagCorpus
e UpdateRagCorpus
É necessário especificar os seguintes campos ao chamar as APIs CreateRagCorpus
e
UpdateRagCorpus
:
rag_vector_db_config.weaviate
: depois de chamar a APICreateRagCorpus
, a configuração do banco de dados de vetor é escolhida. A configuração do banco de dados de vetores contém todos os campos de configuração. Se o camporag_vector_db_config.weaviate
não estiver definido,rag_vector_db_config.rag_managed_db
será definido por padrão.weaviate.http_endpoint
: o endpoint HTTPS ou HTTP do Weaviate é criado durante o provisionamento da instância do banco de dados do Weaviate.weaviate.collection_name
: o nome da coleção criada durante o provisionamento da instância do Weaviate. O nome precisa começar com uma letra maiúscula.api_auth.api_key_config
: a configuração especifica o uso de uma chave de API para autorizar seu acesso ao banco de dados de vetores.api_key_config.api_key_secret_version
: o nome do recurso do secret armazenado no Secret Manager, que contém a chave da API Weaviate.
Você pode criar e associar seu corpus RAG à coleção do Weaviate na sua instância de banco de dados. No entanto, talvez você precise da conta de serviço para gerar a chave da API e configurar a instância do banco de dados do Weaviate. Quando você cria seu primeiro corpus de RAG, a conta de serviço é gerada. Depois de criar seu primeiro corpus RAG, a associação entre o banco de dados do Weaviate e a chave de API pode não estar pronta para uso na criação de outro corpus RAG.
Caso o banco de dados e a chave não estejam prontos para serem associados ao corpus RAG, faça o seguinte:
Defina o campo
weaviate
emrag_vector_db_config
.- Não é possível mudar o banco de dados de vetor associado.
- Deixe os campos
http_endpoint
ecollection_name
vazios. Ambos os campos podem ser atualizados mais tarde.
Se você não tiver a chave de API armazenada no Secret Manager, deixe o campo
api_auth
vazio. Ao chamar a APIUpdateRagCorpus
, é possível atualizar o campoapi_auth
. O Weaviate exige que o seguinte seja feito:- Defina o
api_key_config
no campoapi_auth
. Defina o
api_key_secret_version
da chave de API do Weaviate no Secret Manager. O campoapi_key_secret_version
usa o seguinte formato:projects/{project}/secrets/{secret}/versions/{version}
- Defina o
Se você especificar campos que só podem ser definidos uma vez, como
http_endpoint
oucollection_name
, não será possível fazer alterações, a menos que você exclua e crie o corpus RAG novamente. Outros campos, como o da chave de API,api_key_secret_version
, podem ser atualizados.Ao chamar
UpdateRagCorpus
, você pode definir o campovector_db
. Ovector_db
precisa ser definido comoweaviate
pela chamada de APICreateRagCorpus
. Caso contrário, o sistema escolhe a opção RAG Managed Database, que é o padrão. Essa opção não pode ser alterada quando você chama a APIUpdateRagCorpus
. Quando você chamaUpdateRagCorpus
e o campovector_db
está parcialmente definido, é possível atualizar os campos marcados como Mutáveis (também chamados de mutáveis).
Esta tabela lista os campos mutáveis e imutáveis WeaviateConfig
usados
no código.
Nome do campo | Mutável ou imutável |
---|---|
http_endpoint |
Imutável depois de definido |
collection_name |
Imutável depois de definido |
api_key_authentication |
Mutável |
Criar o primeiro corpus RAG
Quando a conta de serviço do RAG Engine não existir, faça o seguinte:
- Crie um corpus RAG no RAG Engine com uma configuração vazia do Weaviate, que inicia o provisionamento do RAG Engine para criar uma conta de serviço.
- Escolha um nome para sua conta de serviço do RAG Engine que siga este
formato:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
Por exemplo,
service-123456789@gcp-sa-vertex-rag.iam.gserviceaccount.com
- Usando sua conta de serviço, acesse o secret armazenado no Secret Manager do projeto, que contém a chave de API do Weaviate.
- Receba as seguintes informações após a conclusão do provisionamento do Weaviate:
- Seu endpoint HTTPS ou HTTP do Weaviate.
- O nome da sua coleção do Weaviate.
- Chame a API
CreateRagCorpus
para criar um corpus de RAG com uma configuração vazia do Weaviate e chame a APIUpdateRagCorpus
para atualizar o corpus de RAG com as seguintes informações:- Seu endpoint HTTPS ou HTTP do Weaviate.
- O nome da sua coleção do Weaviate.
- O nome do recurso da chave de API.
Criar outro corpus RAG
Quando a conta de serviço do RAG Engine existir, faça o seguinte:
- Acesse a conta de serviço do RAG Engine nas permissões do projeto.
- Ative a opção "Incluir concessões de papel fornecidas pelo Google".
- Escolha um nome para sua conta de serviço do RAG Engine que siga este
formato:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
- Usando sua conta de serviço, acesse o secret armazenado no Secret Manager do projeto, que contém a chave da API Weaviate.
- Durante o provisionamento do Weaviate, confira as seguintes informações:
- O endpoint HTTPS ou HTTP do Weaviate.
- O nome da sua coleção do Weaviate.
- Crie um corpus RAG no RAG Engine e conecte-se à sua coleção do Weaviate
fazendo uma das seguintes ações:
- Faça uma chamada de API
CreateRagCorpus
para criar um corpus RAG com uma configuração Weaviate preenchida, que é a opção preferencial. - Faça uma chamada de API
CreateRagCorpus
para criar um corpus RAG com uma configuração vazia do Weaviate e faça uma chamada de APIUpdateRagCorpus
para atualizar o corpus RAG com as seguintes informações:- Endpoint HTTP do banco de dados do Weaviate
- Nome da coleção da Weaviate
- Chave de API
- Faça uma chamada de API
Exemplos
Esta seção apresenta um exemplo de código que demonstra como configurar o banco de dados do Weaviate, o Secret Manager, o corpus RAG e o arquivo RAG. Também há um exemplo de código para demonstrar como importar arquivos, recuperar o contexto, gerar conteúdo e excluir o corpus e os arquivos RAG.
Para usar o notebook da API RAG do Model Garden, consulte Usar o Weaviate com o Llama 3.
Configurar o banco de dados do Weaviate
Este exemplo de código demonstra como configurar os dados do Weaviate e o Secret Manager.
REST
# TODO(developer): Update the variables.
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate API Key.
WEAVIATE_API_KEY="example-api-key"
# Select your Weaviate collection name, which roughly corresponds to a Vertex AI Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weavaite will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# Create a collection in Weaviate which includes the required schema fields shown below.
echo '{
"class": "'${WEAVIATE_COLLECTION_NAME}'",
"properties": [
{ "name": "fileId", "dataType": [ "string" ] },
{ "name": "corpusId", "dataType": [ "string" ] },
{ "name": "chunkId", "dataType": [ "string" ] },
{ "name": "chunkDataType", "dataType": [ "string" ] },
{ "name": "chunkData", "dataType": [ "string" ] },
{ "name": "fileOriginalUri", "dataType": [ "string" ] }
]
}' | curl \
-X POST \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer "${WEAVIATE_API_KEY} \
-d @- \
${HTTP_ENDPOINT_NAME}/v1/schema
Configurar o Secret Manager
Para configurar o Secret Manager, você precisa ativá-lo e definir as permissões.
Criar Secret
Para ativar o Secret Manager, faça o seguinte:
Console
Acesse a página Secret Manager.
Clique em Criar secret.
Insira o Nome do secret. Os nomes de secret só podem conter letras em inglês (A-Z), números (0-9), traços (-) e sublinhados (_).
A especificação dos seguintes campos é opcional:
- Para fazer upload do arquivo com seu secret, clique em Procurar.
- Leia a política de replicação.
- Se você quiser gerenciar os locais do secret manualmente, marque a opção Gerenciar locais manualmente para este secret. Pelo menos uma região precisa ser selecionada.
- Selecione a opção de criptografia.
- Se você quiser definir o período de rotação manualmente, marque a opção Definir período de rotação.
- Se você quiser especificar tópicos de publicação ou assinatura para receber notificações de eventos, clique em Adicionar tópicos.
- Por padrão, o secret nunca expira. Se você quiser definir uma data de validade, marque Definir data de validade.
- Por padrão, as versões de segredos são destruídas quando solicitadas. Para atrasar a destruição de versões secretas, marque a opção Definir duração para destruição atrasada.
- Se você quiser usar rótulos para organizar e categorizar seus segredos, clique em + Adicionar rótulo.
- Se você quiser usar anotações para anexar metadados sem identificação aos seus secrets, clique em + Adicionar anotação.
Clique em Criar secret.
REST
# Create a secret in SecretManager.
curl "https://secretmanager.googleapis.com/v1/projects/${PROJECT_ID}/secrets?secretId=${SECRET_NAME}" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"replication\": {\"automatic\": {}}}"
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.
Definir permissões
É necessário conceder permissões do Secret Manager à sua conta de serviço.
Console
Na seção IAM e administrador do console do Google Cloud, encontre sua conta de serviço e clique no ícone de lápis para editar.
No campo Papel, selecione Acessador de secrets do Secret Manager.
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.
Adicionar versão do secret
REST
# TODO(developer): Update the variables.
# Select a resource name for your Secret, which contains your API Key.
SECRET_NAME="MyWeaviateApiKeySecret"
# Your Weaviate API Key.
WEAVIATE_API_KEY="example-api-key"
# Encode your WEAVIATE_API_KEY using base 64.
SECRET_DATA=$(echo ${WEAVIATE_API_KEY} | base64)
# Create a new version of your secret which uses SECRET_DATA as payload
curl "https://secretmanager.googleapis.com/v1/projects/${PROJECT_ID}/secrets/${SECRET_NAME}:addVersion" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"payload\": {\"data\": \"${SECRET_DATA}\"}}"
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.
Usar o Weaviate com o Llama 3
O notebook da API RAG do Model Garden demonstra como usar o SDK da Vertex AI para Python com um corpus do Weaviate e um modelo Llama 3. Para usar o notebook, faça o seguinte:
Para mais exemplos, consulte Exemplos.
Criar um corpus RAG
Este exemplo de código demonstra como criar um corpus RAG e define a instância do Weaviate como o banco de dados de vetores.
REST
# TODO(developer): Update the variables.
PROJECT_ID = "YOUR_PROJECT_ID"
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate collection name, which roughly corresponds to a Vertex AI Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weaviate will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# The resource name of your Weaviate API Key your Secret.
SECRET_NAME="MyWeaviateApiKeySecret"
# The Secret Manager resource name containing the API Key for your Weaviate endpoint.
# For example, projects/{project}/secrets/{secret}/versions/latest
APIKEY_SECRET_VERSION="projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/latest"
# Select a Corpus display name.
CORPUS_DISPLAY_NAME="SpecialCorpus"
# Call CreateRagCorpus API and set all Vector DB Config parameters for Weaviate to create a new corpus associated to your selected Weaviate collection.
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_ID}/locations/us-central1/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_vector_db_config" : {
"weaviate": {
"http_endpoint": '\""${HTTP_ENDPOINT_NAME}"\"',
"collection_name": '\""${WEAVIATE_COLLECTION_NAME}"\"'
},
"api_auth" : {
"api_key_config": {
"api_key_secret_version": '\""${APIKEY_SECRET_VERSION}"\"'
}
}
}
}'
# TODO(developer): Update the variables.
# Get operation_id returned in CreateRagCorpus.
OPERATION_ID="your-operation-id"
# Poll Operation status until done = true in the response.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/operations/${OPERATION_ID}
# Call ListRagCorpora API to verify the RAG corpus is created successfully.
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora"
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.
Usar o arquivo RAG
A API RAG processa o upload, a importação, a listagem e a exclusão de arquivos.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
. - INPUT_FILE: o caminho de um arquivo local.
- FILE_DISPLAY_NAME: o nome de exibição do
RagFile
. - RAG_FILE_DESCRIPTION: a descrição do
RagFile
.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload
Corpo JSON da solicitação:
{ "rag_file": { "display_name": "FILE_DISPLAY_NAME", "description": "RAG_FILE_DESCRIPTION" } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome INPUT_FILE
e execute o comando a seguir:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @INPUT_FILE \
"https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome INPUT_FILE
e execute o comando a seguir:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile INPUT_FILE `
-Uri "https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload" | Select-Object -Expand Content
RagFile
. O último componente do campo RagFile.name
é o rag_file_id
gerado pelo servidor.
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.
Importar arquivos RAG
É possível importar arquivos e pastas do Drive ou do Cloud Storage.
REST
Use response.metadata
para conferir falhas parciais, tempo de solicitação e tempo de resposta
no objeto response
do SDK.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
. - GCS_URIS: uma lista de locais do Cloud Storage. Exemplo:
gs://my-bucket1, gs://my-bucket2
. - DRIVE_RESOURCE_ID: o ID do recurso do Drive. Exemplos:
https://drive.google.com/file/d/ABCDE
https://drive.google.com/corp/drive/u/0/folders/ABCDEFG
- DRIVE_RESOURCE_TYPE: tipo do recurso do Drive. Opções:
RESOURCE_TYPE_FILE
- ArquivoRESOURCE_TYPE_FOLDER
- Pasta- CHUNK_SIZE (opcional): número de tokens que cada bloco precisa ter.
- CHUNK_OVERLAP (opcional): número de tokens sobrepostos entre blocos.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
Corpo JSON da solicitação:
{ "import_rag_files_config": { "gcs_source": { "uris": GCS_URIS }, "google_drive_source": { "resource_ids": { "resource_id": DRIVE_RESOURCE_ID, "resource_type": DRIVE_RESOURCE_TYPE }, } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
ImportRagFilesOperationMetadata
.
O exemplo a seguir demonstra como importar um arquivo do Cloud Storage. Use o campo de controle max_embedding_requests_per_min
para limitar a taxa em que o RAG Engine chama o modelo de embedding durante o
processo de indexação ImportRagFiles
. O campo tem um valor padrão de 1000
chamadas por minuto.
// Cloud Storage bucket/file location.
// Such as "gs://rag-e2e-test/"
GCS_URIS=YOUR_GCS_LOCATION
// Enter the QPM rate to limit RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT
// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID, GCS_URIS
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
"import_rag_files_config": {
"gcs_source": {
"uris": '\""${GCS_URIS}"\"'
},
"rag_file_chunking_config": {
"chunk_size": 512
},
"max_embedding_requests_per_min": '"${EMBEDDING_MODEL_QPM_RATE}"'
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID=OPERATION_ID
poll_op_wait ${OPERATION_ID}
O exemplo a seguir demonstra como importar um arquivo do Drive. Use o campo de controle max_embedding_requests_per_min
para
limitar a taxa em que o RAG Engine chama o modelo de embedding durante o
processo de indexação ImportRagFiles
. O campo tem um valor padrão de 1000
chamadas por minuto.
// Google Drive folder location.
FOLDER_RESOURCE_ID=YOUR_GOOGLE_DRIVE_FOLDER_RESOURCE_ID
// Enter the QPM rate to limit RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT
// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID, FOLDER_RESOURCE_ID
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
"import_rag_files_config": {
"google_drive_source": {
"resource_ids": {
"resource_id": '\""${FOLDER_RESOURCE_ID}"\"',
"resource_type": "RESOURCE_TYPE_FOLDER"
}
},
"max_embedding_requests_per_min": '"${EMBEDDING_MODEL_QPM_RATE}"'
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID=OPERATION_ID
poll_op_wait ${OPERATION_ID}
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.
Acessar um arquivo RAG
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
. - RAG_FILE_ID: o ID do recurso
RagFile
.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
Para enviar a solicitação, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X GET \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
execute o seguinte comando:
$headers = @{ }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
RagFile
.
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.
Listar arquivos RAG
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
. - PAGE_SIZE: tamanho de página de lista padrão. É possível ajustar o número de
RagFiles
a serem retornados por página atualizando o parâmetropage_size
. - PAGE_TOKEN: o token de página de lista padrão. Extraído normalmente usando o
ListRagFilesResponse.next_page_token
da chamadaVertexRagDataService.ListRagFiles
anterior.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN
Para enviar a solicitação, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X GET \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"
PowerShell
execute o seguinte comando:
$headers = @{ }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
RagFiles
no RAG_CORPUS_ID
especificado.
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.
Excluir um arquivo RAG
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
. - RAG_FILE_ID: o ID do recurso
RagFile
. Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}
.
Método HTTP e URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
Para enviar a solicitação, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X DELETE \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
execute o seguinte comando:
$headers = @{ }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
DeleteOperationMetadata
.
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 contexto
Quando um usuário faz uma pergunta ou fornece uma solicitação, o componente de recuperação na RAG pesquisa na base de conhecimento para encontrar informações relevantes para a consulta.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: a região para processar a solicitação.
- PROJECT_ID: o ID do projeto.
- RAG_CORPUS_RESOURCE: o nome do recurso
RagCorpus
. Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - VECTOR_DISTANCE_THRESHOLD: somente contextos com uma distância vetorial menor que o limite são retornados.
- TEXT: o texto da consulta para receber contextos relevantes.
- SIMILARITY_TOP_K: o número dos principais contextos a serem recuperados.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts
Corpo JSON da solicitação:
{ "vertex_rag_store": { "rag_resources": { "rag_corpus": "RAG_CORPUS_RESOURCE", }, "vector_distance_threshold": 0.8 }, "query": { "text": "TEXT", "similarity_top_k": SIMILARITY_TOP_K } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content
RagFiles
relacionadas.
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.
Gera conteúdo
Uma previsão controla o método LLM que gera conteúdo.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- MODEL_ID: modelo LLM para geração de conteúdo. Exemplo:
gemini-1.5-pro-002
- GENERATION_METHOD: método LLM para geração de conteúdo. Opções:
generateContent
,streamGenerateContent
- INPUT_PROMPT: o texto enviado ao LLM para geração de conteúdo. Tente usar um comando relevante para os arquivos de Rag enviados.
- RAG_CORPUS_RESOURCE: o nome do recurso
RagCorpus
. Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K (opcional): o número dos principais contextos a serem recuperados.
- VECTOR_DISTANCE_THRESHOLD (opcional): os contextos com uma distância vetorial menor que o limite são retornados.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD
Corpo JSON da solicitação:
{ "contents": { "role": "user", "parts": { "text": "INPUT_PROMPT" } }, "tools": { "retrieval": { "disable_attribution": false, "vertex_rag_store": { "rag_resources": { "rag_corpus": "RAG_CORPUS_RESOURCE", }, "similarity_top_k": SIMILARITY_TOP_K, "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD } } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand Content
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.
Pesquisa híbrida
A pesquisa híbrida é compatível com o banco de dados do Weaviate, que combina pesquisas semânticas e de palavras-chave para melhorar a relevância dos resultados. Durante a recuperação dos resultados da pesquisa, uma combinação de pontuações de similaridade da semântica (um vetor denso) e da correspondência de palavras-chave (um vetor disperso) produz os resultados finais classificados.
Pesquisa híbrida usando a API de recuperação do mecanismo RAG
Este é um exemplo de como ativar uma pesquisa híbrida usando a API de recuperação do mecanismo RAG.
REST
# TODO(developer): Update the variables.
PROJECT_ID = "YOUR_PROJECT_ID"
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate collection name, which roughly corresponds to a Vertex AI Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weaviate will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# The resource name of your Weaviate API Key your Secret.
SECRET_NAME="MyWeaviateApiKeySecret"
# The Secret Manager resource name containing the API Key for your Weaviate endpoint.
# For example, projects/{project}/secrets/{secret}/versions/latest
APIKEY_SECRET_VERSION="projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/latest"
# Select a Corpus display name.
CORPUS_DISPLAY_NAME="SpecialCorpus"
# Call CreateRagCorpus API and set all Vector DB Config parameters for Weaviate to create a new corpus associated to your selected Weaviate collection.
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_ID}/locations/us-central1/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_vector_db_config" : {
"weaviate": {
"http_endpoint": '\""${HTTP_ENDPOINT_NAME}"\"',
"collection_name": '\""${WEAVIATE_COLLECTION_NAME}"\"'
},
"api_auth" : {
"api_key_config": {
"api_key_secret_version": '\""${APIKEY_SECRET_VERSION}"\"'
}
}
}
}'
# TODO(developer): Update the variables.
# Get operation_id returned in CreateRagCorpus.
OPERATION_ID="your-operation-id"
# Poll Operation status until done = true in the response.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/operations/${OPERATION_ID}
# Call ListRagCorpora API to verify the RAG corpus is created successfully.
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora"
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.
Usar a pesquisa híbrida e o RAG Engine para geração de embasamento
Este é um exemplo de como usar a pesquisa híbrida e o mecanismo RAG para geração com base em dados.
REST
# TODO(developer): Update the variables.
PROJECT_ID = "YOUR_PROJECT_ID"
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate collection name, which roughly corresponds to a Vertex AI Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weaviate will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# The resource name of your Weaviate API Key your Secret.
SECRET_NAME="MyWeaviateApiKeySecret"
# The Secret Manager resource name containing the API Key for your Weaviate endpoint.
# For example, projects/{project}/secrets/{secret}/versions/latest
APIKEY_SECRET_VERSION="projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/latest"
# Select a Corpus display name.
CORPUS_DISPLAY_NAME="SpecialCorpus"
# Call CreateRagCorpus API and set all Vector DB Config parameters for Weaviate to create a new corpus associated to your selected Weaviate collection.
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_ID}/locations/us-central1/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_vector_db_config" : {
"weaviate": {
"http_endpoint": '\""${HTTP_ENDPOINT_NAME}"\"',
"collection_name": '\""${WEAVIATE_COLLECTION_NAME}"\"'
},
"api_auth" : {
"api_key_config": {
"api_key_secret_version": '\""${APIKEY_SECRET_VERSION}"\"'
}
}
}
}'
# TODO(developer): Update the variables.
# Get operation_id returned in CreateRagCorpus.
OPERATION_ID="your-operation-id"
# Poll Operation status until done = true in the response.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/operations/${OPERATION_ID}
# Call ListRagCorpora API to verify the RAG corpus is created successfully.
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora"
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.
A seguir
- Para saber mais sobre o embasamento, consulte Visão geral do embasamento.
- Para saber mais sobre o RAG Engine, consulte Usar o RAG Engine.
- Para saber mais sobre embasamento e RAG, consulte Embasar respostas usando RAG.