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 mejorada por recuperación (RAG). RAG Engine permite que los modelos de lenguaje grandes (LLM) accedan a datos de fuentes de conocimiento externas, como documentos y bases de datos, y los incorporen. Con la RAG, los LLMs pueden generar respuestas más informativas y precisas.

Lista de parámetros

En esta sección, se enumeran los siguientes elementos:

Parámetros Ejemplos
Consulta Parámetros de administración del corpus. Consulta Ejemplos de administración de corpus.
Consulta Parámetros de administración de archivos. Consulta Ejemplos de administración de archivos.
Consulta Parámetros de administración de proyectos. Consulta Ejemplos de administración de proyectos.

Parámetros de administración de corpus

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

Crea un corpus RAG

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

Cuerpo de la solicitud
Parámetros

corpus_type_config

Opcional: Inmutable.

RagCorpus.CorpusTypeConfig

Es la configuración para especificar el tipo de corpus.

display_name

Obligatorio: string

Es el nombre visible del corpus de RAG.

description

Opcional: string

Es la descripción del corpus de RAG.

encryption_spec

Opcional: Inmutable: string

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

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

vector_db_config

Opcional: Inmutable: RagVectorDbConfig

Es la configuración de las bases de datos de vectores.

vertex_ai_search_config.serving_config

Opcional: string

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

CorpusTypeConfig
Parámetros

document_corpus

oneof RagCorpus.CorpusTypeConfig.DocumentCorpus

El valor predeterminado de corpus_type_config, que representa un corpus de RAG convencional basado en documentos.

memory_corpus

oneof RagCorpus.CorpusTypeConfig.MemoryCorpus

Si configuras este tipo, el corpus de RAG será un MemoryCorpus que se puede usar con la API de Gemini Live como almacén de memoria.

Para obtener más información, consulta Cómo usar Vertex AI RAG Engine como el almacén de memoria.

memory_corpus.llm_parser

oneof RagFileParsingConfig.LlmParser

Es el analizador de LLM que se usa para analizar y almacenar los contextos de sesión de la API de Gemini Live. Puedes crear recuerdos para la indexación.

RagVectorDbConfig
Parámetros

rag_managed_db

oneof vector_db: RagVectorDbConfig.RagManagedDb

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

rag_managed_db.knn

oneof retrieval_strategy: KNN

Predeterminado.

Encuentra los vecinos más cercanos exactos comparando todos los puntos de datos de tu corpus de RAG.

Si no especificas una estrategia durante la creación de tu corpus de RAG, se usará la estrategia de recuperación predeterminada de KNN.

rag_managed_db.ann

oneof retrieval_strategy: ANN

tree_depth

Determina la cantidad de capas o niveles del árbol.

Si tienes O(10K) archivos RAG en el corpus de RAG, establece este valor en 2.
  • Si se requieren más capas o niveles, establece este valor en 3.
  • Si no se especifica la cantidad de capas o niveles, Vertex AI RAG Engine asigna un valor predeterminado de 2 para este parámetro.

leaf_count

Determina la cantidad de nodos hoja en la estructura basada en el árbol.

  • El valor recomendado es 10 * sqrt(num of RAG files in your RAG corpus).
  • Si no se especifica, Vertex AI RAG Engine asigna un valor predeterminado de 500 para este parámetro.

rebuild_ann_index

  • Vertex AI RAG Engine recompila tu índice de ANN.
  • Se debe establecer en true en la solicitud a la API de ImportRagFiles.
  • Antes de consultar el corpus de RAG, es necesario volver a compilar el índice de ANN una vez.
  • Solo se admite una recompilación de índice simultánea en un proyecto en cada ubicación.

weaviate

oneof vector_db: RagVectorDbConfig.Weaviate

Especifica tu instancia de Weaviate.

weaviate.http_endpoint

string

El extremo HTTP de la instancia de Weaviate

Este valor no se puede cambiar 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.

weaviate.collection_name

string

Es la colección de Weaviate a la que se asigna el corpus de RAG.

Este valor no se puede cambiar 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.

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.

Este valor no se puede cambiar 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_feature_store

oneof vector_db: RagVectorDbConfig.VertexFeatureStore

Especifica tu instancia de Vertex AI Feature Store.

vertex_feature_store.feature_view_resource_name

string

Es el FeatureView de Vertex AI Feature Store al que se asigna el corpus de RAG.

Formato: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

