RAG Engine API

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

corpus_type_config

Opcional: imutável.

RagCorpus.CorpusTypeConfig

A configuração para especificar o tipo de corpus.

display_name

Obrigatório: string

O nome a apresentar do corpus RAG.

description

Opcional: string

A descrição do corpus RAG.

encryption_spec

Opcional: imutável: string

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 RagManaged para a base de dados vetorial. Quando o corpus é criado, este campo pode ser definido e não pode ser atualizado nem eliminado.

Formato: projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key_name}

vector_db_config

Opcional: imutável: RagVectorDbConfig

A configuração das bases de dados vetoriais.

vertex_ai_search_config.serving_config

Opcional: string

A configuração do Vertex AI Search.

Formato: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config} ou projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/servingConfigs/{serving_config}

CorpusTypeConfig
Parâmetros

document_corpus

oneof RagCorpus.CorpusTypeConfig.DocumentCorpus

O valor predefinido de corpus_type_config, que representa um corpus de RAG convencional baseado em documentos.

memory_corpus

oneof RagCorpus.CorpusTypeConfig.MemoryCorpus

Se definir este tipo, o corpus de RAG é um MemoryCorpus que pode ser usado com a API Gemini Live como um armazenamento de memória.

Para mais informações, consulte o artigo Use o motor RAG da Vertex AI como o armazenamento de memória.

memory_corpus.llm_parser

oneof RagFileParsingConfig.LlmParser

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

rag_managed_db

oneof vector_db: RagVectorDbConfig.RagManagedDb

Se não for especificada nenhuma base de dados vetorial, rag_managed_db é a base de dados vetorial predefinida.

rag_managed_db.knn

oneof retrieval_strategy: KNN

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.

rag_managed_db.ann

oneof retrieval_strategy: ANN

tree_depth

Determina o número de camadas ou níveis na árvore.

Se tiver O(10K) ficheiros RAG no corpus RAG, defina este valor como 2.
  • Se forem necessários mais níveis ou camadas, defina este valor como 3.
  • Se o número de camadas ou níveis não for especificado, o motor RAG do Vertex AI atribui um valor predefinido de 2 a este parâmetro.

leaf_count

Determina o número de nós folha na estrutura baseada em árvores.

  • O valor recomendado é 10 * sqrt(num of RAG files in your RAG corpus).
  • Se não for especificado, o Vertex AI RAG Engine atribui um valor predefinido de 500 a este parâmetro.

rebuild_ann_index

  • O Vertex AI RAG Engine recompila o seu índice ANN.
  • Definido como true no seu pedido da API ImportRagFiles.
  • Antes de consultar o corpus RAG, é necessário reconstruir o índice ANN uma vez.
  • Apenas é suportada uma reconstrução de índice simultânea num projeto em cada localização.

weaviate

oneof vector_db: RagVectorDbConfig.Weaviate

Especifica a sua instância do Weaviate.

weaviate.http_endpoint

string

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 CreateRagCorpus e defini-lo com um valor não vazio numa chamada da API UpdateRagCorpus de seguimento.

weaviate.collection_name

string

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 CreateRagCorpus e defini-lo com um valor não vazio numa chamada da API UpdateRagCorpus de seguimento.

pinecone

oneof vector_db: RagVectorDbConfig.Pinecone

Especifica a sua instância do Pinecone.

pinecone.index_name

string

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 CreateRagCorpus e defini-lo com um valor não vazio numa chamada da API UpdateRagCorpus de seguimento.

vertex_feature_store

oneof vector_db: RagVectorDbConfig.VertexFeatureStore

Especifica a sua instância do Vertex AI Feature Store.

vertex_feature_store.feature_view_resource_name

string

O Vertex AI Feature Store FeatureView ao qual o corpus RAG é mapeado.

Formato: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

Não é possível alterar este valor depois de definido. Pode deixá-lo vazio na chamada da API CreateRagCorpus e defini-lo com um valor não vazio numa chamada da API UpdateRagCorpus de seguimento.

vertex_vector_search

oneof vector_db: RagVectorDbConfig.VertexVectorSearch

Especifica a sua instância do Vertex Vector Search.

vertex_vector_search.index

string

Este é o nome do recurso do índice do Vector Search que é usado com o corpus RAG.

Formato: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Não é possível alterar este valor depois de definido. Pode deixá-lo vazio na chamada da API CreateRagCorpus e defini-lo com um valor não vazio numa chamada da API UpdateRagCorpus de seguimento.

vertex_vector_search.index_endpoint

