O mecanismo RAG da Vertex AI é um componente da plataforma Vertex AI, que facilita a geração aumentada de recuperação (RAG, na sigla em inglês). O mecanismo RAG permite que modelos de linguagem grandes (LLMs) acessem e incorporem dados de fontes de conhecimento externas, como documentos e bancos de dados. Ao usar a RAG, os LLMs podem gerar respostas mais precisas e informativas.
Exemplo de sintaxe
Esta seção fornece a sintaxe para criar um corpus RAG.
curl
PROJECT_ID: Your project ID. LOCATION: The region to process the request. curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora\ -d '{ "display_name" : "...", "description": "..." }'
Python
corpus = rag.create_corpus(display_name=..., description=...) print(corpus)
Lista de parâmetros
Esta seção lista o seguinte:
Parâmetros | Exemplos |
---|---|
Consulte Parâmetros de gerenciamento de corpus. | Consulte Exemplos de gerenciamento de corpus. |
Consulte Parâmetros de gerenciamento de arquivos. | Consulte Exemplos de gerenciamento de arquivos. |
Parâmetros de gerenciamento do corpus
Para informações sobre um corpus RAG, consulte Gerenciamento de corpus.
Criar um corpus RAG
Esta tabela lista os parâmetros usados para criar um corpus RAG.
Solicitação de corpo
Parâmetros | |
---|---|
|
Obrigatório: O nome de exibição do corpus RAG. |
|
Opcional: A descrição do corpus RAG. |
|
Opcional: imutável: A configuração dos DBs de vetor. |
|
Opcional: A configuração da Vertex AI para Pesquisa. Formato: |
RagVectorDbConfig
Parâmetros | |
---|---|
|
Se nenhum banco de dados vetorial for especificado, |
|
Especifica sua instância do Weaviate. |
|
O endpoint HTTP da instância do Weaviate. Esse valor não pode ser alterado depois de definido. Você pode deixar esse campo em branco na
chamada de API |
|
A coleção do Weaviate com a qual o corpus RAG é mapeado. Esse valor não pode ser alterado depois de definido. Você pode deixar esse campo em branco na
chamada de API |
|
Especifica sua instância do Pinecone. |
|
Esse é o nome usado para criar o índice da Pinecone que é usado com o corpus RAG. Esse valor não pode ser alterado depois de definido. Você pode deixar esse campo em branco na
chamada de API |
|
Especifica sua instância do Feature Store da Vertex AI. |
|
O Formato: Esse valor não pode ser alterado depois de definido. Você pode deixar esse campo em branco na
chamada de API |
|
Especifica sua instância do Vertex Vector Search. |
|
É o nome do recurso do índice de pesquisa vetorial usado com o corpus de RAG. Formato: Esse valor não pode ser alterado depois de definido. Você pode deixar esse campo em branco na
chamada de API |
|
É o nome do recurso do endpoint do índice da Pesquisa vetorial usado com o corpus de RAG. Formato: Esse valor não pode ser alterado depois de definido. Você pode deixar esse campo em branco na
chamada de API |
|
Esse é o nome completo do recurso do secret armazenado no Secret Manager, que contém a chave da API Weaviate ou Pinecone, dependendo da escolha do banco de dados vetorial. Formato: Você pode deixar esse campo em branco na chamada de API |
|
Opcional: imutável: O modelo de embedding a ser usado para o corpus RAG. Esse valor não pode ser alterado depois de definido. Se você deixar em branco, usaremos text-embedding-004 como o modelo de embedding. |
Atualizar um corpus RAG
Esta tabela lista os parâmetros usados para atualizar um corpus da RAG.
Solicitação de corpo
Parâmetros | |
---|---|
|
Opcional: O nome de exibição do corpus RAG. |
|
Opcional: A descrição do corpus RAG. |
|
O endpoint HTTP da instância do Weaviate. Se o |
|
A coleção do Weaviate com a qual o corpus RAG é mapeado. Se o |
|
Esse é o nome usado para criar o índice da Pinecone que é usado com o corpus RAG. Se o |
|
O Formato: Se o |
|
É o nome do recurso do índice de pesquisa vetorial usado com o corpus de RAG. Formato: Se o |
|
É o nome do recurso do endpoint do índice da Pesquisa vetorial usado com o corpus de RAG. Formato: Se o |
|
O nome completo do recurso do secret armazenado no Secret Manager, que contém sua chave de API Weaviate ou Pinecone, depende da escolha do banco de dados de vetor. Formato: |
Listar corpora RAG
Esta tabela lista os parâmetros usados para listar corpora RAG.
Parâmetros | |
---|---|
|
Opcional: O tamanho de página de lista padrão. |
|
Opcional: O token de página de lista padrão. Normalmente recebido de |
Acessar um corpus RAG
Esta tabela lista os parâmetros usados para conseguir um corpus RAG.
Parâmetros | |
---|---|
|
|
Excluir um corpus RAG
Esta tabela lista os parâmetros usados para excluir um corpus de RAG.
Parâmetros | |
---|---|
|
|
Parâmetros de gerenciamento de arquivos
Para informações sobre um arquivo RAG, consulte Gerenciamento de arquivos.
Fazer upload de um arquivo RAG
Esta tabela lista os parâmetros usados para fazer upload de um arquivo RAG.
Solicitação de corpo
Parâmetros | |
---|---|
|
|
|
Obrigatório: O arquivo a ser enviado. |
|
Obrigatório: A configuração para o |
RagFile |
|
---|---|
|
Obrigatório: O nome de exibição do arquivo RAG. |
|
Opcional: A descrição do arquivo RAG. |
UploadRagFileConfig |
|
---|---|
|
Número de tokens que cada bloco tem. |
|
A sobreposição entre os blocos. |
Importar arquivos RAG
Esta tabela lista os parâmetros usados para importar um arquivo RAG.
Parâmetros | |
---|---|
|
Obrigatório:
Formato: |
|
Local do Cloud Storage. Suporta a importação de arquivos individuais e diretórios inteiros do Cloud Storage. |
|
URI do Cloud Storage que contém o arquivo de upload |
|
Local do Google Drive. Suporta a importação de arquivos individuais e pastas do Google Drive. |
|
O canal do Slack em que o arquivo foi enviado. |
|
A consulta do Jira em que o arquivo foi enviado. |
|
As origens do SharePoint em que o arquivo foi enviado. |
|
Número de tokens que cada bloco tem. |
|
A sobreposição entre os blocos. |
|
Opcional: Especifica a configuração de análise para Se esse campo não estiver definido, o RAG vai usar o analisador padrão. |
|
Opcional: O número máximo de consultas por minuto que esse job pode fazer no modelo de fusão especificado no corpus. Esse valor é específico para esse job e não é compartilhado com outros jobs de importação. Consulte a página "Cotas" no projeto para definir um valor adequado. Se não for especificado, um valor padrão de 1.000 QPM será usado. |
GoogleDriveSource |
|
---|---|
|
Obrigatório: O o ID do recurso do Google Drive. |
|
Obrigatório: O tipo do recurso do Google Drive. |
SlackSource |
|
---|---|
|
Repetido: Informações do canal do Slack, incluindo o ID e o período de importação. |
|
Obrigatório: O ID do canal do Slack. |
|
Opcional: Carimbo de data/hora inicial das mensagens a serem importadas. |
|
Opcional: O carimbo de data/hora final das mensagens a serem importadas. |
|
Obrigatório: O nome completo do recurso do secret armazenado no Secret Manager,
que contém um token de acesso ao canal do Slack que tem acesso aos IDs do canal do Slack.
Formato: |
JiraSource |
|
---|---|
|
Repetido: Uma lista de projetos do Jira para importar na íntegra. |
|
Repetido: Uma lista de consultas personalizadas do Jira para importar. Para informações sobre a linguagem de consulta do Jira (JQL), consulte
|
|
Obrigatório: O endereço de e-mail do Jira. |
|
Obrigatório: O URI do servidor do Jira. |
|
Obrigatório: O nome completo do recurso do secret armazenado no Secret Manager,
que contém a chave de API do Jira com acesso aos IDs do canal do Slack.
Formato: |
SharePointSources |
|
---|---|
|
O caminho da pasta do SharePoint de onde o download será feito. |
|
O ID da pasta do SharePoint de onde o download será feito. |
|
O nome da unidade de onde o download será feito. |
|
O ID da unidade de onde o download será feito. |
|
O ID do aplicativo registrado no portal do Microsoft Azure.
|
|
Obrigatório: O nome completo do recurso do secret armazenado no Secret Manager, que contém o secret do aplicativo registrado no Azure. Formato: |
|
Identificador exclusivo da instância do Azure Active Directory. |
|
O nome do site do SharePoint de onde o download será feito. Pode ser o nome ou o ID do site. |
RagFileParsingConfig |
|
---|---|
|
O analisador de layout a ser usado para |
|
O nome completo do recurso de um processador ou versão do Document AI. Formato:
|
|
O número máximo de solicitações que o job pode fazer ao processador da Document AI por minuto. Consulte https://cloud.google.com/document-ai/quotas e a página de cotas do seu projeto para definir um valor adequado. Se não for especificado, um valor padrão de 120 QPM será usado. |
Acessar um arquivo RAG
Esta tabela lista os parâmetros usados para receber um arquivo RAG.
Parâmetros | |
---|---|
|
|
Excluir um arquivo RAG
Esta tabela lista os parâmetros usados para excluir um arquivo RAG.
Parâmetros | |
---|---|
|
|
Recuperação e previsão
Esta seção lista os parâmetros de recuperação e previsão.
Parâmetros de recuperação
Esta tabela lista os parâmetros da API retrieveContexts
.
Parâmetros | |
---|---|
|
Obrigatório: O nome do recurso do local a ser recuperado Formato: |
|
A fonte de dados do Vertex RagStore. |
|
Obrigatório: Consulta de recuperação de RAG única. |
VertexRagStore
VertexRagStore |
|
---|---|
|
lista: A representação da origem do RAG. Ele pode ser usado para especificar apenas o corpus ou |
|
Opcional: Nome do recurso Formato: |
|
lista: Uma lista de recursos Formato: |
RagQuery |
|
---|---|
|
A consulta em formato de texto para receber contextos relevantes. |
|
Opcional: A configuração de recuperação da consulta. |
RagRetrievalConfig |
|
---|---|
|
Opcional: O número de contextos a serem recuperados. |
|
Opcional: O valor Alfa controla o peso entre os resultados de pesquisa de vetores densos e esparsos. O intervalo é [0, 1], em que 0 significa apenas pesquisa vetorial esparsa e 1 significa apenas pesquisa vetorial densa. O valor padrão é 0,5, que equilibra a pesquisa de vetor esparsa e densa igualmente. A Pesquisa híbrida está disponível apenas para o Weaviate. |
|
Só retorna contextos com uma distância vetorial menor que o limite. |
|
Só retorna contextos com similaridade vetorial maior que o limite. |
|
Opcional: O nome do modelo do serviço de classificação. Exemplo: |
|
Opcional: O nome do modelo usado para classificação. Exemplo: |
Parâmetros de previsão
Esta tabela lista os parâmetros de previsão.
GenerateContentRequest |
|
---|---|
|
Definido para usar uma fonte de dados com a tecnologia da Vertex AI para RAG. |
Consulte VertexRagStore para mais detalhes.
Exemplos de gerenciamento de corpus
Esta seção apresenta exemplos de como usar a API para gerenciar seu corpus RAG.
Criar um exemplo de corpus RAG
Este exemplo de código demonstra como criar um corpus RAG.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- CORPUS_DISPLAY_NAME: o nome de exibição 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 da solicitação:
{ "display_name" : "CORPUS_DISPLAY_NAME", "description": "CORPUS_DESCRIPTION", }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "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
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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 a seguir demonstra como criar um corpus RAG usando a 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"
}'
SDK da Vertex AI para Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API SDK da Vertex AI para Python.
Atualizar um exemplo de corpus RAG
É possível atualizar o corpus de RAG com um novo nome de exibição, descrição e configuração do banco de dados de vetores. No entanto, não é possível mudar os seguintes parâmetros no corpus RAG:
- O tipo de banco de dados de vetores. Por exemplo, não é possível mudar o banco de dados de vetores do Weaviate para o Feature Store da Vertex AI.
- Se você estiver usando a opção de banco de dados gerenciado, não será possível atualizar a configuração do banco de dados vetorial.
Estes exemplos demonstram como atualizar um corpus RAG.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- CORPUS_ID: o ID do corpus da RAG.
- CORPUS_DISPLAY_NAME: o nome de exibição 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 da solicitação:
{ "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 a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X 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
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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 corpora RAG.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- PAGE_SIZE: tamanho de página de lista padrão. É possível ajustar o número de
RagCorpora
a serem retornados por página atualizando o parâmetropage_size
. - PAGE_TOKEN: o token de página de lista padrão. Extraído normalmente usando o
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 a solicitação, 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
especificado.
SDK da Vertex AI para Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API SDK da Vertex AI para Python.
Acessar um exemplo de corpus RAG
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
Para enviar a solicitação, 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 em um exemplo para demonstrar como
RagCorpus
usa o campo rag_embedding_model_config
no vector_db_config
, que aponta para o
modelo de embedding escolhido.
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/
SDK da Vertex AI para Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API SDK da Vertex AI para Python.
Excluir um exemplo de corpus RAG
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
.
Método HTTP e URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
Para enviar a solicitação, 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
.
SDK da Vertex AI para Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API SDK da Vertex AI para Python.
Exemplos de gerenciamento de arquivos
Esta seção apresenta exemplos de como usar a API para gerenciar arquivos RAG.
Fazer upload de um exemplo de arquivo RAG
REST
Antes de usar os dados da solicitação, faça as substituições a seguir: 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 sua solicitação, 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"
SDK da Vertex AI para Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API SDK da Vertex AI para Python.
Exemplo de importação de arquivos RAG
É possível importar arquivos e pastas do Drive ou do Cloud Storage.
O response.skipped_rag_files_count
se refere ao número de arquivos que
foram ignorados durante a importação. Um arquivo é ignorado quando as seguintes condições são
atendidas:
- O arquivo já foi importado.
- O arquivo não foi alterado.
- A configuração de divisão em blocos do arquivo não foi alterada.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
. - GCS_URIS: uma lista de locais do Cloud Storage. Exemplo:
gs://my-bucket1, gs://my-bucket2
. - CHUNK_SIZE (opcional): número de tokens que cada bloco precisa ter.
- CHUNK_OVERLAP (opcional): número de tokens sobrepostos entre blocos.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
Corpo JSON da solicitação:
{ "import_rag_files_config": { "gcs_source": { "uris": "GCS_URIS" }, "rag_file_chunking_config": { "chunk_size": CHUNK_SIZE, "chunk_overlap": CHUNK_OVERLAP } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "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
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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 a seguir demonstra como importar um arquivo do Cloud Storage. Use o campo de controle max_embedding_requests_per_min
para limitar a taxa em que o RAG Engine chama o modelo de embedding durante o
processo de indexação ImportRagFiles
. O campo tem um valor padrão de 1000
chamadas por minuto.
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 a seguir demonstra como importar um arquivo do Drive. Use o campo de controle max_embedding_requests_per_min
para
limitar a taxa em que o RAG Engine chama o modelo de embedding durante o
processo de indexação ImportRagFiles
. O campo tem um valor padrão de 1000
chamadas por minuto.
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
SDK da Vertex AI para Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API SDK da Vertex AI para Python.
Exemplo de lista de arquivos RAG
Este exemplo de código demonstra como listar arquivos RAG.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
. - PAGE_SIZE: tamanho de página de lista padrão. É possível ajustar o número de
RagFiles
a serem retornados por página atualizando o parâmetropage_size
. - PAGE_TOKEN: o token de página de lista padrão. Extraído normalmente usando o
ListRagFilesResponse.next_page_token
da chamadaVertexRagDataService.ListRagFiles
anterior.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte comando:
curl -X GET \
-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
especificado.
SDK da Vertex AI para Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API SDK da Vertex AI para Python.
Acessar um exemplo de arquivo RAG
Este exemplo de código demonstra como conseguir um arquivo RAG.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
. - RAG_FILE_ID: o ID do recurso
RagFile
.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte comando:
curl -X GET \
-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
.
SDK da Vertex AI para Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API SDK da Vertex AI para Python.
Exemplo de exclusão de um arquivo RAG
Este exemplo de código demonstra como excluir um arquivo RAG.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
. - RAG_FILE_ID: o ID do recurso
RagFile
. Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}
.
Método HTTP e URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte comando:
curl -X DELETE \
-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
.
SDK da Vertex AI para Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API SDK da Vertex AI para Python.
Consultar recuperação
Quando um usuário faz uma pergunta ou fornece uma solicitação, o componente de recuperação no RAG pesquisa em sua base de conhecimento para encontrar informações relevantes para a consulta.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: a região para processar a solicitação.
- PROJECT_ID: o ID do projeto.
- RAG_CORPUS_RESOURCE: o nome do recurso
RagCorpus
. Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - VECTOR_DISTANCE_THRESHOLD: somente contextos com uma distância vetorial menor que o limite são retornados.
- TEXT: o texto da consulta para receber contextos relevantes.
- SIMILARITY_TOP_K: o número dos principais contextos a serem recuperados.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts
Corpo JSON da solicitação:
{ "vertex_rag_store": { "rag_resources": { "rag_corpus": "RAG_CORPUS_RESOURCE" }, "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD }, "query": { "text": "TEXT", "similarity_top_k": SIMILARITY_TOP_K } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "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
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
relacionadas.
SDK da Vertex AI para Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API SDK da Vertex AI para Python.
Geração
O LLM gera uma resposta fundamentada usando os contextos recuperados.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- MODEL_ID: modelo LLM para geração de conteúdo. Exemplo:
gemini-1.5-pro-002
- GENERATION_METHOD: método LLM para geração de conteúdo. Opções:
generateContent
,streamGenerateContent
- INPUT_PROMPT: o texto enviado ao LLM para geração de conteúdo. Tente usar um comando relevante para os arquivos de Rag enviados.
- RAG_CORPUS_RESOURCE: o nome do recurso
RagCorpus
. Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K (opcional): o número dos principais contextos a serem recuperados.
- VECTOR_DISTANCE_THRESHOLD (opcional): os contextos com uma distância vetorial menor que o limite são retornados.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD
Corpo JSON da solicitação:
{ "contents": { "role": "user", "parts": { "text": "INPUT_PROMPT" } }, "tools": { "retrieval": { "disable_attribution": false, "vertex_rag_store": { "rag_resources": { "rag_corpus": "RAG_CORPUS_RESOURCE" }, "similarity_top_k": SIMILARITY_TOP_K, "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD } } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "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
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
SDK da Vertex AI para Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API SDK da Vertex AI para Python.
A seguir
- Para saber mais sobre os modelos de geração aceitos, consulte Modelos de IA generativa compatíveis com RAG.
- Para saber mais sobre os modelos de embedding aceitos, consulte Modelos de embedding.
- Para saber mais sobre modelos abertos, consulte Modelos abertos.
- Para saber mais sobre o RAG Engine, consulte a Visão geral do RAG Engine.