API de RAG Engine

El motor de RAG de Vertex AI es un componente de la plataforma de Vertex AI, que facilita la generación de aumento de recuperación (RAG). RAG Engine permite que los modelos grandes de lenguaje (LLM) incorporen y accedan a datos de fuentes de conocimiento externas, como documentos y bases de datos. Cuando usas RAG, los LLM pueden generar respuestas de LLM más informativas y precisas.

Lista de parámetros

En esta sección, se enumera 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 del 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.

Solicitud del cuerpo
Parámetros

display_name

Obligatorio: string

El nombre visible del corpus de RAG.

description

Opcional: string

Descripción del corpus de RAG.

vector_db_config

Opcional: Inmutable: RagVectorDbConfig

La configuración de las bases de datos de vectores.

vertex_ai_search_config.serving_config

Opcional: string

La 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}

RagVectorDbConfig
Parámetros

rag_managed_db

oneof vector_db: RagVectorDbConfig.RagManagedDb

Si no se especifica una base de datos de vectores, rag_managed_db es la base de datos de vectores predeterminada.

pinecone

oneof vector_db: RagVectorDbConfig.Pinecone

Especifica tu instancia de Pinecone.

pinecone.index_name

string

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

No se puede cambiar este valor después de establecerlo. Puedes dejarlo vacío en la llamada a la API de CreateRagCorpus y configurarlo con un valor no vacío en una llamada a la API de UpdateRagCorpus de seguimiento.

vertex_vector_search

oneof vector_db: RagVectorDbConfig.VertexVectorSearch

Especifica tu instancia de Vertex Vector Search.

vertex_vector_search.index

string

Este es el nombre del recurso del índice de búsqueda de vectores que se usa con el corpus de RAG.

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

No se puede cambiar este valor después de establecerlo. Puedes dejarlo vacío en la llamada a la API de CreateRagCorpus y configurarlo con un valor no vacío en una llamada a la API de UpdateRagCorpus de seguimiento.

vertex_vector_search.index_endpoint

string

Este es el nombre del recurso del extremo del índice de búsqueda de vectores que se usa con el corpus de RAG.

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

No se puede cambiar este valor después de establecerlo. Puedes dejarlo vacío en la llamada a la API de CreateRagCorpus y configurarlo con un valor no vacío en una llamada a la API de UpdateRagCorpus de seguimiento.

api_auth.api_key_config.api_key_secret_version

string

Este es el nombre completo del recurso del secreto que se almacena en Secret Manager, que contiene tu clave de API de Pinecone.

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

Puedes dejarlo vacío en la llamada a la API de CreateRagCorpus y configurarlo con un valor no vacío en una llamada a la API de UpdateRagCorpus de seguimiento.

rag_embedding_model_config.vertex_prediction_endpoint.endpoint

Opcional: Inmutable: string

El modelo de incorporación para el corpus de RAG. Una vez que lo configures, no podrás cambiar este valor. Si lo dejas vacío, usaremos text-embedding-005 como el modelo de incorporación.

Actualizar un corpus de RAG

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

Solicitud del cuerpo
Parámetros

display_name

Opcional: string

El nombre visible del corpus de RAG.

description

Opcional: string

Descripción del corpus de RAG.

rag_vector_db.pinecone.index_name

string

Este 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 Pinecone y este campo nunca se estableció antes, puedes actualizar el nombre del índice de la instancia de Pinecone.

rag_vector_db.vertex_vector_search.index

string

Este es el nombre del recurso del índice de búsqueda de vectores 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 Vector Search y nunca antes se había establecido este campo, puedes actualizarlo.

rag_vector_db.vertex_vector_search.index_endpoint

string

Este es el nombre del recurso del extremo del índice de búsqueda de vectores que se usa con el corpus de RAG.

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

Si tu RagCorpus se creó con una configuración Vector Search y nunca antes se había establecido este campo, puedes actualizarlo.

rag_vector_db.api_auth.api_key_config.api_key_secret_version

string

El nombre completo del recurso del secreto que se almacena en Secret Manager, que contiene tu clave de API de Pinecone.

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

Mostrar corpus RAG

En esta tabla, se incluyen los parámetros que se usan para enumerar los corpus de RAG.

Parámetros

page_size

Opcional: int

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

page_token

Opcional: string

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

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

name

string

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

Borra un corpus de RAG

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

Parámetros

name

string

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

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 indican los parámetros que se usan para subir un archivo RAG.

Solicitud del cuerpo
Parámetros

parent

string

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

rag_file

Obligatorio: RagFile

El archivo que se subirá.

upload_rag_file_config