Este valor no se puede cambiar 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

Es el nombre del recurso del índice de Vector Search que se usa con el corpus de RAG.

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

Este valor no se puede cambiar 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

Es el nombre del recurso del extremo del índice de la Búsqueda de vectores que se usa con el corpus de RAG.

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

Este valor no se puede cambiar 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

Es el nombre completo del recurso del secreto que se almacena en Secret Manager, que contiene tu clave de API de Weaviate o Pinecone, según tu elección de base de datos de vectores.

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

Es el modelo de incorporación que se usará para el corpus de RAG. Este valor no se puede cambiar después de establecerlo. Si lo dejas vacío, usaremos text-embedding-005 como modelo de embedding.

Actualiza 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

Es el nombre visible del corpus de RAG.

description

Opcional: string

Es la descripción del corpus de RAG.

rag_vector_db.weaviate.http_endpoint

string

El extremo HTTP de la instancia de Weaviate

Si tu RagCorpus se creó con una configuración de Weaviate y este campo nunca se configuró antes, puedes actualizar el extremo HTTP de la instancia de Weaviate.

rag_vector_db.weaviate.collection_name

string

Es la colección de Weaviate a la que se asigna el corpus de RAG.

Si tu RagCorpus se creó con una configuración de Weaviate y este campo nunca se configuró antes, puedes actualizar el nombre de la colección de la instancia de Weaviate.

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

rag_vector_db.vertex_feature_store.feature_view_resource_name

string

Es el FeatureView de Vertex AI Feature Store al que se asigna el corpus de RAG.

Formato: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

Si tu RagCorpus se creó con una configuración de Vertex AI Feature Store y este campo nunca se configuró antes, puedes actualizarlo.

rag_vector_db.vertex_vector_search.index

string

Es el nombre del recurso del índice de Vector Search 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 configuró antes, puedes actualizarlo.

rag_vector_db.vertex_vector_search.index_endpoint

string

Es el nombre del recurso del extremo del índice de la 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 de Vector Search y este campo nunca se configuró antes, puedes actualizarlo.

rag_vector_db.api_auth.api_key_config.api_key_secret_version

string

Es el nombre completo del recurso del secreto que se almacena en Secret Manager, que contiene tu clave de API de Weaviate o Pinecone, según tu elección de base de datos de vectores.

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

Enumera los corpus de RAG

En esta tabla, se enumeran los parámetros que se usan para enumerar los corpus 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 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 enumeran los parámetros que se usan para subir un archivo de RAG.

Cuerpo de la solicitud
Parámetros

parent

string

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

rag_file

Obligatorio: RagFile

Es el archivo que se subirá.

upload_rag_file_config

Obligatorio: UploadRagFileConfig

Es la configuración del RagFile que se subirá al RagCorpus.

RagFile

display_name

Obligatorio: string

Es el nombre visible del archivo RAG.

description

Opcional: string

Es 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

Es la superposición entre fragmentos.

Importar archivos RAG

En esta tabla, se enumeran los parámetros que se usan para importar un archivo de 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 y de 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

Es el canal de Slack en el que se subió el archivo.

jira_source

oneof import_source: JiraSource

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

share_point_sources

oneof import_source: SharePointSources

Son las fuentes de SharePoint en las que se subió 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

Es la superposición entre fragmentos.

rag_file_parsing_config

Opcional: RagFileParsingConfig

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

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

max_embedding_requests_per_min

Opcional: int32

Es la cantidad máxima de consultas por minuto que este trabajo puede realizar al modelo de embedding 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 establecer un valor adecuado.

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

Repetido: SlackSource.SlackChannels.SlackChannel

Información del canal de Slack, incluido el ID y el período que se importará.

channels.channels.channel_id

Obligatorio: string

Es el ID del canal de Slack.

channels.channels.start_time

Opcional: google.protobuf.Timestamp

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

channels.channels.end_time

Opcional: google.protobuf.Timestamp

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

channels.api_key_config.api_key_secret_version

Obligatorio: string

Es el nombre completo del recurso del secreto que se almacena en Secret Manager y que contiene un token de acceso al canal de Slack que tiene acceso a los IDs de los canales 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

Es una lista de proyectos de Jira que se importarán en su totalidad.

jira_queries.custom_queries

Repetido: string

Es una lista de consultas personalizadas de Jira que se importarán. Para obtener información sobre JQL (Jira Query Language), consulta
Asistencia de Jira

