API RAG Engine

El motor RAG de Vertex AI es un componente de la plataforma Vertex AI que facilita la generación aumentada de extracción (RAG). El motor RAG permite a los modelos de lenguaje extenso (LLMs) acceder e incorporar datos de fuentes de conocimiento externas, como documentos y bases de datos. Al usar RAG, los LLMs pueden generar respuestas más precisas e informativas.

Lista de parámetros

En esta sección se enumeran los siguientes elementos:

Parámetros Ejemplos
Consulta los parámetros de gestión de corpus. Consulta ejemplos de gestión de corpus.
Consulta los parámetros de gestión de archivos. Consulta Ejemplos de gestión de archivos.
Consulta Parámetros de gestión de proyectos. Consulta Ejemplos de gestión de proyectos.

Parámetros de gestión de corpus

Para obtener información sobre un corpus de RAG, consulta Gestión de corpus.

Crear un corpus de RAG

En esta tabla se enumeran los parámetros que se usan para crear un corpus de RAG.

Cuerpo de la solicitud
Parámetros

display_name

Obligatorio: string

Nombre visible del corpus de RAG.

description

Opcional: string

Descripción del corpus de RAG.

encryption_spec

Opcional: inmutable: string

El nombre de la clave CMEK se usa para cifrar los datos en reposo relacionados con el corpus de RAG. El nombre de clave solo se aplica a la opción RagManaged de la base de datos de vectores. Cuando se crea el corpus, se puede definir este campo, pero no se puede actualizar ni eliminar.

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

vector_db_config

Opcional: inmutable: vectorDbConfig

La configuración de las bases de datos vectoriales.

vertex_ai_search_config.serving_config

Opcional: string

Configuración de Vertex AI Search.

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

vectorDbConfig
Parámetros

rag_managed_db

oneof vector_db: vectorDbConfig.RagManagedDb

Si no se especifica ninguna base de datos vectorial, rag_managed_db es la base de datos vectorial predeterminada.

pinecone

oneof vector_db: vectorDbConfig.Pinecone

Especifica tu instancia de Pinecone.

pinecone.index_name

string

Es el nombre que se usa para crear el índice de Pinecone que se usa con el corpus de RAG.

Este valor no se puede cambiar una vez que se haya definido. Puedes dejarlo vacío en la llamada a la API CreateRagCorpus y asignarle un valor no vacío en una llamada a la API UpdateRagCorpus posterior.

vertex_vector_search

oneof vector_db: vectorDbConfig.VertexVectorSearch

Especifica tu instancia de Vertex Vector Search.

vertex_vector_search.index

string

Es el nombre de recurso del índice de búsqueda vectorial que se usa con el corpus de RAG.

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

Este valor no se puede cambiar una vez que se haya definido. Puedes dejarlo vacío en la llamada a la API CreateRagCorpus y asignarle un valor no vacío en una llamada a la API UpdateRagCorpus posterior.

vertex_vector_search.index_endpoint

string

Es el nombre de recurso del endpoint del índice de búsqueda vectorial que se usa con el corpus de RAG.

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

Este valor no se puede cambiar una vez que se haya definido. Puedes dejarlo vacío en la llamada a la API CreateRagCorpus y asignarle un valor no vacío en una llamada a la API UpdateRagCorpus posterior.

api_auth.api_key_config.api_key_secret_version

string

Es el nombre de recurso completo del secreto almacenado en Secret Manager, que contiene tu clave de API de Pinecone.

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

Puede dejarlo vacío en la llamada a la API CreateRagCorpus y asignarle un valor no vacío en una llamada a la API UpdateRagCorpus posterior.

rag_embedding_model_config.vertex_prediction_endpoint.endpoint

Opcional: inmutable: string

Modelo de inserción que se usará para el corpus de RAG. Este valor no se puede cambiar una vez que se haya definido. Si lo dejas vacío, usaremos text-embedding-005 como modelo de inserción.

Actualizar un corpus de RAG

En esta tabla se enumeran los parámetros que se usan para actualizar un corpus de RAG.

Cuerpo de la solicitud
Parámetros

display_name

Opcional: string

Nombre visible del corpus de RAG.

description

Opcional: string

Descripción del corpus de RAG.

rag_vector_db.pinecone.index_name

string

Es el nombre que se usa para crear el índice de Pinecone que se usa con el corpus de RAG.