string

Este é o nome do recurso do ponto final do índice do Vector Search que é usado com o corpus RAG.

Formato: projects/{project}/locations/{location}/indexes/{index}

Não é possível alterar este valor depois de definido. Pode deixá-lo vazio na chamada da API CreateRagCorpus e defini-lo com um valor não vazio numa chamada da API UpdateRagCorpus de seguimento.

api_auth.api_key_config.api_key_secret_version

string

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: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

Pode deixá-lo vazio na chamada da API CreateRagCorpus e defini-lo com um valor não vazio numa chamada da API UpdateRagCorpus de seguimento.

rag_embedding_model_config.vertex_prediction_endpoint.endpoint

Opcional: imutável: string

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

display_name

Opcional: string

O nome a apresentar do corpus RAG.

description

Opcional: string

A descrição do corpus RAG.

rag_vector_db.weaviate.http_endpoint

string

O ponto final de HTTP da instância do Weaviate.

Se o seu RagCorpus foi criado com uma configuração Weaviate e este campo nunca foi definido, pode atualizar o ponto final HTTP da instância do Weaviate.

rag_vector_db.weaviate.collection_name

string

A coleção do Weaviate para a qual o corpus de RAG é mapeado.

Se o seu RagCorpus foi criado com uma configuração Weaviate e este campo nunca foi definido, pode atualizar o nome da coleção da instância do Weaviate.

rag_vector_db.pinecone.index_name

string

Este é o nome usado para criar o índice do Pinecone que é usado com o corpus de RAG.

Se o seu RagCorpus foi criado com uma configuração Pinecone e este campo nunca foi definido, pode atualizar o nome do índice da instância do Pinecone.

rag_vector_db.vertex_feature_store.feature_view_resource_name

string

O Vertex AI Feature Store FeatureView ao qual o corpus RAG é mapeado.

Formato: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

Se o seu RagCorpus foi criado com uma configuração Vertex AI Feature Store e este campo nunca foi definido anteriormente, pode atualizá-lo.

rag_vector_db.vertex_vector_search.index

string

Este é o nome do recurso do índice do Vector Search que é usado com o corpus RAG.

Formato: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Se o seu RagCorpus foi criado com uma configuração Vector Search e este campo nunca foi definido anteriormente, pode atualizá-lo.

rag_vector_db.vertex_vector_search.index_endpoint

string

Este é o nome do recurso do ponto final do índice do Vector Search que é usado com o corpus RAG.

Formato: projects/{project}/locations/{location}/indexes/{index}

Se o seu RagCorpus foi criado com uma configuração Vector Search e este campo nunca foi definido anteriormente, pode atualizá-lo.

rag_vector_db.api_auth.api_key_config.api_key_secret_version

string

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: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

Liste os conjuntos de dados RAG

Esta tabela lista os parâmetros usados para listar os corpora de RAG.

Parâmetros

page_size

Opcional: int

O tamanho da página da lista padrão.

page_token

Opcional: string

O símbolo da página da lista padrão. Normalmente, obtido a partir de [ListRagCorporaResponse.next_page_token][] da chamada anterior de [VertexRagDataService.ListRagCorpora][].

Obtenha um corpus RAG

Esta tabela lista os parâmetros usados para obter um corpus RAG.

Parâmetros

name

string

O nome do recurso RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

Elimine um corpus RAG

Esta tabela indica os parâmetros usados para eliminar um corpus RAG.

Parâmetros

name

string

O nome do recurso RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

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

parent

string

O nome do recurso RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

rag_file

Obrigatório: RagFile

O ficheiro a carregar.

upload_rag_file_config

Obrigatório: UploadRagFileConfig

A configuração do RagFile a carregar para o RagCorpus.

RagFile

display_name

Obrigatório: string

O nome a apresentar do ficheiro RAG.

description

Opcional: string

A descrição do ficheiro RAG.

UploadRagFileConfig

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

O número de tokens que cada fragmento tem.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

A sobreposição entre blocos.

Importe ficheiros RAG

Esta tabela lista os parâmetros usados para importar um ficheiro RAG.

Parâmetros

parent

Obrigatório: string

O nome do recurso RagCorpus.

Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

gcs_source

oneof import_source: GcsSource

Localização do Cloud Storage.

Suporta a importação de ficheiros individuais, bem como de diretórios completos do Cloud Storage.

gcs_source.uris

list de string

URI do Cloud Storage que contém o ficheiro de carregamento.

google_drive_source

oneof import_source: GoogleDriveSource

Localização do Google Drive.