jira_queries.email

Obligatorio: string

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

jira_queries.server_uri

Obligatorio: string

Es el URI del servidor de Jira.

jira_queries.api_key_config.api_key_secret_version

Obligatorio: string

Es el nombre completo del recurso del secreto que se almacena en Secret Manager y 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

Es la ruta de acceso de la carpeta de SharePoint desde la que se realizará la descarga.

share_point_sources.sharepoint_folder_id

oneof en folder_source: string

ID de la carpeta de SharePoint desde la que se realizará la descarga.

share_point_sources.drive_name

oneof en drive_source: string

Nombre de la unidad desde la que se realizará la descarga.

share_point_sources.drive_id

oneof en drive_source: string

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

share_point_sources.client_id

string

Es el ID de la aplicación registrada en el portal de Microsoft Azure.
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

Es el nombre completo del recurso del secreto que se almacena en Secret Manager y 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

Es el identificador único de la instancia de Azure Active Directory.

share_point_sources.sharepoint_site_name

string

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

Es el analizador de diseño que se usará para los RagFile.

layout_parser.processor_name

string

Es el nombre completo del recurso de un procesador o una versión del 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

Es 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.

llm_parser

oneof parser: RagFileParsingConfig.LlmParser

Es el analizador de LLM que se usará para los RagFile.

llm_parser.model_name

string

Es el nombre del recurso de un modelo de LLM.

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

llm_parser.max_parsing_requests_per_min

string

Es la cantidad máxima de solicitudes que el trabajo puede realizar al modelo de LLM por minuto.

Para establecer un valor adecuado para tu proyecto, consulta la sección de cuotas del modelo y la página Cuotas de tu proyecto para establecer un valor adecuado aquí. Si no se especifica, se usa un valor predeterminado de 5,000 QPM.

Obtén un archivo RAG

En esta tabla, se enumeran 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 enumeran 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}

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 de retrieveContexts.

Parámetros

parent

Obligatorio: string

Es el nombre del recurso de la ubicación que se recuperará RagContexts.
Los usuarios deben tener permiso para realizar una llamada en el proyecto.

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

vertex_rag_store

VertexRagStore

Es la fuente de datos de Vertex RagStore.

query

Obligatorio: RagQuery

Es una sola consulta de recuperación de RAG.

VertexRagStore
VertexRagStore

rag_resources

lista: RagResource

Es la representación de la fuente de RAG. Se puede usar para especificar solo el corpus o los RagFile. Solo admite 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

Es una lista de recursos RagFile.

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

RagQuery

text

string

Es la consulta en formato de texto para obtener contextos relevantes.

rag_retrieval_config

Opcional: RagRetrievalConfig

Es la configuración de recuperación para la búsqueda.

RagRetrievalConfig

top_k

Opcional: int32

Es la cantidad de contextos que se recuperarán.

hybrid_search.alpha

Opcional: float

El valor alfa controla el peso entre los resultados de la búsqueda de vectores densos y dispersos. El rango es [0, 1], en el que 0 significa solo búsqueda de vectores dispersos y 1 significa solo búsqueda de vectores densos. El valor predeterminado es 0.5, que equilibra la búsqueda de vectores dispersos y densos por igual.

La búsqueda híbrida solo está disponible para Weaviate.

filter.vector_distance_threshold

oneof vector_db_threshold: double

Solo se devuelven los contextos con una distancia de vector menor que el umbral.

filter.vector_similarity_threshold

oneof vector_db_threshold: double

Solo se devuelven los contextos con una similitud de vector mayor que el umbral.

ranking.rank_service.model_name

Opcional: string

Es el nombre del modelo del servicio de clasificación.

Ejemplo: semantic-ranker-512@latest

ranking.llm_ranker.model_name

Opcional: string

Es el nombre del modelo que se usa 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 configura para usar una fuente de datos potenciada por el almacén de RAG de Vertex AI.

Consulta VertexRagStore para obtener más detalles.

Parámetros de administración de proyectos

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

RagEngineConfig
Parámetros
RagManagedDbConfig.scaled Este nivel ofrece rendimiento a escala de producción junto con la funcionalidad de ajuste de escala automático.
RagManagedDbConfig.basic Este nivel ofrece un nivel de procesamiento rentable y bajo.
RagManagedDbConfig.unprovisioned Este nivel borra el RagManagedDb y su instancia subyacente de Spanner.