Si tu RagCorpus se creó con una configuración de Pinecone y este campo no se ha definido nunca, puedes actualizar el nombre del índice de la instancia de Pinecone.

rag_vector_db.vertex_vector_search.index

string

Es el nombre de recurso del índice de búsqueda vectorial que se usa con el corpus de RAG.

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

Si tu RagCorpus se creó con una configuración de Vector Search y este campo nunca se ha definido, puedes actualizarlo.

rag_vector_db.vertex_vector_search.index_endpoint

string

Es el nombre de recurso del endpoint del índice de búsqueda vectorial que se usa con el corpus de RAG.

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

Si tu RagCorpus se creó con una configuración de Vector Search y este campo nunca se ha definido, puedes actualizarlo.

rag_vector_db.api_auth.api_key_config.api_key_secret_version

string

Nombre de recurso completo del secreto almacenado en Secret Manager, que contiene tu clave de API de Pinecone.

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

Listar los corpora de RAG

En esta tabla se enumeran los parámetros que se usan para mostrar los corpora de RAG.

Parámetros

page_size

Opcional: int

El tamaño de página de la lista estándar.

page_token

Opcional: string

El token de la página de lista estándar. Normalmente se obtiene de [ListRagCorporaResponse.next_page_token][] de la llamada [VertexRagDataService.ListRagCorpora][] anterior.

Obtener un corpus de RAG

En esta tabla se enumeran los parámetros que se usan para obtener un corpus de RAG.

Parámetros

name

string

Nombre del recurso RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

Eliminar un corpus de RAG

En esta tabla se enumeran los parámetros que se usan para eliminar un corpus de RAG.

Parámetros

name

string

Nombre del recurso RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

Parámetros de gestión de archivos

Para obtener información sobre un archivo RAG, consulta Gestión de archivos.

Subir un archivo RAG

En esta tabla se enumeran los parámetros que se usan para subir un archivo RAG.

Cuerpo de la solicitud
Parámetros

parent

string

Nombre del recurso RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

rag_file

Obligatorio: RagFile

El archivo que se va a subir.

upload_rag_file_config

Obligatorio: UploadRagFileConfig

La configuración de RagFile que se va a subir a RagCorpus.

RagFile

display_name

Obligatorio: string

Nombre visible del archivo RAG.

description

Opcional: string

La descripción del archivo RAG.

UploadRagFileConfig

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

Número de tokens que tiene cada fragmento.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

La superposición entre los fragmentos.

Importar archivos RAG

En esta tabla se enumeran los parámetros que se usan para importar un archivo RAG.

Parámetros

parent

Obligatorio: string

Nombre del recurso RagCorpus.

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

gcs_source

oneof import_source: GcsSource

Ubicación de Cloud Storage.

Permite importar archivos concretos y directorios completos de Cloud Storage.

gcs_source.uris

list de string

URI de Cloud Storage que contiene el archivo de subida.

google_drive_source

oneof import_source: GoogleDriveSource

Ubicación de Google Drive.

Permite importar archivos concretos y carpetas de Google Drive.

slack_source

oneof import_source: SlackSource

El canal de Slack en el que se ha subido el archivo.

jira_source

oneof import_source: JiraSource

La consulta de Jira en la que se sube el archivo.

share_point_sources

oneof import_source: SharePointSources

Las fuentes de SharePoint en las que se sube el archivo.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

Número de tokens que tiene cada fragmento.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

La superposición entre los fragmentos.

rag_file_parsing_config

Opcional: RagFileParsingConfig

Especifica la configuración de análisis de RagFiles.

Si no se define este campo, RAG usa el analizador predeterminado.

max_embedding_requests_per_min

Opcional: int32

Número máximo de consultas por minuto que este trabajo puede hacer al modelo de inserciones especificado en el corpus. Este valor es específico de este trabajo y no se comparte con otros trabajos de importación. Consulta la página Cuotas del proyecto para definir un valor adecuado.

Si no se especifica ningún valor, se usa el valor predeterminado de 1000 QPM.

GoogleDriveSource

resource_ids.resource_id

Obligatorio: string

ID del recurso de Google Drive.

resource_ids.resource_type

Obligatorio: string

El tipo de recurso de Google Drive.

SlackSource

channels.channels

Repetido: SlackSource.SlackChannels.SlackChannel

Información del canal de Slack, incluido el ID y el intervalo de tiempo que se va a importar.

channels.channels.channel_id

Obligatorio: string

El ID del canal de Slack.

