Esta página mostra como associar o seu corpus do motor RAG à base de dados Weaviate.
Também pode seguir este bloco de notas RAG Engine with Weaviate.
Pode usar a sua instância da base de dados Weaviate, que é uma base de dados de código aberto, com o motor RAG para indexar e realizar uma pesquisa de similaridade baseada em vetores. Uma pesquisa de similaridade é uma forma de encontrar fragmentos de texto semelhantes ao texto que procura, o que requer a utilização de um modelo de incorporação. O modelo de incorporação produz dados vetoriais para cada fragmento de texto que está a ser comparado. A pesquisa de semelhanças é usada para obter contextos semânticos para a fundamentação de modo a devolver o conteúdo mais preciso do seu MDG.
Com o motor RAG, pode continuar a usar a sua instância de base de dados vetorial totalmente gerida, cuja aprovisionamento é da sua responsabilidade. O motor RAG usa a base de dados vetorial para armazenamento, gestão de índices e pesquisa.
Considerações
Considere os seguintes passos antes de usar a base de dados Weaviate:
- Tem de criar, configurar e implementar a instância da base de dados e a coleção do Weaviate. Siga as instruções em Crie a sua coleção do Weaviate para configurar uma coleção com base no seu esquema.
- Tem de fornecer uma chave da API Weaviate, que permite que o motor RAG interaja com a base de dados Weaviate. O motor RAG suporta a
AuthN
com base em chaves de API eAuthZ
, que se liga à sua base de dados Weaviate e suporta uma ligação HTTPS. - O motor RAG não armazena nem gere a sua chave da API Weaviate. Em vez disso, tem de fazer o seguinte:
- Armazene a chave no Google Cloud Secret Manager.
- Conceda autorizações à conta de serviço do seu projeto para aceder ao seu segredo.
- Conceda acesso do motor RAG ao nome do recurso do seu segredo.
- Quando interage com a sua base de dados do Weaviate, o motor RAG acede ao seu recurso secreto através da sua conta de serviço.
- O corpus do motor RAG e a coleção do Weaviate têm um mapeamento
individual. Os ficheiros RAG são armazenados numa coleção de base de dados do Weaviate. Quando é feita uma chamada à API
CreateRagCorpus
ou à APIUpdateRagCorpus
, o corpus RAG é associado à coleção de bases de dados. - Além das pesquisas semânticas baseadas em incorporações densas, a pesquisa híbrida também é suportada com o motor RAG através de uma base de dados Weaviate. Também pode ajustar a ponderação entre a semelhança de vetores densos e esparsos numa pesquisa híbrida.
Aprovisione a base de dados Weaviate
Antes de usar a base de dados Weaviate com o motor RAG, tem de fazer o seguinte:
- Configure e implemente a instância da base de dados do Weaviate.
- Prepare o ponto final do HTTPS.
- Crie a sua coleção do Weaviate.
- Use a sua chave da API para aprovisionar o Weaviate através de
AuthN
eAuthZ
. - Aprovisione a sua conta de serviço do RAG Engine.
Configure e implemente a instância da base de dados do Weaviate
Tem de seguir o início rápido do guia oficial do Weaviate. No entanto, pode usar o Google Cloud guia do Marketplace, que é opcional.
Pode configurar a sua instância do Weaviate em qualquer lugar, desde que o ponto final do Weaviate seja acessível para configurar e implementar no seu projeto. Em seguida, pode gerir totalmente a instância da base de dados do Weaviate.
Uma vez que o motor RAG não está envolvido em nenhuma fase do ciclo de vida da instância da base de dados Weaviate, é da sua responsabilidade conceder autorizações ao motor RAG para que possa armazenar e pesquisar dados na sua base de dados Weaviate. Também é da sua responsabilidade garantir que os dados na sua base de dados podem ser usados pelo motor RAG. Por exemplo, se alterar os seus dados, o motor RAG não é responsável por comportamentos inesperados devido a essas alterações.
Prepare o ponto final HTTPS
Durante o aprovisionamento do Weaviate, certifique-se de que cria um ponto final HTTPS. Embora as ligações HTTP sejam suportadas, preferimos que o tráfego do motor RAG e da base de dados Weaviate use uma ligação HTTPS.
Crie a sua coleção do Weaviate
Uma vez que o corpus do motor RAG e a coleção do Weaviate têm um mapeamento individual, tem de criar uma coleção na base de dados do Weaviate antes de associar a coleção ao corpus do motor RAG. Esta associação única é feita quando chama a API CreateRagCorpus
ou a API UpdateRagCorpus
.
Quando cria uma coleção no Weaviate, tem de usar o seguinte esquema:
Nome de propriedade | Tipo de dados |
---|---|
fileId |
text |
corpusId |
text |
chunkId |
text |
chunkDataType |
text |
chunkData |
text |
fileOriginalUri |
text |
Use a sua chave da API para aprovisionar o Weaviate através de AuthN
e AuthZ
O aprovisionamento da chave da API Weaviate envolve os seguintes passos:
- Crie a chave da API Weaviate.
- Configure o Weaviate com a sua chave da API Weaviate.
- Armazene a chave da API Weaviate no Secret Manager.
Crie a chave da API
O motor RAG só pode estabelecer ligação às instâncias da base de dados do Weaviate através da chave da API para autenticação e autorização. Tem de seguir o guia oficial de autenticação do Weaviate para configurar a autenticação baseada em chaves da API na sua instância da base de dados do Weaviate.
Se a criação da chave da API Weaviate exigir informações de identidade para associar a que provém do motor RAG, tem de criar o seu primeiro corpus e usar a sua conta de serviço do motor RAG como uma identidade.
Armazene a chave da API no Secret Manager
Uma chave de API contém informações de identificação pessoal confidenciais (SPII), que estão sujeitas a requisitos legais. Se os dados SPII forem comprometidos ou usados indevidamente, um indivíduo pode sofrer um risco ou um dano significativo. Para minimizar os riscos para um indivíduo ao usar o motor RAG, não armazene nem faça a gestão da sua chave da API e evite partilhar a chave da API não encriptada.
Para proteger as SPII, faça o seguinte:
- Armazene a chave da API no Secret Manager.
- Conceda à sua conta de serviço do motor RAG as autorizações para os seus segredos
e faça a gestão do controlo de acesso ao nível do recurso secreto.
- Navegue para as autorizações do projeto.
- Ative a opção Incluir concessões de funções fornecidas pela 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 a função Secret Manager Secret Accessor à conta de serviço.
- Durante a criação ou a atualização do corpus de RAG, transmita o nome do recurso secreto para o motor de RAG e armazene o nome do recurso secreto.
Quando faz pedidos de API às suas instâncias da base de dados do Weaviate, o motor RAG usa cada conta de serviço para ler a chave da API que corresponde aos seus recursos secretos no Secret Manager dos seus projetos.
Aprovisione a sua conta de serviço do RAG Engine
Quando cria o primeiro recurso no seu projeto, o motor RAG cria uma conta de serviço dedicada. Pode encontrar a sua conta de serviço na página 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
.
Quando se integra com a base de dados Weaviate, a sua conta de serviço é usada nos seguintes cenários:
- Pode usar a sua conta de serviço para gerar a chave da API Weaviate para autenticação. Em alguns casos, a geração da chave da API não requer informações do utilizador, o que significa que não é necessária uma conta de serviço quando gera a chave da API.
- Pode associar a sua conta de serviço à chave API na base de dados do Weaviate para configurar a autenticação (
AuthN
) e a autorização (AuthZ
). No entanto, a sua conta de serviço não é obrigatória. - Pode armazenar a chave da API no Secret Manager no seu projeto e pode conceder autorizações à sua conta de serviço para estes recursos secretos.
- O motor RAG usa contas de serviço para aceder à chave da API a partir do Secret Manager nos seus projetos.
Configure o seu Google Cloud ambiente de consola
Clique para saber como configurar o seu ambiente
Saiba como configurar o seu ambiente selecionando um dos seguintes separadores:
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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Instale ou atualize o SDK do Vertex AI para Python executando o seguinte comando:
pip3 install --upgrade "google-cloud-aiplatform>=1.38"
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles. - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles. -
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Instale ou atualize o SDK Vertex AI para Node.js executando o seguinte comando:
npm install @google-cloud/vertexai
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles. - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles. -
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Para adicionar
google-cloud-vertexai
como uma dependência, adicione o código adequado para o seu ambiente:Maven com BOM
Adicione o seguinte HTML ao 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 ao 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'
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles. - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles. -
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Reveja os pacotes Go da API Vertex AI disponíveis para determinar que pacote melhor satisfaz as necessidades do seu projeto:
Pacote cloud.google.com/go/vertexai (recomendado)
vertexai
é um pacote criado por humanos que oferece acesso a capacidades e funcionalidades comuns.Este pacote é recomendado como ponto de partida para a maioria dos programadores que criam com a API Vertex AI. Para aceder a capacidades e funcionalidades ainda não abrangidas por este pacote, use o
aiplatform
gerado automaticamente.Package cloud.google.com/go/aiplatform
aiplatform
é um pacote gerado automaticamente.Este pacote destina-se a projetos que requerem acesso a capacidades e funcionalidades da API Vertex AI ainda não disponibilizadas pelo pacote
vertexai
criado por humanos.
Instale o pacote Go pretendido 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- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles. - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles. -
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles. - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles. -
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.
- Configure as variáveis de ambiente introduzindo o seguinte. Substitua
PROJECT_ID
pelo ID do seu Google Cloud projeto.MODEL_ID="gemini-2.0-flash-001" PROJECT_ID="PROJECT_ID"
- Aprovisione o ponto final:
gcloud beta services identity create --service=aiplatform.googleapis.com --project=${PROJECT_ID}
-
Opcional: se estiver a usar o Cloud Shell e lhe for pedido que autorize o Cloud Shell, clique em Autorizar.
Node.js
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
Java
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
Go
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
C#
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
REST
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
Prepare o seu corpus de RAG
Para aceder aos dados da sua base de dados do Weaviate, o motor RAG tem de ter acesso a um corpus RAG. Esta secção fornece os passos para criar um único corpus de RAG e corpora de RAG adicionais.
Use as APIs CreateRagCorpus
e UpdateRagCorpus
Tem de especificar os seguintes campos quando chamar as APIs CreateRagCorpus
e UpdateRagCorpus
:
rag_vector_db_config.weaviate
: depois de chamar a APICreateRagCorpus
, é escolhida a configuração da base de dados vetorial. A configuração da base de dados vetorial 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
é definido por predefinição.weaviate.http_endpoint
: O ponto final do HTTPS ou HTTP Weaviate é criado durante o aprovisionamento da instância da base de dados Weaviate.weaviate.collection_name
: o nome da coleção criada durante o aprovisionamento da instância do Weaviate. O nome tem de começar com uma letra maiúscula.api_auth.api_key_config
: a configuração especifica a utilização de uma chave da API para autorizar o seu acesso à base de dados vetorial.api_key_config.api_key_secret_version
: O nome do recurso do segredo armazenado no Secret Manager, que contém a sua chave da API Weaviate.
Pode criar e associar o seu corpus RAG à coleção do Weaviate na instância da base de dados. No entanto, pode precisar da conta de serviço para gerar a chave de API e configurar a instância da base de dados do Weaviate. Quando cria o seu primeiro corpus de RAG, a conta de serviço é gerada. Depois de criar o seu primeiro corpus de RAG, a associação entre a base de dados do Weaviate e a chave da API pode não estar pronta para utilização na criação de outro corpus de RAG.
Caso a base de dados e a chave não estejam prontas para serem associadas ao seu corpus de RAG, faça o seguinte ao seu corpus de RAG:
Defina o campo
weaviate
emrag_vector_db_config
.- Não pode alterar a base de dados vetorial associada.
- Deixe os campos
http_endpoint
ecollection_name
vazios. Ambos os campos podem ser atualizados mais tarde.
Se não tiver a chave da API armazenada no Secret Manager, pode deixar o campo
api_auth
vazio. Quando chama a API, pode atualizar o campoapi_auth
.UpdateRagCorpus
O Weaviate requer que sejam feitas as seguintes ações:- Defina o
api_key_config
no campoapi_auth
. Defina o
api_key_secret_version
da chave da API Weaviate no Secret Manager. O campoapi_key_secret_version
usa o seguinte formato:projects/{project}/secrets/{secret}/versions/{version}
- Defina o
Se especificar campos que só podem ser definidos uma vez, como
http_endpoint
oucollection_name
, não pode alterá-los, a menos que elimine o seu corpus RAG e o crie novamente. Outros campos, como o campo da chave da API,api_key_secret_version
, podem ser atualizados.Quando chama
UpdateRagCorpus
, pode definir o campovector_db
. O valor devector_db
deve ser definido comoweaviate
pela chamada APICreateRagCorpus
. Caso contrário, o sistema escolhe a opção Base de dados gerida por RAG, que é a predefinição. Não é possível alterar esta opção quando chama a APIUpdateRagCorpus
. Quando chamaUpdateRagCorpus
e o campovector_db
está parcialmente definido, pode atualizar os campos marcados como Alteráveis (também denominados mutáveis).
Esta tabela apresenta os campos WeaviateConfig
mutáveis e imutáveis que são usados
no seu código.
Nome do campo | Mutável ou imutável |
---|---|
http_endpoint |
Imutável após a definição |
collection_name |
Imutável após a definição |
api_key_authentication |
Mutável |
Crie o primeiro corpus de RAG
Quando a conta de serviço do motor RAG não existe, faça o seguinte:
- Crie um corpus RAG no motor RAG com uma configuração do Weaviate vazia, que inicia o aprovisionamento do motor RAG para criar uma conta de serviço.
- Escolha um nome para a sua conta de serviço do motor RAG 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 a sua conta de serviço, aceda ao segredo armazenado no Secret Manager do seu projeto, que contém a chave da API Weaviate.
- Obtenha as seguintes informações após a conclusão do aprovisionamento do Weaviate:
- O seu ponto final de HTTPS ou HTTP do Weaviate.
- O nome da sua coleção do Weaviate.
- Chame a API
CreateRagCorpus
para criar um corpus RAG com uma configuração do Weaviate vazia e chame a APIUpdateRagCorpus
para atualizar o corpus RAG com as seguintes informações:- O seu ponto final de HTTPS ou HTTP do Weaviate.
- O nome da sua coleção do Weaviate.
- O nome do recurso da chave da API.
Crie outro corpus RAG
Quando a conta de serviço do motor RAG existir, faça o seguinte:
- Obtenha a conta de serviço do motor RAG nas autorizações do projeto.
- Ative a opção "Incluir concessões de funções fornecidas pela Google"
- Escolha um nome para a sua conta de serviço do motor RAG que siga este formato:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
- Usando a sua conta de serviço, aceda ao segredo armazenado no Secret Manager do seu projeto, que contém a chave da API Weaviate.
- Durante o aprovisionamento do Weaviate, obtenha as seguintes informações:
- O ponto final do HTTPS ou HTTP do Weaviate.
- O nome da sua coleção do Weaviate.
- Crie um corpus RAG no motor RAG e estabeleça ligação à sua coleção do Weaviate
através de uma das seguintes ações:
- Fazer uma chamada de API
CreateRagCorpus
para criar um corpus RAG com uma configuração do Weaviate preenchida, que é a opção preferencial. - Faça uma chamada API
CreateRagCorpus
para criar um corpus RAG com uma configuração do Weaviate vazia e faça uma chamada APIUpdateRagCorpus
para atualizar o corpus RAG com as seguintes informações:- Ponto final de HTTP da base de dados Weaviate
- Nome da coleção do Weaviate
- Chave da API
- Fazer uma chamada de API
Exemplos
Esta secção apresenta um exemplo de código que demonstra como configurar a base de dados do Weaviate, o Secret Manager, o corpus de RAG e o ficheiro RAG. Também é fornecido código de exemplo para demonstrar como importar ficheiros, obter contexto, gerar conteúdo e eliminar o corpus RAG e os ficheiros RAG.
Para usar o bloco de notas da API RAG do Model Garden, consulte o artigo Use o Weaviate com o Llama 3.
Configure a base 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
Configure o Secret Manager
Para configurar o Secret Manager, tem de ativar o Secret Manager e definir autorizações.
Criar Secret
Para ativar o Gestor Secreto, faça o seguinte:
Consola
Aceda à página Secret Manager.
Clique em + Criar segredo.
Introduza o Nome do seu segredo. Os nomes dos Secrets só podem conter letras do alfabeto inglês (AZ), números (0-9), travessões (-) e sublinhados (_).
A especificação dos seguintes campos é opcional:
- Para carregar o ficheiro com o seu segredo, clique em Procurar.
- Leia a Política de Replicação.
- Se quiser gerir manualmente as localizações do seu Secret, selecione a opção Gerir manualmente as localizações deste Secret. Tem de selecionar, pelo menos, uma região.
- Selecione a opção de encriptação.
- Se quiser definir manualmente o período de rotação, selecione Definir período de rotação.
- Se quiser especificar tópicos de publicação ou subscrição para receber notificações de eventos, clique em Adicionar tópicos.
- Por predefinição, o Secret nunca expira. Se quiser definir uma data de validade, selecione Definir data de validade.
- Por predefinição, as versões secretas são destruídas mediante pedido. Para atrasar a destruição de versões secretas, selecione Definir duração para destruição atrasada.
- Se quiser usar etiquetas para organizar e categorizar os seus segredos, clique em + Adicionar etiqueta.
- Se quiser usar anotações para anexar metadados não identificadores aos seus segredos, clique em + Adicionar anotação.
Clique em Criar segredo.
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 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.
Defina autorizações
Tem de conceder autorizações do Secret Manager à sua conta de serviço.
Consola
Na secção IAM e administrador da sua Google Cloud consola, encontre a conta de serviço e clique no ícone de lápis para editar.
No campo Função, selecione Acesso ao segredo do Secret Manager.
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.
Adicione uma 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 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.
Use o Weaviate com o Llama 3
O bloco de notas da API RAG do Model Garden demonstra como usar o SDK Vertex AI para Python com um corpus do Weaviate e um modelo Llama 3. Para usar o bloco de notas, tem de fazer o seguinte:
Para ver mais exemplos, consulte a secção Exemplos.
Crie um corpus de RAG
Este exemplo de código demonstra como criar um corpus RAG e define a instância do Weaviate como a respetiva base 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 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.
Use o ficheiro RAG
A API RAG processa o carregamento, a importação, a listagem e a eliminação de ficheiros.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: .
- LOCATION: a região para processar o pedido.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
. - INPUT_FILE: o caminho de um ficheiro local.
- FILE_DISPLAY_NAME: o nome a apresentar 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 do pedido:
{ "rag_file": { "display_name": "FILE_DISPLAY_NAME", "description": "RAG_FILE_DESCRIPTION" } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome INPUT_FILE
,
e execute o seguinte comando:
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
Guarde o corpo do pedido num ficheiro com o nome INPUT_FILE
,
e execute o seguinte comando:
$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 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.
Importe ficheiros RAG
Pode importar ficheiros e pastas do Drive ou do Cloud Storage.
REST
Use response.metadata
para ver falhas parciais, o tempo de pedido e o tempo de resposta no objeto response
do SDK.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: .
- LOCATION: a região para processar o pedido.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
. - GCS_URIS: uma lista de localizações 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 de recurso do Drive. Opções:
RESOURCE_TYPE_FILE
- FicheiroRESOURCE_TYPE_FOLDER
– Pasta- CHUNK_SIZE: opcional: número de tokens que cada bloco deve ter.
- CHUNK_OVERLAP: Opcional: número de tokens que se sobrepõem 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 do pedido:
{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$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 seguinte demonstra como importar um ficheiro do Cloud Storage. Use o campo de controlo max_embedding_requests_per_min
para limitar a taxa à qual o motor RAG chama o modelo de incorporação durante o processo de indexação ImportRagFiles
. O campo tem um valor predefinido 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 seguinte demonstra como importar um ficheiro do
Drive. Use o campo de controlo max_embedding_requests_per_min
para
limitar a taxa à qual o motor RAG chama o modelo de incorporação durante o
ImportRagFiles
processo de indexação. O campo tem um valor predefinido 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 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 um ficheiro RAG
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: .
- LOCATION: a região para processar o pedido.
- 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 o seu pedido, 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 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.
Liste ficheiros RAG
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: .
- LOCATION: a região para processar o pedido.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
. - PAGE_SIZE: o tamanho da página da lista padrão. Pode ajustar o número de
RagFiles
a devolver por página atualizando o parâmetropage_size
. - PAGE_TOKEN: o símbolo da página de lista padrão. Obtido normalmente através de
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 o seu pedido, 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
indicado.
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.
Elimine um ficheiro RAG
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: .
- LOCATION: a região para processar o pedido.
- 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 o seu pedido, 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 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.
Obter contexto
Quando um utilizador faz uma pergunta ou fornece um comando, o componente de obtenção na RAG pesquisa na respetiva base de conhecimentos para encontrar informações relevantes para a consulta.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: a região para processar o pedido.
- PROJECT_ID: .
- RAG_CORPUS_RESOURCE: o nome do recurso
RagCorpus
. Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - VECTOR_DISTANCE_THRESHOLD: apenas são devolvidos contextos com uma distância vetorial inferior ao limite.
- TEXT: o texto da consulta para obter contextos relevantes.
- SIMILARITY_TOP_K: o número de contextos principais a obter.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts
Corpo JSON do pedido:
{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$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
relacionados.
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.
Gera conteúdo
Uma previsão controla o método do MDG que gera conteúdo.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: .
- LOCATION: a região para processar o pedido.
- MODEL_ID: modelo de GML para geração de conteúdo. Exemplo:
gemini-2.5-flash
- GENERATION_METHOD: método de MDI para geração de conteúdo. Opções:
generateContent
,streamGenerateContent
- INPUT_PROMPT: o texto enviado ao MDI/CE para geração de conteúdo. Experimente usar um comando relevante para os ficheiros RAG carregados.
- RAG_CORPUS_RESOURCE: o nome do recurso
RagCorpus
. Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K: Opcional: o número de contextos principais a obter.
- VECTOR_DISTANCE_THRESHOLD: opcional: são devolvidos contextos com uma distância vetorial inferior ao limite.
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 do pedido:
{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$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 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.
Pesquisa híbrida
A pesquisa híbrida é suportada pela base de dados Weaviate, que combina pesquisas semânticas e de palavras-chave para melhorar a relevância dos resultados da pesquisa. Durante a obtenção dos resultados da pesquisa, uma combinação de classificações de semelhança da correspondência semântica (um vetor denso) e de palavras-chave (um vetor esparso) produz os resultados finais classificados.
Pesquisa híbrida com a API de obtenção do motor RAG
Este é um exemplo de como ativar uma pesquisa híbrida através da API de obtenção do motor 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 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.
Use a pesquisa híbrida e o motor RAG para a geração fundamentada
Este é um exemplo de como usar a pesquisa híbrida e o motor RAG para geração fundamentada.
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 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.