Ejemplos de administración de corpus

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

Crea un ejemplo de corpus de RAG

En esta muestra de código, se muestra cómo crear un corpus de RAG.

REST

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

  • PROJECT_ID: El ID del proyecto.
  • LOCATION: La región para procesar la solicitud.
  • CORPUS_DISPLAY_NAME: es el nombre visible del RagCorpus.
  • CORPUS_DESCRIPTION: Es la descripción de RagCorpus.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "display_name" : "CORPUS_DISPLAY_NAME",
  "description": "CORPUS_DESCRIPTION",
}

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

PowerShell

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

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

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

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  CORPUS_DISPLAY_NAME: The display name of the <code>RagCorpus</code>.
    // CreateRagCorpus
    // Input: LOCATION, PROJECT_ID, CORPUS_DISPLAY_NAME
    // Output: CreateRagCorpusOperationMetadata
    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora \
    -d '{
          "display_name" : "CORPUS_DISPLAY_NAME"
      }'

Actualiza un ejemplo de corpus de RAG

Puedes actualizar tu corpus de RAG con un nuevo nombre visible, una nueva descripción y una nueva configuración de la base de datos de vectores. Sin embargo, no puedes cambiar los siguientes parámetros en tu corpus de RAG:

  • Es el tipo de base de datos vectorial. Por ejemplo, no puedes cambiar la base de datos de vectores de Weaviate a Vertex AI Feature Store.
  • Si usas la opción de base de datos administrada, no puedes actualizar la configuración de la base de datos de vectores.

En estos ejemplos, se muestra cómo actualizar un corpus RAG.

REST

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

  • PROJECT_ID: El ID del proyecto.
  • LOCATION: La región para procesar la solicitud.
  • CORPUS_ID: Es el ID del corpus de tu corpus de RAG.
  • CORPUS_DISPLAY_NAME: es el nombre visible del RagCorpus.
  • CORPUS_DESCRIPTION: Es la descripción de RagCorpus.
  • INDEX_NAME: Es el nombre del recurso Vector Search Index. Formato: projects/{project}/locations/{location}/indexes/{index}
  • INDEX_ENDPOINT_NAME: Es el nombre del recurso Vector Search Index Endpoint. Formato: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "display_name" : "CORPUS_DISPLAY_NAME",
  "description": "CORPUS_DESCRIPTION",
  "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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID" | Select-Object -Expand Content
Deberías recibir un código de estado correcto (2xx).

Ejemplo de lista de corpus de RAG

En esta muestra de código, se muestra cómo enumerar todos los corpus de RAG.

REST

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

  • PROJECT_ID: El ID del proyecto.
  • LOCATION: La región para procesar la solicitud.
  • PAGE_SIZE: El tamaño de página de lista estándar. Puedes ajustar la cantidad de RagCorpora que se muestran por página si actualizas el parámetro page_size.
  • PAGE_TOKEN: El token de página de lista estándar. Se obtiene normalmente con ListRagCorporaResponse.next_page_token de la llamada VertexRagDataService.ListRagCorpora anterior.

Método HTTP y URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"

PowerShell

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/v1beta1/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 RagCorpora en el PROJECT_ID determinado.

Obtén un ejemplo de corpus de RAG

REST

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

  • PROJECT_ID: El ID del proyecto.
  • LOCATION: La región para procesar la solicitud.
  • RAG_CORPUS_ID: El ID del recurso RagCorpus.

Método HTTP y URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/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/v1beta1/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 utilizan en un ejemplo para demostrar cómo RagCorpus usa el campo rag_embedding_model_config dentro de 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.
// GetRagCorpus
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID
// Output: RagCorpus
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID

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

Ejemplo de eliminación de un corpus de RAG

REST

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

  • PROJECT_ID: El ID del proyecto.
  • LOCATION: La región para procesar la solicitud.
  • RAG_CORPUS_ID: El ID del recurso RagCorpus.

Método HTTP y URL:

DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente comando:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
Una respuesta correcta muestra el DeleteOperationMetadata.

Ejemplos de administración de archivos

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

Ejemplo de carga de un archivo RAG

REST

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

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  LOCAL_FILE_PATH: The local path to the file to be uploaded.
  DISPLAY_NAME: The display name of the RAG file.
  DESCRIPTION: The description of the RAG file.

Para enviar 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/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"

Ejemplo de importación de archivos RAG