channels.channels.start_time

Opcional: google.protobuf.Timestamp

Marca de tiempo inicial de los mensajes que se van a importar.

channels.channels.end_time

Opcional: google.protobuf.Timestamp

Marca de tiempo final de los mensajes que se van a importar.

channels.api_key_config.api_key_secret_version

Obligatorio: string

El nombre de recurso completo del secreto almacenado en Secret Manager, que contiene un token de acceso al canal de Slack que tiene acceso a los IDs de canal de Slack.
Consulta: https://api.slack.com/tutorials/tracks/getting-a-token.

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

JiraSource

jira_queries.projects

Repetido: string

Lista de proyectos de Jira que se van a importar por completo.

jira_queries.custom_queries

Repetido: string

Lista de consultas de Jira personalizadas que se van a importar. Para obtener información sobre JQL (Jira Query Language), consulta
Asistencia de Jira

jira_queries.email

Obligatorio: string

La dirección de correo de Jira.

jira_queries.server_uri

Obligatorio: string

El URI del servidor Jira.

jira_queries.api_key_config.api_key_secret_version

Obligatorio: string

Nombre de recurso completo del secreto almacenado en Secret Manager, que contiene la clave de API de Jira que tiene acceso a los IDs de los canales de Slack.
Consulta: https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/

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

SharePointSources

share_point_sources.sharepoint_folder_path

oneof en folder_source: string

Ruta de la carpeta de SharePoint desde la que se va a descargar.

share_point_sources.sharepoint_folder_id

oneof en folder_source: string

ID de la carpeta de SharePoint desde la que se va a descargar.

share_point_sources.drive_name

oneof en drive_source: string

Nombre de la unidad desde la que se va a descargar.

share_point_sources.drive_id

oneof en drive_source: string

El ID de la unidad de la que se va a descargar.

share_point_sources.client_id

string

Es el ID de la aplicación registrada en Microsoft Azure Portal.
La aplicación también debe configurarse con los permisos de MS Graph "Files.ReadAll", "Sites.ReadAll" y BrowserSiteLists.Read.All.

share_point_sources.client_secret.api_key_secret_version

Obligatorio: string

Nombre de recurso completo del secreto almacenado en Secret Manager, que contiene el secreto de la aplicación registrada en Azure.

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

share_point_sources.tenant_id

string

Identificador único de la instancia de Azure Active Directory.

share_point_sources.sharepoint_site_name

string

Nombre del sitio de SharePoint del que se va a descargar. Puede ser el nombre o el ID del sitio.

RagFileParsingConfig

layout_parser

oneof parser: RagFileParsingConfig.LayoutParser

El analizador de diseños que se va a usar para los RagFile.

layout_parser.processor_name

string

Nombre completo del recurso de un procesador o una versión de procesador de Document AI.

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

layout_parser.max_parsing_requests_per_min

string

Número máximo de solicitudes que el trabajo puede enviar al procesador de Document AI por minuto.

Consulta https://cloud.google.com/document-ai/quotas y la página Cuota de tu proyecto para definir un valor adecuado. Si no se especifica ningún valor, se usa el valor predeterminado de 120 QPM.

llm_parser

oneof parser: RagFileParsingConfig.LlmParser

El analizador LLM que se va a usar para RagFiles.

llm_parser.model_name

string

Nombre de recurso de un modelo LLM.

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

llm_parser.max_parsing_requests_per_min

string

Número máximo de solicitudes que el trabajo puede enviar al modelo LLM por minuto.

Para definir un valor adecuado para tu proyecto, consulta la sección de cuota de modelo y la página Cuota de tu proyecto. Si no se especifica ningún valor, se usa el valor predeterminado de 5000 QPM.

Obtener un archivo RAG

En esta tabla se enumeran los parámetros que se usan para obtener un archivo RAG.

Parámetros

name

string

Nombre del recurso RagFile. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

Eliminar un archivo RAG

En esta tabla se enumeran los parámetros que se usan para eliminar un archivo RAG.

Parámetros

name

string

Nombre del recurso RagFile. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

Parámetros de 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 la API retrieveContexts.

Parámetros

parent

Obligatorio: string

Nombre de recurso de la ubicación que se va a obtener RagContexts.
Los usuarios deben tener permiso para hacer llamadas en el proyecto.

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

vertex_rag_store

VertexRagStore

La fuente de datos de Vertex RagStore.

query

Obligatorio: RagQuery

