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. Mediante el uso de RAG, los LLM pueden generar respuestas más precisas y informativas.
Ejemplo de sintaxis
En esta sección, se proporciona la sintaxis para crear un corpus de RAG.
curl
PROJECT_ID: Your project ID. LOCATION: The region to process the request. 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" : "...", "description": "..." }'
Python
corpus = rag.create_corpus(display_name=..., description=...) print(corpus)
Lista de parámetros
En esta sección, se incluye lo siguiente:
Parámetros | Ejemplos |
---|---|
Consulta Parámetros de administración de corpus. | Consulta ejemplos de administración de corpus. |
Consulta Parámetros de administración de archivos. | Consulta Ejemplos de administración de archivos. |
Parámetros de administración de corpus
Para obtener información sobre un corpus de RAG, consulta Administración de corpus.
Crea un corpus RAG
En esta tabla, se enumeran los parámetros que se usan para crear un corpus de RAG.
Solicitud del cuerpo
Parámetros | |
---|---|
|
Obligatorio: Es el nombre visible del corpus de RAG. |
|
Opcional: La descripción del corpus de RAG. |
|
Opcional: Inmutable: La configuración de las bases de datos de vectores |
RagVectorDbConfig
Parámetros | |
---|---|
|
Si no se especifica una base de datos de vectores, |
|
Especifica tu instancia de Pinecone. |
|
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 configurarlo. Puedes dejarlo vacío en la llamada a la API de |
|
Especifica tu instancia de Vector Search de Vertex. |
|
Es el nombre del recurso del índice de Búsqueda vectorial que se usa con el corpus de RAG. Formato: Este valor no se puede cambiar después de configurarlo. Puedes dejarlo vacío en la llamada a la API de |
|
Este es el nombre del recurso del extremo del índice de la Búsqueda de vectores que se usa con el corpus de RAG. Formato: Este valor no se puede cambiar después de configurarlo. Puedes dejarlo vacío en la llamada a la API de |
|
Este es el nombre de recurso completo del secreto que se almacena en Secret Manager, que contiene tu clave de API de Pinecone. Formato: Puedes dejarlo vacío en la llamada a la API de |
|
Opcional: Inmutable: El modelo de incorporación que se usará para el corpus de RAG. Este valor no se puede cambiar después de configurarlo. Si lo dejas en blanco, usaremos text-embedding-004 como el modelo de incorporación. |
Actualiza 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 | |
---|---|
|
Opcional: Es el nombre visible del corpus de RAG. |
|
Opcional: La descripción del corpus de RAG. |
|
Este es el nombre que se usa para crear el índice de Pinecone que se usa con el corpus de RAG. Si tu |
|
Es el nombre del recurso del índice de Búsqueda vectorial que se usa con el corpus de RAG. Formato: Si tu |
|
Este es el nombre del recurso del extremo del índice de la Búsqueda de vectores que se usa con el corpus de RAG. Formato: Si tu |
|
El nombre de recurso completo del secreto que se almacena en Secret Manager, que contiene tu clave de API de Pinecone. Formato: |
Enumera los corpus de RAG
En esta tabla, se enumeran los parámetros que se usan para enumerar los corpus de RAG.
Parámetros | |
---|---|
|
Opcional: El tamaño de página de lista estándar. |
|
Opcional: El token de página de lista estándar. Por lo general, se obtiene de |
Obtén un corpus de RAG
En esta tabla, se enumeran los parámetros que se usan para obtener un corpus de RAG.
Parámetros | |
---|---|
|
|
Borra un corpus de RAG
En esta tabla, se enumeran los parámetros que se usan para borrar un corpus de RAG.
Parámetros | |
---|---|
|
|
Parámetros de administración de archivos
Para obtener información sobre un archivo RAG, consulta Administración de archivos.
Sube un archivo RAG
En esta tabla, se enumeran los parámetros que se usan para subir un archivo RAG.
Solicitud del cuerpo
Parámetros | |
---|---|
|
|
|
Obligatorio: Es el archivo que se subirá. |
|
Obligatorio: Es la configuración de |
RagFile |
|
---|---|
|
Obligatorio: Es el nombre visible del archivo RAG. |
|
Opcional: Es la descripción del archivo RAG. |
UploadRagFileConfig |
|
---|---|
|
Cantidad de tokens que tiene cada fragmento. |
|
La superposición entre fragmentos. |
Importar archivos RAG
En esta tabla, se enumeran los parámetros que se usan para importar un archivo RAG.
Parámetros | |
---|---|
|
Obligatorio:
Formato: |
|
Ubicación de Cloud Storage Admite la importación de archivos individuales, así como de directorios completos de Cloud Storage. |
|
URI de Cloud Storage que contiene el archivo de carga. |
|
Ubicación de Google Drive Admite la importación de archivos individuales y carpetas de Google Drive. |
|
El canal de Slack al que se subió el archivo |
|
La consulta de Jira en la que se sube el archivo |
|
Las fuentes de SharePoint a las que se sube el archivo |
|
Cantidad de tokens que tiene cada fragmento. |
|
La superposición entre fragmentos. |
|
Opcional: Es la cantidad máxima de consultas por minuto que esta tarea puede realizar al modelo de incorporación especificado en el corpus. Este valor es específico de esta tarea 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 |
|
---|---|
|
Obligatorio: El ID del recurso de Google Drive. |
|
Obligatorio: El tipo de recurso de Google Drive. |
SlackSource |
|
---|---|
|
Se repite: Información del canal de Slack, incluido el ID y el período que se importará |
|
Obligatorio: El ID del canal de Slack |
|
Opcional: La marca de tiempo de inicio de los mensajes que se importarán. |
|
Opcional: Es la marca de tiempo de finalización de los mensajes que se importarán. |
|
Obligatorio: El nombre de recurso completo 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.
Formato: |
JiraSource |
|
---|---|
|
Se repite: Es una lista de proyectos de Jira que se importarán por completo. |
|
Se repite: Es una lista de consultas personalizadas de Jira que se importarán. Para obtener información sobre JQL (lenguaje de consulta de Jira), consulta
|
|
Obligatorio: La dirección de correo electrónico de Jira |
|
Obligatorio: Es el URI del servidor de Jira. |
|
Obligatorio: El nombre de recurso completo 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.
Formato: |
SharePointSources |
|
---|---|
|
Es la ruta de acceso de la carpeta de SharePoint desde la que se descargará el archivo. |
|
Es el ID de la carpeta de SharePoint desde la que se descargará el archivo. |
|
Es el nombre de la unidad desde la que se descargará el contenido. |
|
Es el ID de la unidad desde la que se descargará. |
|
El ID de aplicación de la app registrada en el portal de Microsoft Azure
|
|
Obligatorio: El nombre completo del recurso del secreto que se almacena en Secret Manager, que contiene el secreto de la aplicación para la app registrada en Azure. Formato: |
|
Es el identificador único de la instancia de Azure Active Directory. |
|
Es el nombre del sitio de SharePoint desde el que se descargará el archivo. Puede ser el nombre o el ID del sitio. |
Obtén un archivo RAG
En esta tabla, se enumeran los parámetros que se usan para obtener un archivo RAG.
Parámetros | |
---|---|
|
|
Borra un archivo RAG
En esta tabla, se enumeran los parámetros que se usan para borrar un archivo RAG.
Parámetros | |
---|---|
|
|
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 muestran los parámetros de la API de RetrieveContexts
.
Parámetros | |
---|---|
|
Obligatorio: Es el nombre del recurso de la ubicación para recuperar Formato: |
|
La fuente de datos de Vertex RagStore. |
|
Obligatorio: Consulta de recuperación de RAG única. |
VertexRagStore
VertexRagStore |
|
---|---|
|
lista: Es la representación de la fuente de RAG. Se puede usar para especificar solo el corpus o |
|
Opcional: Nombre del recurso Formato: |
|
lista: Una lista de recursos Formato: |
RagQuery |
|
---|---|
|
Es la consulta en formato de texto para obtener contextos relevantes. |
|
Opcional: Es la configuración de recuperación de la consulta. |
RagRetrievalConfig |
|
---|---|
|
Opcional: Es la cantidad de contextos que se recuperarán. |
|
Solo se muestran los contextos con una distancia de vector menor que el umbral. |
|
Solo se devuelven los contextos con una similitud de vector mayor que el umbral. |
Parámetros de predicción
En esta tabla, se enumeran los parámetros de predicción.
GenerateContentRequest |
|
---|---|
|
Se configuró para usar una fuente de datos potenciada por el almacén de RAG de Vertex AI. |
Consulta VertexRagStore para obtener más detalles.
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 estas muestras 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: Es el ID de tu proyecto.
- LOCATION: Es la región para procesar la solicitud.
- CORPUS_DISPLAY_NAME: Es 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. Para obtener más información, consulta la documentación de referencia de la API de Python.
- PROJECT_ID: Es el ID de tu proyecto.
- LOCATION: Es la región para procesar la solicitud.
- CORPUS_DISPLAY_NAME: Es el nombre visible del corpus de RAG.
- CORPUS_DESCRIPTION: Es la descripción del corpus de RAG.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
display_name = "CORPUS_DISPLAY_NAME"
description = "CORPUS_DESCRIPTION"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
# Configure embedding model
embedding_model_config = rag.EmbeddingModelConfig(
publisher_model="publishers/google/models/text-embedding-004"
)
corpus = rag.create_corpus(
display_name=display_name,
description=description,
embedding_model_config=embedding_model_config,
)
print(corpus)
# Example response:
# RagCorpus(name='projects/1234567890/locations/us-central1/ragCorpora/1234567890',
# display_name='test_corpus', description='Corpus Description', embedding_model_config=...
# ...
Actualiza un ejemplo de corpus de RAG
Puedes actualizar tu corpus de RAG con un nuevo nombre visible, una descripción y una configuración de la base de datos de vectores. Sin embargo, no puedes cambiar los siguientes parámetros en tu corpus de RAG:
- Es el tipo de base de datos vectorial. Por ejemplo, no puedes cambiar la base de datos de vectores de Weaviate a Vertex AI Feature Store.
- Si usas la opción de base de datos administrada, no puedes actualizar la configuración de la base de datos de vectores.
En estos ejemplos, se muestra cómo actualizar un corpus de RAG.
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: Es el ID de tu corpus de RAG.
- CORPUS_DISPLAY_NAME: Es 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 vectorial. Formato:
projects/{project}/locations/{location}/indexes/{index}
. - INDEX_ENDPOINT_NAME: Es el nombre del recurso del extremo del índice de búsqueda vectorial. Formato:
projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}
.
Método HTTP y URL:
PATCH https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID
Cuerpo JSON de la solicitud:
{
"display_name" : "CORPUS_DISPLAY_NAME",
"description": "CORPUS_DESCRIPTION",
"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).
Ejemplo de lista de corpus de RAG
En estas muestras 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: 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 de RAG 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. Por lo general, se obtiene con
ListRagCorporaResponse.next_page_token
de la llamadaVertexRagDataService.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 de 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. Para obtener más información, consulta la documentación de referencia de la API de Python.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
LOCATION = "us-central1"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
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 muestra 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 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.
```
```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. Para obtener más información, consulta la documentación de referencia de la API de Python.
- 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.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION"
corpus_name = "projects/{PROJECT_ID}/locations/{LOCATION}/ragCorpora/{rag_corpus_id}"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
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',
# ...
Ejemplo de eliminación de un corpus de RAG
En estas muestras de código, se muestra 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. Para obtener más información, consulta la documentación de referencia de la API de Python.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
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. import rag
Ejemplos de administración de archivos
En esta sección, se proporcionan ejemplos de cómo usar la API para administrar archivos RAG.
Sube un ejemplo de archivo RAG
En estas muestras de código, se muestra 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: Es el ID de tu corpus de RAG.
- LOCAL_FILE_PATH: Es la ruta de acceso local al archivo que se subirá.
- DISPLAY_NAME: Es el nombre visible del archivo RAG.
- DESCRIPTION: Es la descripción del archivo RAG.
Para enviar tu solicitud, usa el siguiente comando:
curl -X POST \
-H "X-Goog-Upload-Protocol: multipart" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-F metadata="{'rag_file': {'display_name':' DISPLAY_NAME', 'description':'DESCRIPTION'}}" \
-F file=@LOCAL_FILE_PATH \
"https://LOCATION-aiplatform.googleapis.com/upload/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"
Python
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. Para obtener más información, consulta la documentación de referencia de la API de Python.
- PROJECT_ID: Es el ID de tu proyecto.
- LOCATION: Es la región para procesar la solicitud.
- RAG_CORPUS_ID: Es el ID de tu corpus de RAG.
- LOCAL_FILE_PATH: Es la ruta de acceso local al archivo que se subirá.
- DISPLAY_NAME: Es el nombre visible del archivo RAG.
- DESCRIPTION: Es la descripción del archivo RAG.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/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="LOCATION")
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.
response.skipped_rag_files_count
hace referencia a la cantidad de archivos que se omitieron durante la importación. Se omite un archivo cuando se cumplen las siguientes condiciones:
- Ya se importó el archivo.
- El archivo no cambió.
- La configuración de fragmentación del archivo no cambió.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID de tu proyecto.
- LOCATION: Es la región para procesar la solicitud.
- RAG_CORPUS_ID: Es el ID 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: Cantidad de tokens que debe tener cada fragmento.
- CHUNK_OVERLAP: Cantidad de tokens que se superponen entre los fragmentos.
- EMBEDDING_MODEL_QPM_RATE: Es la tasa 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: Es el ID de tu corpus de RAG.
- GCS_URIS: Es una lista de ubicaciones de Cloud Storage.
Ejemplo:
gs://my-bucket1
. - CHUNK_SIZE: Cantidad de tokens que debe tener cada fragmento.
- CHUNK_OVERLAP: Cantidad de tokens que se superponen entre los fragmentos.
- EMBEDDING_MODEL_QPM_RATE: Es la tasa de QPM para limitar el acceso de los RAG a tu 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: Es el ID de tu corpus de RAG.
- FOLDER_RESOURCE_ID: Es el ID de recurso de tu carpeta de Drive.
- CHUNK_SIZE: Cantidad de tokens que debe tener cada fragmento.
- CHUNK_OVERLAP: Cantidad de tokens que se superponen entre los fragmentos.
- EMBEDDING_MODEL_QPM_RATE: Es la tasa 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. Para obtener más información, consulta la documentación de referencia de la API de Python.
- PROJECT_ID: Es el ID de tu proyecto.
- LOCATION: Es la región para procesar la solicitud.
- RAG_CORPUS_ID: Es el ID de tu corpus de RAG.
- FOLDER_RESOURCE_ID: Es el ID de recurso de tu carpeta de Drive.
- CHUNK_SIZE: Cantidad de tokens que debe tener cada fragmento.
- CHUNK_OVERLAP: Cantidad de tokens que se superponen entre los fragmentos.
- EMBEDDING_MODEL_QPM_RATE: Es la tasa de QPM para limitar el acceso de RAG a tu modelo de incorporación. Ejemplo: 1,000.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/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="LOCATION")
response = rag.import_files(
corpus_name=corpus_name,
paths=paths,
chunk_size=512, # Optional
chunk_overlap=100, # Optional
max_embedding_requests_per_min=900, # Optional
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.
Ejemplo de la lista de archivos RAG
En estas muestras de código, se muestra cómo enumerar archivos 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
. - 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 llamadaVertexRagDataService.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. Para obtener más información, consulta la documentación de referencia de la API de Python.
Reemplaza las siguientes variables que se usan en la muestra de código:
- 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 llamadaVertexRagDataService.ListRagFiles
anterior.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
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
Obtén un ejemplo de archivo RAG
En estas muestras 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: 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. Para obtener más información, consulta la documentación de referencia de la API de Python.
- 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
.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
file_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
rag_file = rag.get_file(name=file_name)
print(rag_file)
# Example response:
# RagFile(name='projects/1234567890/locations/LOCATION/ragCorpora/11111111111/ragFiles/22222222222',
# display_name='file_display_name', description='file description')
Ejemplo de cómo borrar un archivo RAG
En estas muestras de código, se muestra cómo borrar un archivo RAG.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID>: Es el ID de tu proyecto.
- LOCATION: Es la región para procesar la solicitud.
- RAG_CORPUS_ID: Es el ID del recurso de 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. Para obtener más información, consulta la documentación de referencia de la API de Python.
- 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 de RagCorpus.
- RAG_FILE_ID: Es el ID del recurso RagFile. Formato:
projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}
.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
file_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
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 de vector menor que el umbral.
- TEXT: Es el texto de la consulta para obtener contextos relevantes.
- SIMILARITY_TOP_K: Es 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. Para obtener más información, consulta la documentación de referencia de la API de Python.
- 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 de vector menor que el umbral.
- TEXT: Es el texto de la consulta para obtener contextos relevantes.
- SIMILARITY_TOP_K: Es la cantidad de contextos principales que se recuperarán.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/[PROJECT_ID]/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
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="TEXT",
similarity_top_k=SIMILARITY_TOP_K, # Optional
vector_distance_threshold=VECTOR_DISTANCE_THRESHOLD, # Optional
)
print(response)
# Example response:
# contexts {
# contexts {
# source_uri: "gs://your-bucket-name/file.txt"
# text: "....
# ....
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: 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-1.5-pro-002
. - GENERATION_METHOD: Es el método LLM para la generación de contenido.
Opciones:
generateContent
,streamGenerateContent
. - INPUT_PROMPT: Es el texto enviado al LLM para la generación de contenido. Intenta usar una instrucción relevante para los archivos rag subidos.
- RAG_CORPUS_RESOURCE: Es el nombre del recurso
RagCorpus
. Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K: Opcional: Es la cantidad de contextos principales que se recuperarán.
- 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. Para obtener más información, consulta la documentación de referencia de la API de Python.
- 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-1.5-pro-002
. - GENERATION_METHOD: Es el método LLM para la generación de contenido.
Opciones:
generateContent
,streamGenerateContent
. - INPUT_PROMPT: Es el texto enviado al LLM para la generación de contenido. Intenta usar una instrucción relevante para los archivos rag subidos.
- RAG_CORPUS_RESOURCE: Es el nombre del recurso
RagCorpus
. Formato:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K: Opcional: Es la cantidad de contextos principales que se recuperarán.
- VECTOR_DISTANCE_THRESHOLD: Opcional: Se muestran contextos con una distancia vectorial menor que el umbral.
from vertexai import rag
from vertexai.generative_models import GenerativeModel, Tool
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
rag_retrieval_tool = Tool.from_retrieval(
retrieval=rag.Retrieval(
source=rag.VertexRagStore(
rag_resources=[
rag.RagResource(
rag_corpus="RAG_CORPUS_RESOURCE",
# Optional: supply IDs from `rag.list_files()`.
# rag_file_ids=["rag-file-1", "rag-file-2", ...],
)
],
similarity_top_k=SIMILARITY_TOP_K, # Optional
vector_distance_threshold=VECTOR_DISTANCE_THRESHOLD, # Optional
),
)
)
rag_model = GenerativeModel(
model_name="MODEL_ID", 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?
- Para obtener más información sobre los modelos de generación compatibles, consulta Modelos de IA generativa que admiten RAG.
- Para obtener más información sobre los modelos de incorporación compatibles, consulta Modelos de incorporación.
- Para obtener más información sobre los modelos abiertos, consulta Modelos abiertos.
- Para obtener más información sobre RAG Engine, consulta la descripción general de RAG Engine.