Suporta a importação de ficheiros individuais, bem como de pastas do Google Drive.

slack_source

oneof import_source: SlackSource

O canal do Slack onde o ficheiro é carregado.

jira_source

oneof import_source: JiraSource

A consulta do Jira onde o ficheiro é carregado.

share_point_sources

oneof import_source: SharePointSources

As origens do SharePoint onde o ficheiro é carregado.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

O número de tokens que cada fragmento tem.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

A sobreposição entre blocos.

rag_file_parsing_config

Opcional: RagFileParsingConfig

Especifica a configuração de análise para RagFiles.

Se este campo não estiver definido, a RAG usa o analisador predefinido.

max_embedding_requests_per_min

Opcional: int32

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

resource_ids.resource_id

Obrigatório: string

O ID do recurso do Google Drive.

resource_ids.resource_type

Obrigatório: string

O tipo de recurso do Google Drive.

SlackSource

channels.channels

Repetido: SlackSource.SlackChannels.SlackChannel

Informações do canal do Slack, incluindo o ID e o intervalo de tempo a importar.

channels.channels.channel_id

Obrigatório: string

O ID do canal do Slack.

channels.channels.start_time

Opcional: google.protobuf.Timestamp

A data/hora de início das mensagens a importar.

channels.channels.end_time

Opcional: google.protobuf.Timestamp

A indicação de data/hora de fim das mensagens a importar.

channels.api_key_config.api_key_secret_version

Obrigatório: string

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.
Consulte: https://api.slack.com/tutorials/tracks/getting-a-token.

Formato: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

JiraSource

jira_queries.projects

Repetido: string

Uma lista de projetos do Jira a importar na íntegra.

jira_queries.custom_queries

Repetido: string

Uma lista de consultas personalizadas do Jira a importar. Para informações sobre a JQL (Jira Query Language), consulte o
apoio técnico do Jira

jira_queries.email

Obrigatório: string

O endereço de email do Jira.

jira_queries.server_uri

Obrigatório: string

O URI do servidor do Jira.

jira_queries.api_key_config.api_key_secret_version

Obrigatório: string

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.
Consulte: https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/

Formato: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

SharePointSources

share_point_sources.sharepoint_folder_path

oneof em folder_source: string

O caminho da pasta do SharePoint a partir da qual quer fazer a transferência.

share_point_sources.sharepoint_folder_id

oneof em folder_source: string

O ID da pasta do SharePoint a partir da qual quer fazer a transferência.

share_point_sources.drive_name

oneof em drive_source: string

O nome da unidade a partir da qual quer fazer a transferência.

share_point_sources.drive_id

oneof em drive_source: string

O ID da unidade a partir da qual quer fazer a transferência.

share_point_sources.client_id

string

O ID da aplicação para a app registada no portal do Microsoft Azure.
A aplicação também tem de ser configurada com as autorizações do MS Graph "Files.ReadAll", "Sites.ReadAll" e BrowserSiteLists.Read.All.

share_point_sources.client_secret.api_key_secret_version

Obrigatório: string

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: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

share_point_sources.tenant_id

string

Identificador exclusivo da instância do Azure Active Directory.

share_point_sources.sharepoint_site_name

string

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

layout_parser

oneof parser: RagFileParsingConfig.LayoutParser

O analisador de esquemas a usar para RagFiles.

layout_parser.processor_name

string

O nome completo do recurso de um processador ou de uma versão do processador do Document AI.

Formato:
projects/{project_id}/locations/{location}/processors/{processor_id}
projects/{project_id}/locations/{location}/processors/{processor_id}/processorVersions/{processor_version_id}

layout_parser.max_parsing_requests_per_min

string

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.

llm_parser

oneof parser: RagFileParsingConfig.LlmParser

O analisador LLM a usar para RagFiles.

llm_parser.model_name

string

O nome do recurso de um modelo LLM.

Formato:
projects/{project_id}/locations/{location}/publishers/{publisher}/models/{model}

llm_parser.max_parsing_requests_per_min

string

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

name

string

O nome do recurso RagFile. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

Elimine um ficheiro RAG

Esta tabela lista os parâmetros usados para eliminar um ficheiro RAG.

Parâmetros

name

string

O nome do recurso RagFile. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

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

parent

Obrigatório: string

O nome do recurso da localização a obter RagContexts.
Os utilizadores têm de ter autorização para fazer uma chamada no projeto.

Formato: projects/{project}/locations/{location}

vertex_rag_store

VertexRagStore

A origem de dados para o Vertex RagStore.

