O Vertex AI RAG Engine é um componente da plataforma Vertex AI, que facilita a geração aumentada por recuperação (RAG). O motor RAG permite que os modelos de linguagem (conteúdo extenso) (MDIs/CEs) acedam e incorporem dados de origens de conhecimentos externos, como documentos e bases de dados. Ao usar a RAG, os GMLs podem gerar respostas mais precisas e informativas.
Lista de parâmetros
Esta secção apresenta o seguinte:
Parâmetros | Exemplos |
---|---|
Consulte os parâmetros de gestão de corpus. | Veja exemplos de gestão de corpus. |
Consulte os parâmetros de gestão de ficheiros. | Consulte Exemplos de gestão de ficheiros. |
Consulte os parâmetros de gestão de projetos. | Veja exemplos de gestão de projetos. |
Parâmetros de gestão de corpus
Para obter informações sobre um corpus RAG, consulte o artigo Gestão de corpus.
Crie um corpus de RAG
Esta tabela apresenta os parâmetros usados para criar um corpus de RAG.
Pedido de corpo
Parâmetros | |
---|---|
|
Opcional: imutável.
A configuração para especificar o tipo de corpus. |
|
Obrigatório: O nome a apresentar do corpus RAG. |
|
Opcional: A descrição do corpus RAG. |
|
Opcional: imutável: O nome da chave CMEK é usado para encriptar dados em repouso relacionados com o corpus RAG. O nome da chave só é aplicável à opção Formato: |
|
Opcional: imutável: A configuração das bases de dados vetoriais. |
|
Opcional: A configuração do Vertex AI Search. Formato: |
CorpusTypeConfig
Parâmetros | |
---|---|
|
O valor predefinido de |
|
Se definir este tipo, o corpus de RAG é um Para mais informações, consulte o artigo Use o motor RAG da Vertex AI como o armazenamento de memória. |
|
O analisador do GML usado para analisar e armazenar contextos de sessões da API Gemini Live. Pode criar memórias para indexação. |
RagVectorDbConfig
Parâmetros | |
---|---|
|
Se não for especificada nenhuma base de dados vetorial, |
|
Predefinição. Encontra os vizinhos mais próximos exatos comparando todos os pontos de dados no seu corpus de RAG. Se não especificar uma estratégia durante a criação do seu corpus de RAG, o KNN é a estratégia de obtenção predefinida usada. |
|
Determina o número de camadas ou níveis na árvore. Se tiverO(10K) ficheiros RAG no corpus RAG, defina este valor como 2.
Determina o número de nós folha na estrutura baseada em árvores.
|
|
Especifica a sua instância do Weaviate. |
|
O ponto final de HTTP da instância do Weaviate. Não é possível alterar este valor depois de definido. Pode deixá-lo vazio na
chamada da API |
|
A coleção do Weaviate para a qual o corpus de RAG é mapeado. Não é possível alterar este valor depois de definido. Pode deixá-lo vazio na
chamada da API |
|
Especifica a sua instância do Pinecone. |
|
Este é o nome usado para criar o índice do Pinecone que é usado com o corpus de RAG. Não é possível alterar este valor depois de definido. Pode deixá-lo vazio na
chamada da API |
|
Especifica a sua instância do Vertex AI Feature Store. |
|
O Vertex AI Feature Store Formato: Não é possível alterar este valor depois de definido. Pode deixá-lo vazio na
chamada da API |
|
Especifica a sua instância do Vertex Vector Search. |
|
Este é o nome do recurso do índice do Vector Search que é usado com o corpus RAG. Formato: Não é possível alterar este valor depois de definido. Pode deixá-lo vazio na
chamada da API |
|
Este é o nome do recurso do ponto final do índice do Vector Search que é usado com o corpus RAG. Formato: Não é possível alterar este valor depois de definido. Pode deixá-lo vazio na
chamada da API |
|
Este é o nome completo do recurso do segredo armazenado no Secret Manager, que contém a chave da API Weaviate ou Pinecone, consoante a base de dados vetorial escolhida. Formato: Pode deixá-lo vazio na chamada da API |
|
Opcional: imutável: O modelo de incorporação a usar para o corpus RAG. Não é possível alterar este valor depois de definido. Se o deixar vazio, usamos text-embedding-005 como o modelo de incorporação. |
Atualize um corpus RAG
Esta tabela lista os parâmetros usados para atualizar um corpus RAG.
Pedido de corpo
Parâmetros | |
---|---|
|
Opcional: O nome a apresentar do corpus RAG. |
|
Opcional: A descrição do corpus RAG. |
|
O ponto final de HTTP da instância do Weaviate. Se o seu |
|
A coleção do Weaviate para a qual o corpus de RAG é mapeado. Se o seu |
|
Este é o nome usado para criar o índice do Pinecone que é usado com o corpus de RAG. Se o seu |
|
O Vertex AI Feature Store Formato: Se o seu |
|
Este é o nome do recurso do índice do Vector Search que é usado com o corpus RAG. Formato: Se o seu |
|
Este é o nome do recurso do ponto final do índice do Vector Search que é usado com o corpus RAG. Formato: Se o seu |
|
O nome completo do recurso do segredo armazenado no Secret Manager, que contém a chave da API Weaviate ou Pinecone, depende da sua escolha da base de dados vetorial. Formato: |
Liste os conjuntos de dados RAG
Esta tabela lista os parâmetros usados para listar os corpora de RAG.
Parâmetros | |
---|---|
|
Opcional: O tamanho da página da lista padrão. |
|
Opcional: O símbolo da página da lista padrão. Normalmente, obtido a partir de |
Obtenha um corpus RAG
Esta tabela lista os parâmetros usados para obter um corpus RAG.
Parâmetros | |
---|---|
|
O nome do recurso |
Elimine um corpus RAG
Esta tabela indica os parâmetros usados para eliminar um corpus RAG.
Parâmetros | |
---|---|
|
O nome do recurso |
Parâmetros de gestão de ficheiros
Para obter informações sobre um ficheiro RAG, consulte o artigo Gestão de ficheiros.
Carregue um ficheiro RAG
Esta tabela apresenta os parâmetros usados para carregar um ficheiro RAG.
Pedido de corpo
Parâmetros | |
---|---|
|
O nome do recurso |
|
Obrigatório: O ficheiro a carregar. |
|
Obrigatório: A configuração do |
RagFile |
|
---|---|
|
Obrigatório: O nome a apresentar do ficheiro RAG. |
|
Opcional: A descrição do ficheiro RAG. |
UploadRagFileConfig |
|
---|---|
|
O número de tokens que cada fragmento tem. |
|
A sobreposição entre blocos. |
Importe ficheiros RAG
Esta tabela lista os parâmetros usados para importar um ficheiro RAG.
Parâmetros | |
---|---|
|
Obrigatório: O nome do recurso Formato: |
|
Localização do Cloud Storage. Suporta a importação de ficheiros individuais, bem como de diretórios completos do Cloud Storage. |
|
URI do Cloud Storage que contém o ficheiro de carregamento. |
|
Localização do Google Drive. Suporta a importação de ficheiros individuais, bem como de pastas do Google Drive. |
|
O canal do Slack onde o ficheiro é carregado. |
|
A consulta do Jira onde o ficheiro é carregado. |
|
As origens do SharePoint onde o ficheiro é carregado. |
|
O número de tokens que cada fragmento tem. |
|
A sobreposição entre blocos. |
|
Opcional: Especifica a configuração de análise para Se este campo não estiver definido, a RAG usa o analisador predefinido. |
|
Opcional: O número máximo de consultas por minuto que esta tarefa pode fazer ao modelo de incorporação especificado no corpus. Este valor é específico desta tarefa e não é partilhado com outras tarefas de importação. Consulte a página Quotas no projeto para definir um valor adequado. Se não for especificado, é usado um valor predefinido de 1000 QPM. |
GoogleDriveSource |
|
---|---|
|
Obrigatório: O ID do recurso do Google Drive. |
|
Obrigatório: O tipo de recurso do Google Drive. |
SlackSource |
|
---|---|
|
Repetido: Informações do canal do Slack, incluindo o ID e o intervalo de tempo a importar. |
|
Obrigatório: O ID do canal do Slack. |
|
Opcional: A data/hora de início das mensagens a importar. |
|
Opcional: A indicação de data/hora de fim das mensagens a importar. |
|
Obrigatório: O nome completo do recurso do segredo armazenado no Gestor Secreto,
que contém um token de acesso ao canal do Slack que tem acesso aos IDs dos canais do Slack.
Formato: |
JiraSource |
|
---|---|
|
Repetido: Uma lista de projetos do Jira a importar na íntegra. |
|
Repetido: Uma lista de consultas personalizadas do Jira a importar. Para informações sobre a JQL (Jira Query Language), consulte o
|
|
Obrigatório: O endereço de email do Jira. |
|
Obrigatório: O URI do servidor do Jira. |
|
Obrigatório: O nome completo do recurso do segredo armazenado no Gestor Secreto,
que contém a chave da API Jira que tem acesso aos IDs dos canais do Slack.
Formato: |
SharePointSources |
|
---|---|
|
O caminho da pasta do SharePoint a partir da qual quer fazer a transferência. |
|
O ID da pasta do SharePoint a partir da qual quer fazer a transferência. |
|
O nome da unidade a partir da qual quer fazer a transferência. |
|
O ID da unidade a partir da qual quer fazer a transferência. |
|
O ID da aplicação para a app registada no portal do Microsoft Azure.
|
|
Obrigatório: O nome completo do recurso do segredo armazenado no Gestor Secreto, que contém o segredo da aplicação para a app registada no Azure. Formato: |
|
Identificador exclusivo da instância do Azure Active Directory. |
|
O nome do site do SharePoint a partir do qual fazer a transferência. Pode ser o nome do site ou o ID do site. |
RagFileParsingConfig |
|
---|---|
|
O analisador de esquemas a usar para |
|
O nome completo do recurso de um processador ou de uma versão do processador do Document AI. Formato:
|
|
O número máximo de pedidos que a tarefa pode fazer ao processador de IA Documental por minuto. Consulte https://cloud.google.com/document-ai/quotas e a página Quota do seu projeto para definir um valor adequado aqui. Se não for especificado, é usado um valor predefinido de 120 QPM. |
|
O analisador LLM a usar para |
|
O nome do recurso de um modelo LLM. Formato:
|
|
O número máximo de pedidos que a tarefa pode fazer ao modelo de MDG por minuto. Para definir um valor adequado para o seu projeto, consulte a secção de quota de modelos e a página Quota do seu projeto para definir um valor adequado aqui. Se não for especificado, é usado um valor predefinido de 5000 QPM. |
Obtenha um ficheiro RAG
Esta tabela apresenta os parâmetros usados para obter um ficheiro RAG.
Parâmetros | |
---|---|
|
O nome do recurso |
Elimine um ficheiro RAG
Esta tabela lista os parâmetros usados para eliminar um ficheiro RAG.
Parâmetros | |
---|---|
|
O nome do recurso |
Parâmetros de obtenção e previsão
Esta secção lista os parâmetros de obtenção e previsão.
Parâmetros de obtenção
Esta tabela apresenta os parâmetros da API retrieveContexts
.
Parâmetros | |
---|---|
|
Obrigatório: O nome do recurso da localização a obter Formato: |
|
A origem de dados para o Vertex RagStore. |
|
Obrigatório: Consulta de obtenção de RAG única. |
VertexRagStore
VertexRagStore |
|
---|---|
|
lista: A representação da origem da RAG. Pode ser usado para especificar apenas o corpus ou |
|
Opcional:
Formato: |
|
lista: Uma lista de Formato: |
RagQuery |
|
---|---|
|
A consulta em formato de texto para obter contextos relevantes. |
|
Opcional: A configuração de obtenção da consulta. |
RagRetrievalConfig |
|
---|---|
|
Opcional: O número de contextos a obter. |
|
Opcional: O valor alfa controla a ponderação entre os resultados da pesquisa de vetores densos e esparsos. O intervalo é [0, 1], em que 0 significa apenas pesquisa de vetores esparsos e 1 significa apenas pesquisa de vetores densos. O valor predefinido é 0,5, que equilibra igualmente a pesquisa de vetores esparsos e densos. A pesquisa híbrida só está disponível para o Weaviate. |
|
Só devolve contextos com uma distância vetorial inferior ao limite. |
|
Devolve apenas contextos com uma semelhança vetorial superior ao limite. |
|
Opcional: O nome do modelo do serviço de classificação. Exemplo: |
|
Opcional: O nome do modelo usado para a classificação. Exemplo: |
Parâmetros de previsão
Esta tabela apresenta os parâmetros de previsão.
GenerateContentRequest |
|
---|---|
|
Definido para usar uma origem de dados com tecnologia da loja RAG do Vertex AI. |
Consulte VertexRagStore para ver detalhes.
Parâmetros de gestão de projetos
Esta tabela lista os parâmetros ao nível do projeto.
RagEngineConfig
Parâmetros | |
---|---|
RagManagedDbConfig.scaled |
Este nível oferece um desempenho à escala de produção, juntamente com a funcionalidade de dimensionamento automático. |
RagManagedDbConfig.basic |
Este nível oferece um nível económico e de baixo processamento. |
RagManagedDbConfig.unprovisioned |
Este nível elimina o RagManagedDb e a respetiva instância do Spanner subjacente. |
Exemplos de gestão de corpus
Esta secção fornece exemplos de como usar a API para gerir o seu corpus de RAG.
Crie um exemplo de corpus RAG
Este exemplo de código demonstra como criar um corpus RAG.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o seu ID do projeto.
- LOCATION: a região para processar o pedido.
- CORPUS_DISPLAY_NAME: o nome a apresentar do
RagCorpus
. - CORPUS_DESCRIPTION: a descrição do
RagCorpus
.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora
Corpo JSON do pedido:
{ "display_name" : "CORPUS_DISPLAY_NAME", "description": "CORPUS_DESCRIPTION", }
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 "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
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/ragCorpora" | Select-Object -Expand Content
O exemplo seguinte demonstra como criar um corpus RAG através da API REST.
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
CORPUS_DISPLAY_NAME: The display name of the <code>RagCorpus</code>.
// CreateRagCorpus
// Input: LOCATION, PROJECT_ID, CORPUS_DISPLAY_NAME
// Output: CreateRagCorpusOperationMetadata
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora \
-d '{
"display_name" : "CORPUS_DISPLAY_NAME"
}'
Atualize um exemplo de corpus RAG
Pode atualizar o seu corpus RAG com um novo nome a apresentar, descrição e configuração da base de dados vetorial. No entanto, não pode alterar os seguintes parâmetros no seu corpus de RAG:
- O tipo de base de dados vetorial. Por exemplo, não pode alterar a base de dados vetorial de Weaviate para Vertex AI Feature Store.
- Se estiver a usar a opção de base de dados gerida, não pode atualizar a configuração da base de dados de vetores.
Estes exemplos demonstram como atualizar um corpus RAG.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o seu ID do projeto.
- LOCATION: a região para processar o pedido.
- CORPUS_ID: o ID do corpus do seu corpus RAG.
- CORPUS_DISPLAY_NAME: o nome a apresentar do
RagCorpus
. - CORPUS_DESCRIPTION: a descrição do
RagCorpus
. - INDEX_NAME: o nome do recurso do
Vector Search Index
. Formato:projects/{project}/locations/{location}/indexes/{index}
- INDEX_ENDPOINT_NAME: o nome do recurso do
Vector Search Index Endpoint
. Formato:projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}
Método HTTP e URL:
PATCH https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID
Corpo JSON do pedido:
{ "display_name" : "CORPUS_DISPLAY_NAME", "description": "CORPUS_DESCRIPTION", "rag_vector_db_config": { "vertex_vector_search": { "index": "INDEX_NAME", "index_endpoint": "INDEX_ENDPOINT_NAME", } } }
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 PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID" | Select-Object -Expand Content
Exemplo de lista de corpora RAG
Este exemplo de código demonstra como listar todos os conjuntos de dados RAG.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o seu ID do projeto.
- LOCATION: a região para processar o pedido.
- PAGE_SIZE: o tamanho da página da lista padrão. Pode ajustar o número de
RagCorpora
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
ListRagCorporaResponse.next_page_token
da chamadaVertexRagDataService.ListRagCorpora
anterior.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?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 \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
RagCorpora
no PROJECT_ID
indicado.
Obtenha um exemplo de corpus RAG
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o seu ID do projeto.
- LOCATION: a região para processar o pedido.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
RagCorpus
.
Os comandos get
e list
são usados num exemplo para demonstrar como
RagCorpus
usa o campo rag_embedding_model_config
com o vector_db_config
, que aponta para o
modelo de incorporação que escolheu.
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
RAG_CORPUS_ID: The corpus ID of your RAG corpus.
// GetRagCorpus
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID
// Output: RagCorpus
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
// ListRagCorpora
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/
Elimine um exemplo de corpus RAG
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o seu ID do projeto.
- LOCATION: a região para processar o pedido.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
.
Método HTTP e URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
DeleteOperationMetadata
.
Exemplos de gestão de ficheiros
Esta secção fornece exemplos de como usar a API para gerir ficheiros RAG.
Carregue um exemplo de ficheiro RAG
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições: PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
RAG_CORPUS_ID: The corpus ID of your RAG corpus.
LOCAL_FILE_PATH: The local path to the file to be uploaded.
DISPLAY_NAME: The display name of the RAG file.
DESCRIPTION: The description of the RAG file.
Para enviar o seu pedido, use o seguinte comando:
curl -X POST \
-H "X-Goog-Upload-Protocol: multipart" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-F metadata="{'rag_file': {'display_name':' DISPLAY_NAME', 'description':'DESCRIPTION'}}" \
-F file=@LOCAL_FILE_PATH \
"https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"
Exemplo de importação de ficheiros RAG
Pode importar ficheiros e pastas do Drive ou do armazenamento na nuvem.
O número response.skipped_rag_files_count
refere-se ao número de ficheiros que foram ignorados durante a importação. Um ficheiro é ignorado quando as seguintes condições são
cumpridas:
- O ficheiro já foi importado.
- O ficheiro não foi alterado.
- A configuração de divisão em partes do ficheiro não foi alterada.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o seu ID do projeto.
- 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
. - 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/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" }, "rag_file_chunking_config": { "chunk_size": CHUNK_SIZE, "chunk_overlap": CHUNK_OVERLAP } } }
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 "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/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:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
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/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.
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
RAG_CORPUS_ID: The corpus ID of your RAG corpus.
GCS_URIS: A list of Cloud Storage locations. Example: gs://my-bucket1.
CHUNK_SIZE: Number of tokens each chunk should have.
CHUNK_OVERLAP: Number of tokens overlap between chunks.
EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: LOCATION, 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://LOCATION-aiplatform.googleapis.com/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": CHUNK_SIZE,
"chunk_overlap": CHUNK_OVERLAP
},
"max_embedding_requests_per_min": EMBEDDING_MODEL_QPM_RATE
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID: The operation ID you get from the response of the previous command.
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.
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
RAG_CORPUS_ID: The corpus ID of your RAG corpus.
FOLDER_RESOURCE_ID: The resource ID of your Google Drive folder.
CHUNK_SIZE: Number of tokens each chunk should have.
CHUNK_OVERLAP: Number of tokens overlap between chunks.
EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: LOCATION, 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://LOCATION-aiplatform.googleapis.com/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: The operation ID you get from the response of the previous command.
poll_op_wait OPERATION_ID
Exemplo de ficheiros RAG de lista
Este exemplo de código demonstra como listar ficheiros RAG.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o seu ID do projeto.
- 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 \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"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:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
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.
Obtenha um exemplo de ficheiro RAG
Este exemplo de código demonstra como obter um ficheiro RAG.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o seu ID do projeto.
- 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 \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
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
.
Elimine um exemplo de ficheiro RAG
Este exemplo de código demonstra como eliminar um ficheiro RAG.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o seu ID do projeto.
- 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 \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
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
.
Exemplo de consulta de obtenção
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: o seu ID do projeto.
- 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": VECTOR_DISTANCE_THRESHOLD }, "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 "Authorization: Bearer $(gcloud auth print-access-token)" \
-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:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
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.
Exemplo de geração
O MDI gera uma resposta fundamentada com base nos contextos obtidos.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o seu ID do projeto.
- 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 "Authorization: Bearer $(gcloud auth print-access-token)" \
-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:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
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
Exemplos de gestão de projetos
O nível é uma definição ao nível do projeto disponível no recurso RagEngineConfig
e afeta os conjuntos de dados RAG que usam RagManagedDb
. Para obter a configuração do nível, use GetRagEngineConfig
. Para atualizar a configuração do nível,
use UpdateRagEngineConfig
.
Para mais informações sobre a gestão da configuração do seu nível, consulte o artigo Faça a gestão do seu nível.
Obtenha a configuração do projeto
O seguinte exemplo de código demonstra como ler o seu RagEngineConfig
:
Consola
- Na Google Cloud consola, aceda à página RAG Engine.
- Selecione a região em que o seu motor RAG está a ser executado. A sua lista de conjuntos de dados RAG está atualizada.
- Clique em Configurar motor RAG. É apresentado o painel Configurar motor RAG. Pode ver o nível selecionado para o seu motor RAG.
- Clique em Cancelar.
Python
from vertexai import rag
import vertexai
PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
rag_engine_config = rag.rag_data.get_rag_engine_config(
name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"
)
print(rag_engine_config)
REST
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig
Atualize a configuração do projeto
Esta secção fornece exemplos de código para demonstrar como alterar o seu nível na configuração.
Atualize o seu RagEngineConfig
para o nível Scaled
Os seguintes exemplos de código demonstram como definir o RagEngineConfig
para o nível
com escalabilidade:
Consola
- Na Google Cloud consola, aceda à página RAG Engine.
- Selecione a região em que o seu motor RAG está a ser executado. A sua lista de conjuntos de dados RAG está atualizada.
- Clique em Configurar motor RAG. É apresentado o painel Configurar motor RAG.
- Selecione o nível no qual quer executar o motor RAG.
- Clique em Guardar.
Python
from vertexai import rag
import vertexai
PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"
new_rag_engine_config = rag.RagEngineConfig(
name=rag_engine_config_name,
rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Scaled()),
)
updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
rag_engine_config=new_rag_engine_config
)
print(updated_rag_engine_config)
REST
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'scaled': {}}}"
Atualize o seu RagEngineConfig
para o nível Basic
Os seguintes exemplos de código demonstram como definir o RagEngineConfig
para o nível básico:
Se tiver uma grande quantidade de dados no seu RagManagedDb
nos seus conjuntos de dados RAG, a mudança para um plano básico pode falhar devido à capacidade de computação e armazenamento insuficiente.
Consola
- Na Google Cloud consola, aceda à página RAG Engine.
- Selecione a região em que o seu motor RAG está a ser executado. A sua lista de conjuntos de dados RAG está atualizada.
- Clique em Configurar motor RAG. É apresentado o painel Configurar motor RAG.
- Selecione o nível no qual quer executar o motor RAG.
- Clique em Guardar.
Python
from vertexai import rag
import vertexai
PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"
new_rag_engine_config = rag.RagEngineConfig(
name=rag_engine_config_name,
rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Basic()),
)
updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
rag_engine_config=new_rag_engine_config
)
print(updated_rag_engine_config)
REST
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'basic': {}}}"
Atualize o seu RagEngineConfig
para o nível não aprovisionado
Os seguintes exemplos de código demonstram como definir o RagEngineConfig
para o nível não aprovisionado:
Consola
- Na Google Cloud consola, aceda à página RAG Engine.
- Selecione a região em que o seu motor RAG está a ser executado. A sua lista de conjuntos de dados RAG está atualizada.
- Clique em Configurar motor RAG. É apresentado o painel Configurar motor RAG.
- Clique em Eliminar motor RAG. É apresentada uma caixa de diálogo de confirmação.
- Verifique que está prestes a eliminar os seus dados no motor RAG escrevendo delete e, de seguida, clique em Confirmar.
- Clique em Guardar.
Python
from vertexai import rag
import vertexai
PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"
new_rag_engine_config = rag.RagEngineConfig(
name=rag_engine_config_name,
rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Unprovisioned()),
)
updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
rag_engine_config=new_rag_engine_config
)
print(updated_rag_engine_config)
REST
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'unprovisioned': {}}}"
O que se segue?
- Para saber mais sobre os modelos de geração suportados, consulte o artigo Modelos de IA generativa que suportam RAG.
- Para saber mais sobre os modelos de incorporação suportados, consulte Modelos de incorporação.
- Para saber mais sobre os modelos abertos, consulte o artigo Modelos abertos.
- Para saber mais sobre o motor RAG, consulte a vista geral do motor RAG.