Los archivos y las carpetas se pueden importar desde Drive o Cloud Storage.

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. El archivo ya se importó.
  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: El ID del proyecto.
  • LOCATION: La región para procesar la solicitud.
  • RAG_CORPUS_ID: El ID del recurso RagCorpus.
  • GCS_URIS: Es una lista de ubicaciones de Cloud Storage. Ejemplo: gs://my-bucket1, gs://my-bucket2.
  • CHUNK_SIZE: Cantidad de tokens que debe tener cada fragmento (opcional).
  • CHUNK_OVERLAP: La cantidad de tokens que se superponen entre los fragmentos (opcional).

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import

Cuerpo JSON de la solicitud:

{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": "GCS_URIS"
    },
    "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/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

PowerShell

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

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

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
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: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  GCS_URIS: A list of Cloud Storage locations. Example: gs://my-bucket1.
  CHUNK_SIZE: Number of tokens each chunk should have.
  CHUNK_OVERLAP: Number of tokens overlap between chunks.
  EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID, GCS_URIS
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import \
-d '{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": "GCS_URIS"
    },
    "rag_file_chunking_config": {
      "chunk_size": CHUNK_SIZE,
      "chunk_overlap": CHUNK_OVERLAP
    },
    "max_embedding_requests_per_min": EMBEDDING_MODEL_QPM_RATE
  }
}'

// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID: The operation ID you get from the response of the previous command.
poll_op_wait OPERATION_ID

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: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  FOLDER_RESOURCE_ID: The resource ID of your Google Drive folder.
  CHUNK_SIZE: Number of tokens each chunk should have.
  CHUNK_OVERLAP: Number of tokens overlap between chunks.
  EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID, FOLDER_RESOURCE_ID
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import \
-d '{
  "import_rag_files_config": {
    "google_drive_source": {
      "resource_ids": {
        "resource_id": "FOLDER_RESOURCE_ID",
        "resource_type": "RESOURCE_TYPE_FOLDER"
      }
    },
    "max_embedding_requests_per_min": EMBEDDING_MODEL_QPM_RATE
  }
}'

// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID: The operation ID you get from the response of the previous command.
poll_op_wait OPERATION_ID

Ejemplo de lista de archivos RAG

En este muestra de código, se muestra cómo enumerar archivos RAG.

REST

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

  • PROJECT_ID: El ID del proyecto.
  • LOCATION: La región para procesar la solicitud.
  • RAG_CORPUS_ID: El ID del recurso RagCorpus.
  • PAGE_SIZE: El tamaño de página de lista estándar. Puedes ajustar la cantidad de RagFiles que se muestran por página si actualizas el parámetro page_size.
  • PAGE_TOKEN: El token de página de lista estándar. Se obtiene normalmente con ListRagFilesResponse.next_page_token de la llamada VertexRagDataService.ListRagFiles anterior.

Método HTTP y URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"

PowerShell

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/v1beta1/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.

Obtén un ejemplo de archivo RAG

En este muestra de código, se muestra cómo obtener un archivo RAG.

REST

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

  • PROJECT_ID: El ID del proyecto.
  • LOCATION: La región para procesar la solicitud.
  • RAG_CORPUS_ID: El ID del recurso RagCorpus.
  • RAG_FILE_ID: El ID del recurso RagFile.

Método HTTP y URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

PowerShell

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/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
Una respuesta correcta muestra el recurso RagFile.

Ejemplo de borrado de un archivo RAG

En esta muestra 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: La región para procesar la solicitud.
  • RAG_CORPUS_ID: El ID del recurso RagCorpus.
  • RAG_FILE_ID: El ID del recurso RagFile. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}.

Método HTTP y URL:

DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente comando:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

PowerShell

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/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
Una respuesta correcta muestra el recurso DeleteOperationMetadata.

Ejemplo de consulta de recuperación

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

REST

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

  • LOCATION: La región para procesar la solicitud.
  • PROJECT_ID: El ID del proyecto.
  • RAG_CORPUS_RESOURCE: El nombre del recurso RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
  • VECTOR_DISTANCE_THRESHOLD: Solo se muestran los contextos con una distancia de vector menor que el umbral.
  • TEXT: Es el texto de la consulta para obtener contextos relevantes.
  • SIMILARITY_TOP_K: La cantidad de contextos principales que se recuperarán.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
 "vertex_rag_store": {
    "rag_resources": {
      "rag_corpus": "RAG_CORPUS_RESOURCE"
    },
    "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD
  },
  "query": {
   "text": "TEXT",
   "similarity_top_k": SIMILARITY_TOP_K
  }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

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

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