Consulta de recuperación de RAG única.

VertexRagStore
VertexRagStore

rag_resources

lista: RagResource

Representación de la fuente de RAG. Se puede usar para especificar solo el corpus o RagFiles. Solo se admite un corpus o varios archivos de un corpus.

rag_resources.rag_corpus

Opcional: string

RagCorpora nombre del recurso.

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

rag_resources.rag_file_ids

lista: string

Lista de recursos de RagFile.

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

RagQuery

text

string

La consulta en formato de texto para obtener contextos relevantes.

rag_retrieval_config

Opcional: RagRetrievalConfig

Configuración de recuperación de la consulta.

RagRetrievalConfig

top_k

Opcional: int32

Número de contextos que se van a obtener.

filter.vector_distance_threshold

oneof vector_db_threshold: double

Solo devuelve contextos con una distancia vectorial inferior al umbral.

filter.vector_similarity_threshold

oneof vector_db_threshold: double

Solo devuelve contextos con una similitud de vector superior al umbral.

ranking.rank_service.model_name

Opcional: string

El nombre del modelo del servicio de ranking.

Ejemplo: semantic-ranker-512@latest

ranking.llm_ranker.model_name

Opcional: string

Nombre del modelo usado para la clasificación.

Ejemplo: gemini-2.5-flash

Parámetros de predicción

En esta tabla se enumeran los parámetros de predicción.

GenerateContentRequest

tools.retrieval.vertex_rag_store

VertexRagStore

Se usa una fuente de datos basada en el almacén RAG de Vertex AI.

Consulta más información en VertexRagStore.

Parámetros de gestión de proyectos

En esta tabla se enumeran los parámetros a nivel de proyecto.

RagEngineConfig
Parámetros
RagManagedDbConfig.scaled Este nivel ofrece un rendimiento a escala de producción junto con la función de escalado automático.
RagManagedDbConfig.basic Este nivel ofrece una opción rentable y con pocos recursos computacionales.
RagManagedDbConfig.unprovisioned Este nivel elimina el RagManagedDb y su instancia de Spanner subyacente.

Ejemplos de gestión de corpus

En esta sección se proporcionan ejemplos de cómo usar la API para gestionar tu corpus de RAG.

Crear un ejemplo de corpus de RAG

En estos ejemplos de código se muestra cómo crear un corpus de RAG.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • CORPUS_DISPLAY_NAME: el nombre visible del corpus de RAG.
  • CORPUS_DESCRIPTION: la descripción del corpus de RAG.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora

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 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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"