Obligatorio: UploadRagFileConfig

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

RagFile

display_name

Obligatorio: string

El 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

Cantidad de tokens que tiene cada fragmento.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

La superposición entre fragmentos.

Importar archivos RAG

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

Parámetros

parent

Obligatorio: string

RagCorpus: el nombre del recurso.

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

gcs_source

oneof import_source: GcsSource

Ubicación de Cloud Storage.

Admite la importación de archivos individuales, así como directorios completos de Cloud Storage.

gcs_source.uris

list de string

URI de Cloud Storage que contiene el archivo de carga.

google_drive_source

oneof import_source: GoogleDriveSource

Ubicación de Google Drive.

Admite la importación de archivos individuales y carpetas de Google Drive.

slack_source

oneof import_source: SlackSource

El canal de Slack en el que se sube el archivo.

jira_source

oneof import_source: JiraSource

La consulta de Jira donde 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

Cantidad de tokens que tiene cada fragmento.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

La superposición entre fragmentos.

rag_file_parsing_config

Opcional: RagFileParsingConfig

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

Si no se configura este campo, RAG usará el analizador predeterminado.

max_embedding_requests_per_min

Opcional: int32

La cantidad máxima de consultas por minuto que este trabajo puede realizar al modelo de incorporación especificado en el corpus. Este valor es específico para este trabajo y no se comparte con otros trabajos de importación. Consulta la página Cuotas del proyecto para establecer un valor apropiado.

Si no se especifica, se usa un valor predeterminado de 1,000 QPM.

GoogleDriveSource

resource_ids.resource_id

Obligatorio: string

El ID del recurso de Google Drive.

resource_ids.resource_type

Obligatorio: string

El tipo de recurso de Google Drive.

SlackSource

channels.channels

Repeticiones: SlackSource.SlackChannels.SlackChannel

Información del canal de Slack, incluye el ID y el intervalo de tiempo para importar.

channels.channels.channel_id

Obligatorio: string

El ID del canal de Slack.

channels.channels.start_time

Opcional: google.protobuf.Timestamp

La marca de tiempo del inicio de los mensajes que se importarán.

channels.channels.end_time

Opcional: google.protobuf.Timestamp

Es la marca de tiempo de finalización de los mensajes que se importarán.

channels.api_key_config.api_key_secret_version

Obligatorio: string

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

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

JiraSource

jira_queries.projects

Repeticiones: string

Una lista de proyectos de Jira para importar en su totalidad.

jira_queries.custom_queries

Repeticiones: string

Una lista de consultas personalizadas de Jira para importar. Para obtener información sobre JQL (Jira Query Language), consulta
Asistencia para Jira

jira_queries.email

Obligatorio: string

La dirección de correo electrónico de Jira.

jira_queries.server_uri

Obligatorio: string

El URI del servidor de Jira.

jira_queries.api_key_config.api_key_secret_version

Obligatorio: string

El nombre completo del recurso del secreto que se almacena en Secret Manager, que contiene la clave de API de Jira que tiene acceso a los IDs de los canales de Slack.
Visita 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

La ruta de acceso de la carpeta de SharePoint desde la que se realiza la descarga.

share_point_sources.sharepoint_folder_id

oneof en folder_source: string

ID de la carpeta de SharePoint desde la que se realiza la descarga.

share_point_sources.drive_name

oneof en drive_source: string

Es el nombre de la unidad desde la que se realizará la descarga.

share_point_sources.drive_id

oneof en drive_source: string

El ID de la unidad desde la que se realizará la descarga.

share_point_sources.client_id

string

El ID de aplicación de la app registrada en el portal de Microsoft Azure.
La aplicación también debe estar configurada 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

El nombre completo del recurso del secreto que se almacena 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

El nombre del sitio de SharePoint desde el que se realizará la descarga. Puede ser el nombre o el ID del sitio.

RagFileParsingConfig

layout_parser

oneof parser: RagFileParsingConfig.LayoutParser

El analizador de diseño que se usará para los objetos RagFile.

layout_parser.processor_name

string

Es el nombre completo del recurso de un procesador de Document AI o una versión del procesador.

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

La cantidad máxima de solicitudes que el trabajo puede realizar al procesador de Document AI por minuto.

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

Obtén un archivo RAG

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

Parámetros

name

string

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

Borra un archivo RAG

En esta tabla, se indican los parámetros que se usan para borrar un archivo RAG.

Parámetros

name

string

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

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 para la API de retrieveContexts.

Parámetros

parent

Obligatorio: string

El nombre del recurso de la ubicación para recuperar RagContexts.
Los usuarios deben tener permiso para realizar una llamada 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

