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 RAG Engine permite que os 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
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" : "...", "description": "...", "rag_embedding_model_config": { "vertex_prediction_endpoint": { "endpoint": "..." } } }'
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.
Parâmetros | |
---|---|
|
Opcional: O nome de exibição do corpus RAG. |
|
Opcional: A descrição do corpus RAG. |
|
Opcional: O modelo de embedding a ser usado para o corpus RAG. |
|
Opcional: O endpoint HTTPS ou HTTP da instância do Weaviate. |
|
Opcional: A coleção do Weaviate com a qual o corpus RAG é mapeado. |
|
Opcional: O Formato: |
|
Opcional: O nome do recurso da versão do secret do Secret Manager que armazena a chave de API. Formato: |
|
Esse campo ajuda a definir a escolha de
um banco de dados de vetor que você quer associar ao seu corpus RAG e
precisa ser definido durante a chamada de API |
|
Esse é o nome usado para
criar o índice da Pinecone que é usado com o corpus RAG. É possível definir o
nome durante a chamada |
|
É o nome completo do recurso do secret armazenado no Secret Manager, que contém sua chave de API Pinecone. É possível definir o
nome durante a chamada |
|
Esse campo ajuda a definir a
escolha de um banco de dados de vetor que você quer associar ao seu corpus RAG e
precisa ser definido durante a chamada de API |
|
É o nome do recurso da Pesquisa vetorial usada com o corpus do RAG. É possível definir o nome durante a chamada |
|
É o nome do recurso do endpoint do índice da Pesquisa vetorial usado com o corpus de RAG. É possível definir o nome durante a chamada |
Atualizar um corpus RAG
Esta tabela lista os parâmetros usados para atualizar um corpus da RAG.
Nome | Descrição |
---|---|
display_name |
Opcional: string O nome de exibição do corpus RAG. |
description |
Opcional: string A exibição do corpus RAG. |
rag_vector_db_config.weaviate.http_endpoint |
Opcional: string O endpoint HTTPS ou HTTP da instância do Weaviate. |
rag_vector_db_config.weaviate.collection_name |
Opcional: string A coleção do Weaviate com a qual o corpus de RAG é mapeado. |
rag_vector_db_config.vertex_feature_store.feature_view_resource_name |
Opcional: string A visualização de atributos da Vertex AI Feature Store com que o corpus de RAG é mapeado. Formato: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view} |
api_auth.api_key_config.api_key_secret_version |
Opcional: string O nome do recurso da versão do secret do Secret Manager que armazena a chave de API. Formato: projects/{project}/secrets/{secret}/versions/{version} |
|
Esse campo ajuda a definir a escolha de
um banco de dados de vetor que você quer associar ao seu corpus RAG. Ele
precisa ser definido durante a chamada de API |
|
Esse é o nome usado para
criar o índice Pinecone usado com o corpus RAG. É possível definir o
nome durante a chamada |
|
É o nome completo do recurso do secret armazenado no Secret Manager, que contém sua chave de API Pinecone. É possível definir o
nome durante a chamada |
|
Esse campo ajuda a definir a
escolha de um banco de dados de vetor que você quer associar ao seu corpus RAG e
precisa ser definido durante a chamada de API |
|
É o nome do recurso da Pesquisa vetorial usada com o corpus do RAG. É possível definir o nome durante a chamada |
|
É o nome do recurso do endpoint do índice da Pesquisa vetorial usado com o corpus de RAG. É possível definir o nome durante a chamada |
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 | |
---|---|
|
O ID do recurso |
Excluir um corpus RAG
Esta tabela lista os parâmetros usados para excluir um corpus RAG.
Parâmetros | |
---|---|
|
O ID do recurso |
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.
Parâmetros | |
---|---|
|
O ID do recurso |
|
Opcional: O nome de exibição da RagCorpus. |
|
Opcional: A descrição da RagCorpus. |
Importar arquivos RAG
Esta tabela lista os parâmetros usados para importar um arquivo RAG.
Parâmetros | |
---|---|
|
O ID do recurso |
|
URI do Cloud Storage que contém o arquivo de upload |
|
Opcional: O tipo do recurso do Google Drive. |
|
Opcional: O o ID do recurso do Google Drive. |
|
Opcional: O número de tokens que cada bloco precisa ter. |
|
Opcional: O número de tokens se sobrepõem entre dois blocos. |
|
Opcional: Número que representa um limite para restringir a taxa em que o RAG Engine chama o modelo de embedding durante o processo de indexação. O limite padrão é |
|
O ID do recurso |
|
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 arquivo RAG
Esta tabela lista os parâmetros usados para receber um arquivo RAG.
Parâmetros | |
---|---|
|
O ID do recurso |
Excluir um arquivo RAG
Esta tabela lista os parâmetros usados para excluir um arquivo RAG.
Parâmetros | |
---|---|
|
O ID do recurso |
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 de recuperação.
Parâmetro | Descrição |
---|---|
similarity_top_k |
Controla o número máximo de contextos recuperados. |
vector_distance_threshold |
Somente contextos com uma distância menor que o limite são considerados. |
Parâmetros de Prediction
Esta tabela lista os parâmetros de previsão.
Parâmetros | |
---|---|
|
O modelo LLM para geração de conteúdo. |
|
O nome do recurso RagCorpus. Formato: |
|
Texto enviado ao LLM para geração de conteúdo. Valor máximo: lista |
|
Opcional: Somente contextos com uma distância vetorial menor que o limite são retornados. |
|
Opcional: O número dos principais contextos a serem recuperados. |
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
. - RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT: o modelo de embedding 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", "rag_embedding_model_config_endpoint": "RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT" }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora" | Select-Object -Expand Content
O exemplo a seguir demonstra como criar um corpus RAG usando a API REST.
// Either your first party publisher model or fine-tuned endpoint
// Example: projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/textembedding-gecko@003
// or
// Example: projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/12345
ENDPOINT_NAME=${RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT}
// Corpus display name
// Such as "my_test_corpus"
CORPUS_DISPLAY_NAME=YOUR_CORPUS_DISPLAY_NAME
// CreateRagCorpus
// Input: ENDPOINT, PROJECT_ID, CORPUS_DISPLAY_NAME
// Output: CreateRagCorpusOperationMetadata
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_embedding_model_config" : {
"vertex_prediction_endpoint": {
"endpoint": '\""${ENDPOINT_NAME}"\"'
}
}
}'
// Poll the operation status.
// The last component of the RagCorpus "name" field is the server-generated
// rag_corpus_id: (only Bold part)
// projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/7454583283205013504.
OPERATION_ID=OPERATION_ID
poll_op_wait ${OPERATION_ID}
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
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 de 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.
Python
Para saber como instalar ou atualizar o SDK da Vertex AI, consulte Instalar o SDK da Vertex AI. Para mais informações, consulte a documentação de referência da API Python.
from vertexai.preview import rag
import vertexai
# TODO(developer): Update and un-comment on the following lines:
# PROJECT_ID = "YOUR_PROJECT_ID"
# corpus_name = "YOUR_CORPUS_NAME"
# e.g. "projects/1234567890/locations/us-central1/ragCorpora/1234567890'"
# display_name = "test_corpus"
# description = "Corpus Description"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")
corpus = rag.update_corpus(
corpus_name=corpus_name,
display_name=display_name,
description=description,
)
print(corpus)
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.
CORPUS_ID: The corpus ID of your RAG corpus.
CORPUS_DISPLAY_NAME: The display name of the RAG corpus.
CORPUS_DESCRIPTION: The description of the RAG corpus.
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}
}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado "request.json" e execute o comando a seguir:
curl -X PATH \
-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 }
Save the request body in a file named request.json, and execute the following command:
```sh
$headers = @{ }
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 \
"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:
$headers = @{ }
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.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Acessar um 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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
PowerShell
execute o seguinte comando:
$headers = @{ }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | 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
, que aponta para o modelo de embedding escolhido.
// Server-generated rag_corpus_id in CreateRagCorpus
RAG_CORPUS_ID=RAG_CORPUS_ID
// GetRagCorpus
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID
// Output: RagCorpus
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${ENDPOINT}/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://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora"
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
PowerShell
execute o seguinte comando:
$headers = @{ }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
DeleteOperationMetadata
.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
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 abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação.
- RAG_CORPUS_ID: o ID do recurso
RagCorpus
. - INPUT_FILE: o caminho de um arquivo local.
- FILE_DISPLAY_NAME: o nome de exibição do
RagFile
. - RAG_FILE_DESCRIPTION: a descrição do
RagFile
.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload
Corpo JSON da solicitação:
{ "rag_file": { "display_name": "FILE_DISPLAY_NAME", "description": "RAG_FILE_DESCRIPTION" } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome INPUT_FILE
e execute o comando a seguir:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @INPUT_FILE \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome INPUT_FILE
e execute o comando a seguir:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile INPUT_FILE `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload" | Select-Object -Expand Content
RagFile
. O último componente do campo RagFile.name
é o rag_file_id
gerado pelo servidor.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Exemplo de importação de arquivos RAG
É possível importar arquivos e pastas do Drive ou do
Cloud Storage. Use response.metadata
para conferir falhas
parciais, tempo de solicitação e tempo de resposta no objeto response
do SDK.
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
. - DRIVE_RESOURCE_ID: o ID do recurso do Drive. Exemplos:
https://drive.google.com/file/d/ABCDE
https://drive.google.com/corp/drive/u/0/folders/ABCDEFG
- DRIVE_RESOURCE_TYPE: tipo do recurso do Drive. Opções:
RESOURCE_TYPE_FILE
- ArquivoRESOURCE_TYPE_FOLDER
- Pasta- CHUNK_SIZE (opcional): número de tokens que cada bloco precisa ter.
- CHUNK_OVERLAP (opcional): número de tokens sobrepostos entre blocos.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
Corpo JSON da solicitação:
{ "import_rag_files_config": { "gcs_source": { "uris": GCS_URIS }, "google_drive_source": { "resource_ids": { "resource_id": DRIVE_RESOURCE_ID, "resource_type": DRIVE_RESOURCE_TYPE }, } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
ImportRagFilesOperationMetadata
.
O exemplo a seguir demonstra como importar um arquivo do Cloud Storage. Use o campo de controle max_embedding_requests_per_min
para limitar a taxa em que o RAG Engine chama o modelo de embedding durante o
processo de indexação ImportRagFiles
. O campo tem um valor padrão de 1000
chamadas por minuto.
// Cloud Storage bucket/file location.
// Such as "gs://rag-e2e-test/"
GCS_URIS=YOUR_GCS_LOCATION
// Enter the QPM rate to limit RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT
// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID, GCS_URIS
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
"import_rag_files_config": {
"gcs_source": {
"uris": '\""${GCS_URIS}"\"'
},
"rag_file_chunking_config": {
"chunk_size": 512
},
"max_embedding_requests_per_min": '"${EMBEDDING_MODEL_QPM_RATE}"'
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID=OPERATION_ID
poll_op_wait ${OPERATION_ID}
O exemplo a seguir demonstra como importar um arquivo do Drive. Use o campo de controle max_embedding_requests_per_min
para
limitar a taxa em que o RAG Engine chama o modelo de embedding durante o
processo de indexação ImportRagFiles
. O campo tem um valor padrão de 1000
chamadas por minuto.
// Google Drive folder location.
FOLDER_RESOURCE_ID=YOUR_GOOGLE_DRIVE_FOLDER_RESOURCE_ID
// Enter the QPM rate to limit RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT
// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID, FOLDER_RESOURCE_ID
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
"import_rag_files_config": {
"google_drive_source": {
"resource_ids": {
"resource_id": '\""${FOLDER_RESOURCE_ID}"\"',
"resource_type": "RESOURCE_TYPE_FOLDER"
}
},
"max_embedding_requests_per_min": '"${EMBEDDING_MODEL_QPM_RATE}"'
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID=OPERATION_ID
poll_op_wait ${OPERATION_ID}
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Acessar um 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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
execute o seguinte comando:
$headers = @{ }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
RagFile
.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"
PowerShell
execute o seguinte comando:
$headers = @{ }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
RagFiles
no RAG_CORPUS_ID
especificado.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
execute o seguinte comando:
$headers = @{ }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
DeleteOperationMetadata
.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
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": 0.8 }, "query": { "text": "TEXT", "similarity_top_k": SIMILARITY_TOP_K } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content
RagFiles
relacionadas.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Previsão
A previsão 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 "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand Content
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
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.