El motor de RAG de Vertex AI es un componente de la plataforma de Vertex AI, que facilita la generación con recuperación mejorada (RAG). El motor de RAG permite que los modelos de lenguaje grandes (LLM) accedan a datos de fuentes de conocimiento externas, como documentos y bases de datos, y los incorporen. Mediante el uso de RAG, los LLM pueden generar respuestas más precisas y informativas.
Ejemplo de sintaxis
En esta sección, se proporciona la sintaxis para crear un 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
En esta sección, se incluye lo siguiente:
Parámetros | Ejemplos |
---|---|
Consulta Parámetros de administración de corpus. | Consulta ejemplos de administración de corpus. |
Consulta Parámetros de administración de archivos. | Consulta Ejemplos de administración de archivos. |
Parámetros de administración de corpus
Para obtener información sobre un corpus de RAG, consulta Administración de corpus.
Crea un corpus RAG
En esta tabla, se enumeran los parámetros que se usan para crear un corpus de RAG.
Parámetros | |
---|---|
|
Opcional: Es el nombre visible del corpus de RAG. |
|
Opcional: La descripción del corpus de RAG. |
|
Opcional: El modelo de incorporación que se usará para el corpus de RAG. |
|
Opcional: El extremo HTTPS o HTTP de la instancia de Weaviate |
|
Opcional: Es la colección de Weaviate a la que se asigna el corpus de RAG. |
|
Opcional: El Formato: |
|
Opcional: El nombre del recurso de la versión secreta de Secret Manager que almacena la clave de API. Formato: |
|
Este campo te ayuda a establecer la elección de una base de datos de vectores que deseas asociar con tu corpus de RAG y se debe establecer durante la llamada a la API de |
|
Este es el nombre que se usa para crear el índice de Pinecone que se usa con el corpus de RAG. Puedes establecer el nombre durante la llamada a |
|
Este es el nombre de recurso completo del secreto que se almacena en Secret Manager, que contiene tu clave de API de Pinecone. Puedes establecer el nombre durante la llamada a |
|
Este campo te ayuda a establecer la elección de una base de datos de vectores que deseas asociar con tu corpus de RAG y se debe establecer durante la llamada a la API de |
|
Este es el nombre del recurso de la búsqueda de vectores que se usa con el corpus de RAG. Puedes establecer el nombre durante la llamada a |
|
Este es el nombre del recurso del extremo del índice de la Búsqueda de vectores que se usa con el corpus de RAG. Puedes establecer el nombre durante la llamada a |
Actualiza un corpus de RAG
En esta tabla, se enumeran los parámetros que se usan para actualizar un corpus de RAG.
Nombre | Descripción |
---|---|
display_name |
Opcional: string Es el nombre visible del corpus de RAG. |
description |
Opcional: string La visualización del corpus de RAG. |
rag_vector_db_config.weaviate.http_endpoint |
Opcional: string Es el extremo HTTPS o HTTP de la instancia de Weaviate. |
rag_vector_db_config.weaviate.collection_name |
Opcional: string Es la colección de Weaviate a la que se asigna el corpus de RAG. |
rag_vector_db_config.vertex_feature_store.feature_view_resource_name |
Opcional: string Es la vista de atributos de Vertex AI Feature Store a la que se asigna el corpus de RAG. Formato: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view} |
api_auth.api_key_config.api_key_secret_version |
Opcional: string El nombre del recurso de la versión del secreto de Secret Manager que almacena la clave de API. Formato: projects/{project}/secrets/{secret}/versions/{version} |
|
Este campo te ayuda a establecer la elección de una base de datos de vectores que deseas asociar con tu corpus de RAG y se debe establecer durante la llamada a la API de |
|
Este es el nombre que se usa para crear el índice de Pinecone que se usa con el corpus de RAG. Puedes establecer el nombre durante la llamada a |
|
Este es el nombre de recurso completo del secreto que se almacena en Secret Manager, que contiene tu clave de API de Pinecone. Puedes establecer el nombre durante la llamada a |
|
Este campo te ayuda a establecer la elección de una base de datos de vectores que deseas asociar con tu corpus de RAG y se debe establecer durante la llamada a la API de |
|
Este es el nombre del recurso de la búsqueda de vectores que se usa con el corpus de RAG. Puedes establecer el nombre durante la llamada a |
|
Este es el nombre del recurso del extremo del índice de la Búsqueda de vectores que se usa con el corpus de RAG. Puedes establecer el nombre durante la llamada a |
Enumera los corpus de RAG
En esta tabla, se enumeran los parámetros que se usan para enumerar los corpus de RAG.
Parámetros | |
---|---|
|
Opcional: El tamaño de página de lista estándar. |
|
Opcional: El token de página de lista estándar. Por lo general, se obtiene de |
Obtén un corpus de RAG
En esta tabla, se enumeran los parámetros que se usan para obtener un corpus de RAG.
Parámetros | |
---|---|
|
El ID del recurso |
Borra un corpus de RAG
En esta tabla, se enumeran los parámetros que se usan para borrar un corpus de RAG.
Parámetros | |
---|---|
|
El ID del recurso |
Parámetros de administración de archivos
Para obtener información sobre un archivo RAG, consulta Administración de archivos.
Sube un archivo RAG
En esta tabla, se enumeran los parámetros que se usan para subir un archivo RAG.
Parámetros | |
---|---|
|
El ID del recurso |
|
Opcional: El nombre visible del RagCorpus. |
|
Opcional: La descripción de RagCorpus. |
Importar archivos RAG
En esta tabla, se enumeran los parámetros que se usan para importar un archivo RAG.
Parámetros | |
---|---|
|
El ID del recurso |
|
URI de Cloud Storage que contiene el archivo de carga. |
|
Opcional: El tipo de recurso de Google Drive. |
|
Opcional: El ID del recurso de Google Drive. |
|
Opcional: Cantidad de tokens que debe tener cada fragmento. |
|
Opcional: Cantidad de tokens que se superponen entre dos fragmentos. |
|
Opcional: Es un número que representa un límite para restringir la velocidad a la que RAG Engine llama al modelo de incorporación durante el proceso de indexación. El límite predeterminado es |
|
El ID del recurso |
|
Opcional: El tamaño de página de lista estándar. |
|
Opcional: El token de página de lista estándar. Por lo general, se obtiene de |
Obtén un archivo RAG
En esta tabla, se enumeran los parámetros que se usan para obtener un archivo RAG.
Parámetros | |
---|---|
|
El ID del recurso |
Borra un archivo RAG
En esta tabla, se enumeran los parámetros que se usan para borrar un archivo RAG.
Parámetros | |
---|---|
|
El ID del recurso |
Recuperación y predicción
En esta sección, se enumeran los parámetros de recuperación y predicción.
Parámetros de recuperación
En esta tabla, se enumeran los parámetros de recuperación.
Parámetro | Descripción |
---|---|
similarity_top_k |
Controla la cantidad máxima de contextos que se recuperan. |
vector_distance_threshold |
Solo se consideran los contextos con una distancia menor que el umbral. |
Parámetros de predicción
En esta tabla, se enumeran los parámetros de predicción.
Parámetros | |
---|---|
|
Modelo de LLM para la generación de contenido. |
|
El nombre del recurso RagCorpus. Formato: |
|
Es el texto a LLM para la generación de contenido. Valor máximo: Lista |
|
Opcional: Solo se muestran los contextos con una distancia de vector menor que el umbral. |
|
Opcional: La cantidad de contextos principales que se recuperarán. |
Ejemplos de administración de corpus
En esta sección, se proporcionan ejemplos de cómo usar la API para administrar tu corpus de RAG.
Crea un ejemplo de corpus de RAG
En esta muestra de código, se muestra cómo crear un corpus de RAG.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- LOCATION: La región para procesar la solicitud.
- CORPUS_DISPLAY_NAME: es el nombre visible del
RagCorpus
. - CORPUS_DESCRIPTION: Es la descripción de
RagCorpus
. - RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT: Es el modelo de incorporación de
RagCorpus
.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora
Cuerpo JSON de la solicitud:
{ "display_name" : "CORPUS_DISPLAY_NAME", "description": "CORPUS_DESCRIPTION", "rag_embedding_model_config_endpoint": "RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora" | Select-Object -Expand Content
En el siguiente ejemplo, se muestra cómo crear un corpus RAG mediante la API de 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
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Actualiza un ejemplo de corpus de RAG
Puedes actualizar tu corpus de RAG con un nuevo nombre visible, una descripción y una configuración de la base de datos de vectores. Sin embargo, no puedes cambiar los siguientes parámetros en tu corpus de RAG:
- Es el tipo de base de datos vectorial. Por ejemplo, no puedes cambiar la base de datos de vectores de Weaviate a Vertex AI Feature Store.
- Si usas la opción de base de datos administrada, no puedes actualizar la configuración de la base de datos de vectores.
En estos ejemplos, se muestra cómo actualizar un corpus de RAG.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI, consulta Instala el SDK de Vertex AI. Si deseas obtener más información, consulta la documentación de referencia de la API de 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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
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 y URL:
PATCH https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/${CORPUS_ID}
Cuerpo JSON de la solicitud:
{
"display_name" : ${CORPUS_DISPLAY_NAME},
"description": ${CORPUS_DESCRIPTION}
}
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:
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
```
Ejemplo de lista de corpus de RAG
En esta muestra de código, se muestra cómo enumerar todos los corpus de RAG.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- LOCATION: La región para procesar la solicitud.
- PAGE_SIZE: El tamaño de página de lista estándar. Puedes ajustar la cantidad de
RagCorpora
que se muestran por página si actualizas el parámetropage_size
. - PAGE_TOKEN: El token de página de lista estándar. Se obtiene normalmente con
ListRagCorporaResponse.next_page_token
de la llamadaVertexRagDataService.ListRagCorpora
anterior.
Método HTTP y URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente 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
Ejecuta el siguiente 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
en el PROJECT_ID
determinado.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Obtén un ejemplo de corpus de RAG
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- LOCATION: La región para procesar la solicitud.
- RAG_CORPUS_ID: El ID del recurso
RagCorpus
.
Método HTTP y URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
PowerShell
Ejecuta el siguiente 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
.
Los comandos get
y list
se utilizan en un ejemplo para demostrar cómo RagCorpus
usa el campo rag_embedding_model_config
, que apunta al modelo de incorporación que elegiste.
// 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
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Ejemplo de eliminación de un corpus de RAG
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- LOCATION: La región para procesar la solicitud.
- RAG_CORPUS_ID: El ID del recurso
RagCorpus
.
Método HTTP y URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X DELETE \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
PowerShell
Ejecuta el siguiente 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
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Ejemplos de administración de archivos
En esta sección, se proporcionan ejemplos de cómo usar la API para administrar archivos RAG.
Sube un ejemplo de archivo RAG
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- LOCATION: La región para procesar la solicitud.
- RAG_CORPUS_ID: El ID del recurso
RagCorpus
. - INPUT_FILE: La ruta de un archivo local.
- FILE_DISPLAY_NAME: es el nombre visible del
RagFile
. - RAG_FILE_DESCRIPTION: Es la descripción de
RagFile
.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload
Cuerpo JSON de la solicitud:
{ "rag_file": { "display_name": "FILE_DISPLAY_NAME", "description": "RAG_FILE_DESCRIPTION" } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado INPUT_FILE
y ejecuta el siguiente comando:
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
Guarda el cuerpo de la solicitud en un archivo llamado INPUT_FILE
y ejecuta el siguiente comando:
$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
. El último componente del campo RagFile.name
es el rag_file_id
generado por el servidor.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Ejemplo de importación de archivos RAG
Los archivos y las carpetas se pueden importar desde Drive o
Cloud Storage. Puedes usar response.metadata
para ver las fallas parciales, el tiempo de solicitud y el tiempo de respuesta en el objeto response
del SDK.
response.skipped_rag_files_count
hace referencia a la cantidad de archivos que se omitieron durante la importación. Se omite un archivo cuando se cumplen las siguientes condiciones:
- Ya se importó el archivo.
- El archivo no cambió.
- La configuración de fragmentación del archivo no cambió.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- LOCATION: La región para procesar la solicitud.
- RAG_CORPUS_ID: El ID del recurso
RagCorpus
. - GCS_URIS: Es una lista de ubicaciones de Cloud Storage. Ejemplo:
gs://my-bucket1, gs://my-bucket2
. - DRIVE_RESOURCE_ID: El ID del recurso de Drive. Ejemplos:
https://drive.google.com/file/d/ABCDE
https://drive.google.com/corp/drive/u/0/folders/ABCDEFG
- DRIVE_RESOURCE_TYPE: Tipo de recurso de Drive. Opciones:
RESOURCE_TYPE_FILE
- ArchivoRESOURCE_TYPE_FOLDER
- Carpeta- CHUNK_SIZE: Cantidad de tokens que debe tener cada fragmento (opcional).
- CHUNK_OVERLAP: La cantidad de tokens que se superponen entre los fragmentos (opcional).
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
Cuerpo JSON de la solicitud:
{ "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 tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
ImportRagFilesOperationMetadata
.
En el siguiente ejemplo, se muestra cómo importar un archivo desde Cloud Storage. Usa el campo de control max_embedding_requests_per_min
para limitar la velocidad a la que RAG Engine llama al modelo de incorporación durante el proceso de indexación ImportRagFiles
. El campo tiene un valor predeterminado de 1000
llamadas 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}
En el siguiente ejemplo, se muestra cómo importar un archivo de Drive. Usa el campo de control max_embedding_requests_per_min
para limitar la velocidad a la que RAG Engine llama al modelo de incorporación durante el proceso de indexación ImportRagFiles
. El campo tiene un valor predeterminado de 1000
llamadas 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
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Obtén un ejemplo de archivo RAG
En esta muestra de código, se muestra cómo obtener un archivo RAG.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- LOCATION: La región para procesar la solicitud.
- RAG_CORPUS_ID: El ID del recurso
RagCorpus
. - RAG_FILE_ID: El ID del recurso
RagFile
.
Método HTTP y URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
Ejecuta el siguiente 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
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Ejemplo de lista de archivos RAG
En esta muestra de código, se muestra cómo enumerar archivos RAG.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- LOCATION: La región para procesar la solicitud.
- RAG_CORPUS_ID: El ID del recurso
RagCorpus
. - PAGE_SIZE: El tamaño de página de lista estándar. Puedes ajustar la cantidad de
RagFiles
que se muestran por página si actualizas el parámetropage_size
. - PAGE_TOKEN: El token de página de lista estándar. Se obtiene normalmente con
ListRagFilesResponse.next_page_token
de la llamadaVertexRagDataService.ListRagFiles
anterior.
Método HTTP y 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 tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente 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
Ejecuta el siguiente 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
en el RAG_CORPUS_ID
determinado.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Ejemplo de cómo borrar un archivo RAG
En esta muestra de código, se muestra cómo borrar un archivo RAG.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- LOCATION: La región para procesar la solicitud.
- RAG_CORPUS_ID: El ID del recurso
RagCorpus
. - RAG_FILE_ID: El ID del recurso
RagFile
. Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}
.
Método HTTP y URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X DELETE \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
Ejecuta el siguiente 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
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Consulta de recuperación
Cuando un usuario hace una pregunta o proporciona una instrucción, el componente de recuperación en RAG busca en su base de conocimiento la información relevante para la consulta.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: La región para procesar la solicitud.
- PROJECT_ID: El ID del proyecto.
- RAG_CORPUS_RESOURCE: El nombre del recurso
RagCorpus
. Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - VECTOR_DISTANCE_THRESHOLD: Solo se muestran los contextos con una distancia de vector menor que el umbral.
- TEXT: Es el texto de la consulta para obtener contextos relevantes.
- SIMILARITY_TOP_K: La cantidad de contextos principales que se recuperarán.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts
Cuerpo JSON de la solicitud:
{ "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 tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content
RagFiles
relacionados.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Predicción
La predicción genera una respuesta fundamentada con los contextos recuperados.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- LOCATION: La región para procesar la solicitud.
- MODEL_ID: Es un modelo de LLM para la generación de contenido. Ejemplo:
gemini-1.5-pro-002
- GENERATION_METHOD: Es el método LLM para la generación de contenido. Opciones:
generateContent
,streamGenerateContent
- INPUT_PROMPT: Es el texto enviado al LLM para la generación de contenido. Intenta usar una instrucción relevante para los archivos rag subidos.
- RAG_CORPUS_RESOURCE: El nombre del recurso
RagCorpus
. Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K: Opcional: La cantidad de contextos principales que se recuperarán.
- VECTOR_DISTANCE_THRESHOLD: Opcional: Se muestran contextos con una distancia vectorial menor que el umbral.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD
Cuerpo JSON de la solicitud:
{ "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 tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand Content
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
¿Qué sigue?
- Para obtener más información sobre los modelos de generación compatibles, consulta Modelos de IA generativa que admiten RAG.
- Para obtener más información sobre los modelos de incorporación compatibles, consulta Modelos de incorporación.
- Para obtener más información sobre los modelos abiertos, consulta Modelos abiertos.
- Para obtener más información sobre RAG Engine, consulta la descripción general de RAG Engine.