Powershell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

  $cred = gcloud auth print-access-token
  $headers = @{ "Authorization" = "Bearer $cred" }

  Invoke-WebRequest `
      -Method POST `
      -Headers $headers `
      -ContentType: "application/json; charset=utf-8" `
      -InFile request.json `
      -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora" | Select-Object -Expand Content

Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx).

En el siguiente ejemplo se muestra cómo crear un corpus de RAG mediante la API REST.

  // 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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora \
  -d '{
        "display_name" : "CORPUS_DISPLAY_NAME"
    }'

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# display_name = "test_corpus"
# description = "Corpus Description"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

# Configure backend_config
backend_config = rag.RagVectorDbConfig(
    rag_embedding_model_config=rag.RagEmbeddingModelConfig(
        vertex_prediction_endpoint=rag.VertexPredictionEndpoint(
            publisher_model="publishers/google/models/text-embedding-005"
        )
    )
)

corpus = rag.create_corpus(
    display_name=display_name,
    description=description,
    backend_config=backend_config,
)
print(corpus)
# Example response:
# RagCorpus(name='projects/1234567890/locations/us-central1/ragCorpora/1234567890',
# display_name='test_corpus', description='Corpus Description', embedding_model_config=...
# ...

Actualizar 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 base de datos vectorial. Sin embargo, no puedes cambiar los siguientes parámetros en tu corpus de RAG:

  • 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 gestionada, 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.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • CORPUS_ID: el ID del corpus de tu RAG.
  • CORPUS_DISPLAY_NAME: el nombre visible del corpus de RAG.
  • CORPUS_DESCRIPTION: la descripción del corpus de RAG.
  • INDEX_NAME: nombre del recurso del índice de búsqueda vectorial. Formato: projects/{project}/locations/{location}/indexes/{index}.
  • INDEX_ENDPOINT_NAME: nombre del recurso del endpoint del índice de búsqueda vectorial. Formato: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}.

Método HTTP y URL:

PATCH https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID

Cuerpo JSON de la solicitud:

{
  "display_name" : "CORPUS_DISPLAY_NAME",
  "description": "CORPUS_DESCRIPTION",
  "vector_db_config": {
    "vertex_vector_search": {
        "index": "INDEX_NAME",
        "index_endpoint": "INDEX_ENDPOINT_NAME",
    }
  }
}

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 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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID"

Powershell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID" | Select-Object -Expand Content

Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx).

Ejemplo de lista de corpora de RAG

En estos ejemplos de código se muestra cómo enumerar todos los corpora de RAG.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • PAGE_SIZE: tamaño de página de lista estándar. Puedes ajustar el número de corpora de RAG que se devuelven por página actualizando el parámetro page_size.
  • PAGE_TOKEN: el token de página de lista estándar. Se obtiene normalmente mediante ListRagCorporaResponse.next_page_token de la llamada VertexRagDataService.ListRagCorpora anterior.

Método HTTP y URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/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 \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"

Powershell

Ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content

Deberías recibir un código de estado correcto (2xx) y una lista de corpora de RAG en el PROJECT_ID proporcionado.

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

corpora = rag.list_corpora()
print(corpora)
# Example response:
# ListRagCorporaPager<rag_corpora {
#   name: "projects/[PROJECT_ID]/locations/us-central1/ragCorpora/2305843009213693952"
#   display_name: "test_corpus"
#   create_time {
# ...

Obtener un ejemplo de corpus de RAG

En estos ejemplos de código se muestra cómo obtener un corpus de RAG.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • RAG_CORPUS_ID: ID del recurso de corpus de RAG.

Método HTTP y URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/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 \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

Powershell

Ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content

Si la respuesta es correcta, se devuelve el recurso RagCorpus.

Los comandos get y list se usan en un ejemplo para mostrar cómo RagCorpus usa el campo rag_embedding_model_config en vector_db_config, que apunta al modelo de inserción que has elegido.

    PROJECT_ID: Your project ID.
    LOCATION: The region to process the request.
    RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  ```

```sh
  // 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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/
  ```

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

corpus = rag.get_corpus(name=corpus_name)
print(corpus)
# Example response:
# RagCorpus(name='projects/[PROJECT_ID]/locations/us-central1/ragCorpora/1234567890',
# display_name='test_corpus', description='Corpus Description',
# ...

Eliminar un ejemplo de corpus de RAG

En estos ejemplos de código se muestra cómo eliminar un corpus de RAG.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • RAG_CORPUS_ID: el ID del recurso RagCorpus.

Método HTTP y URL:

DELETE https://LOCATION-aiplatform.googleapis.com/v1/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 \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

Powershell

Ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content

Si la respuesta es correcta, se devuelve el valor DeleteOperationMetadata.

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag.delete_corpus(name=corpus_name)
print(f"Corpus {corpus_name} deleted.")
# Example response:
# Successfully deleted the RagCorpus.
# Corpus projects/[PROJECT_ID]/locations/us-central1/ragCorpora/123456789012345 deleted.

Ejemplos de gestión de archivos

En esta sección se proporcionan ejemplos de cómo usar la API para gestionar archivos RAG.

Subir un ejemplo de archivo RAG

En estos ejemplos de código se muestra cómo subir un archivo RAG.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • RAG_CORPUS_ID: el ID del corpus de tu RAG.
  • LOCAL_FILE_PATH: ruta local al archivo que se va a subir.
  • DISPLAY_NAME: el nombre visible del archivo RAG.
  • DESCRIPTION: la descripción del archivo RAG.

Para enviar tu solicitud, usa el siguiente 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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"
# path = "path/to/local/file.txt"
# display_name = "file_display_name"
# description = "file description"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_file = rag.upload_file(
    corpus_name=corpus_name,
    path=path,
    display_name=display_name,
    description=description,
)
print(rag_file)
# RagFile(name='projects/[PROJECT_ID]/locations/us-central1/ragCorpora/1234567890/ragFiles/09876543',
#  display_name='file_display_name', description='file description')

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 errores parciales, el tiempo de solicitud y el tiempo de respuesta en el objeto response del SDK.

El response.skipped_rag_files_count hace referencia al número de archivos que se han omitido durante la importación. Se omite un archivo cuando se cumplen las siguientes condiciones:

  1. El archivo ya se ha importado.
  2. El archivo no ha cambiado.
  3. La configuración de fragmentación del archivo no ha cambiado.