La representación de la fuente de RAG. Se puede usar para especificar solo el corpus o RagFiles. Solo admiten un corpus o varios archivos de un corpus.

rag_resources.rag_corpus

Opcional: string

Nombre del recurso RagCorpora.

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

rag_resources.rag_file_ids

lista: string

Una lista de RagFile recursos.

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

La configuración de recuperación para la consulta.

RagRetrievalConfig

top_k

Opcional: int32

La cantidad de contextos a recuperar.

filter.vector_distance_threshold

oneof vector_db_threshold: double

Solo muestra contextos con una distancia vectorial menor que el umbral.

filter.vector_similarity_threshold

oneof vector_db_threshold: double

Solo muestra contextos con una similitud vectorial mayor que el umbral.

ranking.rank_service.model_name

Opcional: string

El nombre del modelo del servicio de clasificación.

Ejemplo: semantic-ranker-512@latest

ranking.llm_ranker.model_name

Opcional: string

El nombre del modelo que se usa para la clasificación.

Ejemplo: gemini-2.0-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 configura para usar una fuente de datos con la tecnología de la tienda RAG de Vertex AI.

Consulta VertexRagStore para obtener más información.

Ejemplos de administración del 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 estas muestras de código, se demuestra 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: Es el ID de tu proyecto.
  • LOCATION: Es la región para procesar la solicitud.
  • CORPUS_DISPLAY_NAME: El nombre visible del corpus de RAG
  • CORPUS_DESCRIPTION: Es 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 correcto (2xx).

En el siguiente ejemplo, se muestra cómo crear un corpus RAG mediante la API de 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

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 del SDK de Vertex AI de referencia de la API de Vertex para 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 el corpus de RAG con un nombre visible, una descripción y una configuración de la base de datos de vectores nuevos. Sin embargo, no puedes cambiar los siguientes parámetros en el corpus de RAG:

  • Es el tipo de base de datos de vectores. 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.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la región para procesar la solicitud.
  • CORPUS_ID: El ID del corpus de tu corpus de RAG
  • CORPUS_DISPLAY_NAME: El nombre visible del corpus de RAG
  • CORPUS_DESCRIPTION: Es la descripción del corpus de RAG.
  • INDEX_NAME: Es el nombre del recurso del índice de búsqueda de vectores. Formato: projects/{project}/locations/{location}/indexes/{index}.
  • INDEX_ENDPOINT_NAME: Es el nombre del recurso del extremo del índice de la Búsqueda de vectores. 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",
  "rag_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 correcto (2xx).

Mostrar ejemplo de corpus de RAG