PowerShell

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/v1beta1/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.

Ejemplo de generación

El LLM genera una respuesta fundamentada con los contextos recuperados.

REST

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

  • PROJECT_ID: El ID del proyecto.
  • LOCATION: La región para procesar la solicitud.
  • MODEL_ID: Es un modelo de LLM para la generación de contenido. Ejemplo: gemini-2.5-flash
  • GENERATION_METHOD: Es el método LLM para la generación de contenido. Opciones: generateContent, streamGenerateContent
  • INPUT_PROMPT: Es el texto enviado al LLM para la generación de contenido. Intenta usar una instrucción relevante para los archivos rag subidos.
  • RAG_CORPUS_RESOURCE: El nombre del recurso RagCorpus. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
  • SIMILARITY_TOP_K: Opcional: La cantidad de contextos principales que se recuperarán.
  • VECTOR_DISTANCE_THRESHOLD: Opcional: Se muestran contextos con una distancia vectorial menor que el umbral.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD

Cuerpo JSON de la solicitud:

{
 "contents": {
  "role": "user",
  "parts": {
    "text": "INPUT_PROMPT"
  }
 },
 "tools": {
  "retrieval": {
   "disable_attribution": false,
   "vertex_rag_store": {
    "rag_resources": {
      "rag_corpus": "RAG_CORPUS_RESOURCE"
    },
    "similarity_top_k": SIMILARITY_TOP_K,
    "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD
   }
  }
 }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

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

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

PowerShell

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/v1beta1/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.

Ejemplos de administración de proyectos

El nivel es un parámetro de configuración a nivel del proyecto disponible en el recurso RagEngineConfig y afecta a los corpus 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 administrar la configuración de tu nivel, consulta Administra tu nivel.

Obtén la configuración del proyecto

En el siguiente código de muestra, se muestra cómo leer tu RagEngineConfig:

Console

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

    Ir a RAG Engine

  2. Selecciona la región en la que se ejecuta tu motor de RAG. Se actualizó tu lista de corpus de RAG.
  3. Haz clic en Configurar RAG Engine. Aparecerá el panel Configurar RAG Engine. Puedes ver el nivel seleccionado para tu motor de 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/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig

Actualiza la configuración del proyecto

En esta sección, se proporcionan muestras de código para demostrar cómo cambiar tu nivel en la configuración.

Actualiza tu RagEngineConfig al nivel de escalamiento

En las siguientes muestras de código, se muestra cómo establecer RagEngineConfig en el nivel de servicio Escalado:

Console

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

    Ir a RAG Engine

  2. Selecciona la región en la que se ejecuta tu motor de RAG. Se actualizó tu lista de corpus de RAG.
  3. Haz clic en Configurar RAG Engine. Aparecerá el panel Configurar RAG Engine.
  4. Selecciona el nivel en el que deseas 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/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'scaled': {}}}"

Actualiza tu RagEngineConfig al nivel Básico

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

Si tienes una gran cantidad de datos en tu RagManagedDb en todos tus corpus de RAG, es posible que no se pueda cambiar a un nivel Básico debido a la capacidad de procesamiento y almacenamiento insuficientes.

Console

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

    Ir a RAG Engine

  2. Selecciona la región en la que se ejecuta tu motor de RAG. Se actualizó tu lista de corpus de RAG.
  3. Haz clic en Configurar RAG Engine. Aparecerá el panel Configurar RAG Engine.
  4. Selecciona el nivel en el que deseas 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/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'basic': {}}}"

Actualiza tu RagEngineConfig al nivel Unprovisioned

En las siguientes muestras de código, se muestra cómo establecer RagEngineConfig en el nivel sin aprovisionar:

Console

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

    Ir a RAG Engine

  2. Selecciona la región en la que se ejecuta tu motor de RAG. Se actualizó tu lista de corpus de RAG.
  3. Haz clic en Configurar RAG Engine. Aparecerá el panel Configurar RAG Engine.
  4. Haz clic en Borrar RAG Engine. Aparecerá un diálogo de confirmación.
  5. Para verificar que estás a punto de borrar tus datos en RAG Engine, escribe delete y, luego, 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/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'unprovisioned': {}}}"

¿Qué sigue?