Python

from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"
# paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]  # Supports Cloud Storage and Google Drive Links

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

response = rag.import_files(
    corpus_name=corpus_name,
    paths=paths,
    transformation_config=rag.TransformationConfig(
        rag.ChunkingConfig(chunk_size=1024, chunk_overlap=256)
    ),
    import_result_sink="gs://sample-existing-folder/sample_import_result_unique.ndjson",  # Optional: This must be an existing Cloud Storage bucket folder, and the filename must be unique (non-existent).
    llm_parser=rag.LlmParserConfig(
      model_name="gemini-2.5-pro-preview-05-06",
      max_parsing_requests_per_min=100,
    ),  # Optional
    max_embedding_requests_per_min=900,  # Optional
)
print(f"Imported {response.imported_rag_files_count} files.")

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • RAG_CORPUS_ID: el ID del corpus de tu RAG.
  • FOLDER_RESOURCE_ID: el ID de recurso de tu carpeta de Drive.
  • GCS_URIS: lista de ubicaciones de Cloud Storage. Ejemplo: gs://my-bucket1
  • CHUNK_SIZE: número de tokens que debe tener cada fragmento.
  • CHUNK_OVERLAP: número de tokens que se solapan entre fragmentos.
  • EMBEDDING_MODEL_QPM_RATE: la frecuencia de consultas por minuto para limitar el acceso de RAG a tu modelo de inserciones. Por ejemplo,1000.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/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"
    },
    "rag_file_chunking_config": {
      "chunk_size": "CHUNK_SIZE",
      "chunk_overlap": "CHUNK_OVERLAP"
    }
  }
}

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 "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1/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:

$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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content

Si la respuesta es correcta, se devuelve el recurso 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 frecuencia con la que el motor RAG llama al modelo de inserciones durante el proceso de indexación ImportRagFiles. El campo tiene un valor predeterminado de 1000 llamadas por minuto.

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • RAG_CORPUS_ID: el ID del corpus de tu RAG.
  • GCS_URIS: lista de ubicaciones de Cloud Storage. Ejemplo: gs://my-bucket1
  • CHUNK_SIZE: número de tokens que debe tener cada fragmento.
  • CHUNK_OVERLAP: número de tokens que se solapan entre fragmentos.
  • EMBEDDING_MODEL_QPM_RATE: la frecuencia de CPM para limitar el acceso de las RAGs a tu modelo de inserciones. Por ejemplo,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/v1/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
  }
}'

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 frecuencia con la que el motor RAG llama al modelo de inserciones durante el proceso de indexación ImportRagFiles. El campo tiene un valor predeterminado de 1000 llamadas por minuto.

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • RAG_CORPUS_ID: el ID del corpus de tu RAG.
  • FOLDER_RESOURCE_ID: el ID de recurso de tu carpeta de Drive.
  • CHUNK_SIZE: número de tokens que debe tener cada fragmento.
  • CHUNK_OVERLAP: número de tokens que se solapan entre fragmentos.
  • EMBEDDING_MODEL_QPM_RATE: la frecuencia de consultas por minuto para limitar el acceso de RAG a tu modelo de inserciones. Por ejemplo,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/v1/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
  }
}'

Ejemplo de lista de archivos RAG

En estos ejemplos de código se muestra cómo enumerar archivos RAG.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • RAG_CORPUS_ID: el ID del recurso RagCorpus.
  • PAGE_SIZE: tamaño de página de lista estándar. Puedes ajustar el número de RagFiles que se devuelven por página actualizando el parámetro page_size.
  • PAGE_TOKEN: el token de página de lista estándar. Obtenido mediante ListRagFilesResponse.next_page_token de la llamada VertexRagDataService.ListRagFiles anterior.

Método HTTP y URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/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 \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"

Powershell

Ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content

Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) junto con una lista de RagFiles en el RAG_CORPUS_ID proporcionado.

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

files = rag.list_files(corpus_name=corpus_name)
for file in files:
    print(file.display_name)
    print(file.name)
# Example response:
# g-drive_file.txt
# projects/1234567890/locations/us-central1/ragCorpora/111111111111/ragFiles/222222222222
# g_cloud_file.txt
# projects/1234567890/locations/us-central1/ragCorpora/111111111111/ragFiles/333333333333