query

Obrigatório: RagQuery

Consulta de obtenção de RAG única.

VertexRagStore
VertexRagStore

rag_resources

lista: RagResource

A representação da origem da RAG. Pode ser usado para especificar apenas o corpus ou RagFiles. Só suporta um conjunto de dados ou vários ficheiros de um conjunto de dados.

rag_resources.rag_corpus

Opcional: string

RagCorpora nome do recurso.

Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}

rag_resources.rag_file_ids

lista: string

Uma lista de RagFile recursos.

Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file}

RagQuery

text

string

A consulta em formato de texto para obter contextos relevantes.

rag_retrieval_config

Opcional: RagRetrievalConfig

A configuração de obtenção da consulta.

RagRetrievalConfig

top_k

Opcional: int32

O número de contextos a obter.

hybrid_search.alpha

Opcional: float

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.

filter.vector_distance_threshold

oneof vector_db_threshold: double

Só devolve contextos com uma distância vetorial inferior ao limite.

filter.vector_similarity_threshold

oneof vector_db_threshold: double

Devolve apenas contextos com uma semelhança vetorial superior ao limite.

ranking.rank_service.model_name

Opcional: string

O nome do modelo do serviço de classificação.

Exemplo: semantic-ranker-512@latest

ranking.llm_ranker.model_name

Opcional: string

O nome do modelo usado para a classificação.

Exemplo: gemini-2.5-flash

Parâmetros de previsão

Esta tabela apresenta os parâmetros de previsão.

GenerateContentRequest

tools.retrieval.vertex_rag_store

VertexRagStore

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
Deve receber um código de estado de êxito (2xx).

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
Deve receber um código de estado de êxito (2xx).

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âmetro page_size.
  • PAGE_TOKEN: o símbolo da página de lista padrão. Obtido normalmente através de ListRagCorporaResponse.next_page_token da chamada VertexRagDataService.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
Deve receber um código de estado de êxito (`2xx`) e uma lista de 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
Uma resposta bem-sucedida devolve o recurso 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
Uma resposta bem-sucedida devolve o 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:

  1. O ficheiro já foi importado.
  2. O ficheiro não foi alterado.
  3. 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
Uma resposta bem-sucedida devolve o recurso 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âmetro page_size.
  • PAGE_TOKEN: o símbolo da página de lista padrão. Obtido normalmente através de ListRagFilesResponse.next_page_token da chamada VertexRagDataService.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
Deve receber um código de estado de êxito (2xx) juntamente com uma lista de 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
Uma resposta bem-sucedida devolve o recurso 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
Uma resposta bem-sucedida devolve o recurso 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
Deve receber um código de estado de êxito (2xx) e uma lista de 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
Uma resposta bem-sucedida devolve o conteúdo gerado com citações.

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

  1. Na Google Cloud consola, aceda à página RAG Engine.

    Aceda ao motor RAG

  2. Selecione a região em que o seu motor RAG está a ser executado. A sua lista de conjuntos de dados RAG está atualizada.
  3. Clique em Configurar motor RAG. É apresentado o painel Configurar motor RAG. Pode ver o nível selecionado para o seu motor RAG.
  4. 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

  1. Na Google Cloud consola, aceda à página RAG Engine.

    Aceda ao motor RAG

  2. Selecione a região em que o seu motor RAG está a ser executado. A sua lista de conjuntos de dados RAG está atualizada.
  3. Clique em Configurar motor RAG. É apresentado o painel Configurar motor RAG.
  4. Selecione o nível no qual quer executar o motor RAG.
  5. 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

  1. Na Google Cloud consola, aceda à página RAG Engine.

    Aceda ao motor RAG

  2. Selecione a região em que o seu motor RAG está a ser executado. A sua lista de conjuntos de dados RAG está atualizada.
  3. Clique em Configurar motor RAG. É apresentado o painel Configurar motor RAG.
  4. Selecione o nível no qual quer executar o motor RAG.
  5. 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

  1. Na Google Cloud consola, aceda à página RAG Engine.

    Aceda ao motor RAG

  2. Selecione a região em que o seu motor RAG está a ser executado. A sua lista de conjuntos de dados RAG está atualizada.
  3. Clique em Configurar motor RAG. É apresentado o painel Configurar motor RAG.
  4. Clique em Eliminar motor RAG. É apresentada uma caixa de diálogo de confirmação.
  5. Verifique que está prestes a eliminar os seus dados no motor RAG escrevendo delete e, de seguida, clique em Confirmar.
  6. 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?