En estas muestras de código, se demuestra cómo enumerar todos los corpus de la RAG.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la región para procesar la solicitud.
  • PAGE_SIZE: Es el tamaño de página de lista estándar. Puedes ajustar la cantidad de corpus RAG que se muestra por página si actualizas el parámetro page_size.
  • PAGE_TOKEN: Es el token de página de lista estándar. Por lo general, se obtiene 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 exitoso (2xx) y una lista de corpus RAG 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 del SDK de Vertex AI de referencia de la API de Vertex para 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 {
# ...

Obtén un ejemplo de corpus de RAG

En estas muestras de código, se indica cómo obtener un corpus de RAG.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la región para procesar la solicitud.
  • RAG_CORPUS_ID: Es el ID del recurso del 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

Una respuesta correcta muestra el recurso RagCorpus.

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

    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

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 del SDK de Vertex AI de referencia de la API de Vertex para 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',
# ...

Borra un ejemplo de corpus de RAG

En estas muestras de código, se indica cómo borrar un corpus de RAG.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la región para procesar la solicitud.
  • RAG_CORPUS_ID: Es 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

Una respuesta correcta muestra el 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 del SDK de Vertex AI de referencia de la API de Vertex para 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 administración de archivos

Esta sección proporciona ejemplos de cómo usar la API para administrar archivos RAG.

Sube un ejemplo de archivo RAG

Estas muestras de código demuestran cómo subir un archivo RAG.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

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

Para enviar la 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

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 del SDK de Vertex AI de referencia de la API de Vertex para 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 las fallas parciales, el tiempo de solicitud y el tiempo de respuesta en el objeto response del SDK.

El 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:

  1. Ya se importó el archivo.
  2. El archivo no cambió.
  3. 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: Es el ID de tu proyecto.
  • LOCATION: Es la región para procesar la solicitud.
  • RAG_CORPUS_ID: El ID del corpus de tu corpus de RAG
  • FOLDER_RESOURCE_ID: Es el ID de recurso de tu carpeta de Drive.
  • GCS_URIS: Es una lista de ubicaciones de Cloud Storage. Ejemplo: gs://my-bucket1.
  • CHUNK_SIZE: Número de tokens que debe tener cada fragmento
  • CHUNK_OVERLAP: Cantidad de tokens superpuestos entre fragmentos.
  • EMBEDDING_MODEL_QPM_RATE: Es la frecuencia de QPM para limitar el acceso de RAG a tu modelo de incorporación. Ejemplo: 1,000.

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

Una respuesta correcta muestra 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 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.

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la región para procesar la solicitud.
  • RAG_CORPUS_ID: El ID del corpus de tu corpus de RAG
  • GCS_URIS: Es una lista de ubicaciones de Cloud Storage. Ejemplo: gs://my-bucket1.
  • CHUNK_SIZE: Número de tokens que debe tener cada fragmento
  • CHUNK_OVERLAP: Cantidad de tokens superpuestos entre fragmentos.
  • EMBEDDING_MODEL_QPM_RATE: Es la frecuencia de QPM para limitar el acceso de RAG al modelo de incorporación. Ejemplo: 1,000.
// 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 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.

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la región para procesar la solicitud.
  • RAG_CORPUS_ID: El ID del corpus de tu corpus de RAG
  • FOLDER_RESOURCE_ID: Es el ID de recurso de tu carpeta de Drive.
  • CHUNK_SIZE: Número de tokens que debe tener cada fragmento
  • CHUNK_OVERLAP: Cantidad de tokens superpuestos entre fragmentos.
  • EMBEDDING_MODEL_QPM_RATE: Es la frecuencia de QPM para limitar el acceso de RAG a tu modelo de incorporación. Ejemplo: 1,000.
// 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
  }
}'

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 del SDK de Vertex AI de referencia de la API de Vertex para 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 Google 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=512, chunk_overlap=100)
    ),
    import_result_sink="gs://sample-existing-folder/sample_import_result_unique.ndjson",  # Optional, this has to be an existing storage bucket folder, and file name has to be unique (non-existent).
    max_embedding_requests_per_min=900,  # Optional
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.

Ejemplo de lista de archivos RAG

En estas muestras de código, se explica cómo enumerar archivos RAG.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la región para procesar la solicitud.
  • RAG_CORPUS_ID: Es el ID del recurso RagCorpus.
  • PAGE_SIZE: Es 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ámetro page_size.
  • PAGE_TOKEN: Es el token de página de lista estándar. Se obtiene con ListRagFilesResponse.next_page_token de la llamada a 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 exitoso (2xx) junto con una lista de 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 del SDK de Vertex AI de referencia de la API de Vertex para 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 ejemplo de archivo RAG

En estas muestras de código, se indica 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: Es el ID de tu proyecto.
  • LOCATION: Es la región para procesar la solicitud.
  • RAG_CORPUS_ID: Es el ID del recurso RagCorpus.
  • RAG_FILE_ID: Es 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

Una respuesta correcta muestra el recurso 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 del SDK de Vertex AI de referencia de la API de Vertex para 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')

Cómo borrar un ejemplo de archivo RAG

En estas muestras de código, se indica 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: Es la región para procesar la solicitud.
  • RAG_CORPUS_ID: Es el ID del recurso RagCorpus.
  • RAG_FILE_ID: Es 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/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

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 del SDK de Vertex AI de referencia de la API de Vertex para 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.

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:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la región para procesar la solicitud.
  • RAG_CORPUS_RESOURCE: Es el nombre del recurso RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
  • VECTOR_DISTANCE_THRESHOLD: Solo se muestran los contextos con una distancia vectorial 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/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 exitoso (2xx) y una lista de 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 del SDK de Vertex AI de referencia de la API de Vertex para 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: "....
#   ....

Generación

El LLM genera una respuesta fundamentada a partir de los contextos recuperados.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la región para procesar la solicitud.
  • MODEL_ID: Es un modelo de LLM para la generación de contenido. Ejemplo: gemini-2.0-flash-001.
  • GENERATION_METHOD: Es el método LLM para la generación de contenido. Opciones: generateContent y 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: Es el nombre del recurso RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
  • SIMILARITY_TOP_K: Es la cantidad de contextos principales que se deben recuperar (opcional).
  • VECTOR_DISTANCE_THRESHOLD: Opcional: Se muestran contextos con una distancia vectorial menor que el 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

Una respuesta correcta muestra el contenido generado con citas.

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 del SDK de Vertex AI de referencia de la API de Vertex para 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....
#   ...

¿Qué sigue?