Obtener un archivo de ejemplo de RAG

En estos ejemplos de código se muestra cómo obtener un archivo RAG.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se 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/v1/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 \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

Powershell

Ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content

Si la respuesta es correcta, se devuelve el recurso RagFile.

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# file_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}/ragFiles/{rag_file_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_file = rag.get_file(name=file_name)
print(rag_file)
# Example response:
# RagFile(name='projects/1234567890/locations/us-central1/ragCorpora/11111111111/ragFiles/22222222222',
# display_name='file_display_name', description='file description')

Eliminar un ejemplo de archivo RAG

En estos ejemplos de código se muestra cómo eliminar un archivo RAG.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID>: el ID de tu proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • RAG_CORPUS_ID: ID del recurso RagCorpus.
  • RAG_FILE_ID: 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/v1/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 \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

Powershell

Ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# file_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}/ragFiles/{rag_file_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag.delete_file(name=file_name)
print(f"File {file_name} deleted.")
# Example response:
# Successfully deleted the RagFile.
# File projects/1234567890/locations/us-central1/ragCorpora/1111111111/ragFiles/2222222222 deleted.

Ejemplo de consulta de recuperación

Cuando un usuario hace una pregunta o proporciona una petición, el componente de recuperación de RAG busca en su base de conocimientos información relevante para la consulta.

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/[PROJECT_ID]/locations/us-central1/ragCorpora/[rag_corpus_id]"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

response = rag.retrieval_query(
    rag_resources=[
        rag.RagResource(
            rag_corpus=corpus_name,
            # Optional: supply IDs from `rag.list_files()`.
            # rag_file_ids=["rag-file-1", "rag-file-2", ...],
        )
    ],
    text="Hello World!",
    rag_retrieval_config=rag.RagRetrievalConfig(
        top_k=10,
        filter=rag.utils.resources.Filter(vector_distance_threshold=0.5),
    ),
)
print(response)
# Example response:
# contexts {
#   contexts {
#     source_uri: "gs://your-bucket-name/file.txt"
#     text: "....
#   ....

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • RAG_CORPUS_RESOURCE: el nombre del recurso RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
  • VECTOR_DISTANCE_THRESHOLD: solo se devuelven los contextos con una distancia vectorial inferior al umbral.
  • TEXT: el texto de la consulta para obtener contextos relevantes.
  • SIMILARITY_TOP_K: número de contextos principales que se van a recuperar.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts

Cuerpo JSON de la solicitud:

{
"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
  }
}

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"

Powershell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content

Deberías recibir un código de estado correcto (2xx) y una lista de RagFiles relacionados.

Ejemplo de generación

El LLM genera una respuesta fundamentada usando los contextos obtenidos.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • MODEL_ID: modelo de LLM para generar contenido. Ejemplo: gemini-2.5-flash.
  • GENERATION_METHOD: método de LLM para generar contenido. Opciones: generateContent y streamGenerateContent.
  • INPUT_PROMPT: texto enviado al LLM para generar contenido. Prueba a usar una petición relacionada con los archivos RAG subidos.
  • RAG_CORPUS_RESOURCE: el nombre del recurso RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
  • SIMILARITY_TOP_K: opcional. Número de contextos principales que se van a obtener.
  • VECTOR_DISTANCE_THRESHOLD: opcional. Se devuelven los contextos con una distancia vectorial inferior al umbral.
  • USER: tu nombre de usuario.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/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 "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1/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:

$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/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand Content

Si la respuesta es correcta, se devuelve el contenido generado con las citas.

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.


from vertexai import rag
from vertexai.generative_models import GenerativeModel, Tool
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_retrieval_tool = Tool.from_retrieval(
    retrieval=rag.Retrieval(
        source=rag.VertexRagStore(
            rag_resources=[
                rag.RagResource(
                    rag_corpus=corpus_name,
                    # Optional: supply IDs from `rag.list_files()`.
                    # rag_file_ids=["rag-file-1", "rag-file-2", ...],
                )
            ],
            rag_retrieval_config=rag.RagRetrievalConfig(
                top_k=10,
                filter=rag.utils.resources.Filter(vector_distance_threshold=0.5),
            ),
        ),
    )
)

rag_model = GenerativeModel(
    model_name="gemini-2.0-flash-001", tools=[rag_retrieval_tool]
)
response = rag_model.generate_content("Why is the sky blue?")
print(response.text)
# Example response:
#   The sky appears blue due to a phenomenon called Rayleigh scattering.
#   Sunlight, which contains all colors of the rainbow, is scattered
#   by the tiny particles in the Earth's atmosphere....
#   ...

Ejemplos de gestión de proyectos

El nivel es un ajuste a nivel de proyecto disponible en el recurso RagEngineConfig y afecta a los corpora de RAG que usan RagManagedDb. Para obtener la configuración del nivel, usa GetRagEngineConfig. Para actualizar la configuración del nivel, usa UpdateRagEngineConfig.

Para obtener más información sobre cómo gestionar la configuración de tus niveles, consulta Gestionar niveles.

Obtener la configuración del proyecto

En los siguientes ejemplos de código se muestra cómo leer tu RagEngineConfig:

Consola

  1. En la Google Cloud consola, ve a la página RAG Engine.

    Ir a Motor de RAG

  2. Selecciona la región en la que se ejecuta tu RAG Engine. Se ha actualizado tu lista de corpora de RAG.
  3. Haz clic en Configurar motor RAG. Aparecerá el panel Configurar buscador RAG. Puedes ver el nivel seleccionado para tu motor RAG.
  4. Haz clic en Cancelar.

Python

from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

rag_engine_config = rag.rag_data.get_rag_engine_config(
    name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"
)

print(rag_engine_config)

REST

curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig

Actualizar la configuración del proyecto

En esta sección se proporcionan ejemplos de código para mostrar cómo cambiar la configuración a un nivel escalado, básico o sin aprovisionar.

Actualizar tu RagEngineConfig al nivel Scaled

En los siguientes ejemplos de código se muestra cómo definir RagEngineConfig en el nivel Escalado:

Consola

  1. En la Google Cloud consola, ve a la página RAG Engine.

    Ir a Motor de RAG

  2. Selecciona la región en la que se ejecuta tu RAG Engine. Se ha actualizado tu lista de corpora de RAG.
  3. Haz clic en Configurar motor RAG. Aparecerá el panel Configurar buscador RAG.
  4. Selecciona el nivel en el que quieras ejecutar tu RAG Engine.
  5. Haz clic en Guardar.

Python

from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"

new_rag_engine_config = rag.RagEngineConfig(
name=rag_engine_config_name,
rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Scaled()),
)

updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
rag_engine_config=new_rag_engine_config
)

print(updated_rag_engine_config)

REST

curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'scaled': {}}}"

Actualizar tu RagEngineConfig al nivel básico

En los siguientes ejemplos de código se muestra cómo definir el nivel básico de RagEngineConfig:

Consola

  1. En la Google Cloud consola, ve a la página RAG Engine.

    Ir a Motor de RAG

  2. Selecciona la región en la que se ejecuta tu RAG Engine. Se ha actualizado tu lista de corpora de RAG.
  3. Haz clic en Configurar motor RAG. Aparecerá el panel Configurar buscador RAG.
  4. Selecciona el nivel en el que quieras ejecutar tu RAG Engine.
  5. Haz clic en Guardar.

Python

from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"

new_rag_engine_config = rag.RagEngineConfig(
name=rag_engine_config_name,
rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Basic()),
)

updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
rag_engine_config=new_rag_engine_config
)

print(updated_rag_engine_config)

REST

curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'basic': {}}}"

Actualizar tu RagEngineConfig al nivel Sin aprovisionar

En los siguientes ejemplos de código se muestra cómo definir el RagEngineConfig en el nivel Sin aprovisionar:

Consola

  1. En la Google Cloud consola, ve a la página RAG Engine.

    Ir a Motor de RAG

  2. Selecciona la región en la que se ejecuta tu RAG Engine. Se ha actualizado tu lista de corpora de RAG.
  3. Haz clic en Configurar motor RAG. Aparecerá el panel Configurar buscador RAG.
  4. Haz clic en Eliminar RAG Engine. Aparecerá un cuadro de diálogo de confirmación.
  5. Verifica que vas a eliminar tus datos en RAG Engine escribiendo eliminar y, a continuación, haz clic en Confirmar.
  6. Haz clic en Guardar.

Python

from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"

new_rag_engine_config = rag.RagEngineConfig(
  name=rag_engine_config_name,
  rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Unprovisioned()),
)

updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
  rag_engine_config=new_rag_engine_config
)

print(updated_rag_engine_config)

REST

curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'unprovisioned': {}}}"

Siguientes pasos