En esta página se explica cómo usar el analizador LLM de Vertex AI RAG Engine.
Introducción
Vertex AI RAG Engine usa LLMs para analizar documentos. Los LLMs pueden procesar documentos de forma eficaz de las siguientes maneras:
- Entender e interpretar contenido semántico en varios formatos.
- Recupera los fragmentos de documento pertinentes.
- Extrae información valiosa de documentos.
- Identifica las secciones relevantes de los documentos.
- Resumir con precisión documentos complejos.
- Entender e interactuar con los elementos visuales.
- Extraer datos de gráficos y diagramas.
- Describe imágenes.
- Comprender las relaciones entre gráficos y texto.
- Proporcionar respuestas más precisas y con más contexto.
Las funciones del motor RAG de Vertex AI mejoran significativamente la calidad de las respuestas generadas.
Modelos admitidos
Los siguientes modelos admiten el analizador de LLMs del motor de RAG de Vertex AI:
Tipos de archivo admitidos
El analizador LLM admite los siguientes tipos de archivo:
application/pdf
image/png
image/jpeg
image/webp
image/heic
image/heif
Precios y cuotas
Para obtener más información sobre los precios, consulta la página Precios de Vertex AI.
Para ver las cuotas que se aplican, consulta Cuotas de frecuencia.
El analizador LLM llama a los modelos de Gemini para analizar tus documentos. Esto genera costes adicionales, que se cargan a tu proyecto. El coste se puede estimar de forma aproximada con esta fórmula:
cost = number_of_document_files * average_pages_per_document * (average_input_tokens * input_token_pricing_of_selected_model + average_output_tokens * output_token_pricing_of_selected_model)
Por ejemplo, tiene 1000 archivos PDF y cada uno de ellos tiene 50 páginas. Una página PDF media tiene 500 tokens y necesitamos 100 tokens adicionales para las peticiones. La salida media es de 100 tokens.
Gemini 2.0 Flash-Lite se usa en tu configuración para el análisis sintáctico y cuesta 0,075 USD por 1 M de tokens de entrada y 0,3 USD por tokens de texto de salida.
cost = 1,000 * 50 * (600 * 0.075 / 1M + 100 * 0.3 / 1M) = 3.75
El coste es de 3,75 USD.
Importar archivos con LlmParser
habilitado
Sustituye los valores de las siguientes variables que se usan en los ejemplos de código:
- PROJECT_ID: el ID de tu proyecto de Google Cloud .
- LOCATION: la región en la que se procesa tu solicitud.
- RAG_CORPUS_RESOURCE: el ID de tu corpus.
- GCS_URI: el URI de Cloud Storage de los archivos que quiere importar.
- GOOGLE_DRIVE_URI: el URI de Google Drive de los archivos que quieras importar.
- MODEL_NAME: el nombre del recurso del modelo usado para el análisis.
Formato:
projects/{project_id}/locations/{location}/publishers/google/models/{model_id}
- CUSTOM_PARSING_PROMPT: Opcional: petición personalizada que configura el cliente para que el analizador de LLM la use al analizar documentos.
MAX_PARSING_REQUESTS_PER_MIN: opcional. Número máximo de solicitudes que puede enviar el trabajo al modelo de Vertex AI por minuto. Para obtener más información, consulta los límites de frecuencia de la IA generativa en Vertex AI y la página Cuotas y límites del sistema de tu proyecto para definir un valor adecuado.
REST
curl -X POST \
-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_RESOURCE/ragFiles:import" -d '{
"import_rag_files_config": {
"gcs_source": {
"uris": ["GCS_URI", "GOOGLE_DRIVE_URI"]
},
"rag_file_chunking_config": {
"chunk_size": 512,
"chunk_overlap": 102
},
"rag_file_parsing_config": {
"llm_parser": {
"model_name": "MODEL_NAME",
"custom_parsing_prompt": "CUSTOM_PARSING_PROMPT"
"max_parsing_requests_per_min": "MAX_PARSING_REQUESTS_PER_MIN"
}
}
}
}'
Python
Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API de Python.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
CORPUS_NAME = "RAG_CORPUS_RESOURCE"
LOCATION = "LOCATION"
MODEL_ID = "MODEL_ID"
MODEL_NAME = "projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}"
MAX_PARSING_REQUESTS_PER_MIN = MAX_PARSING_REQUESTS_PER_MIN # Optional
CUSTOM_PARSING_PROMPT = "Your custom prompt" # Optional
PATHS = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]
# Initialize Vertex AI API once per session
vertexai.init(project={PROJECT_ID}, location={LOCATION})
transformation_config = rag.TransformationConfig(
chunking_config=rag.ChunkingConfig(
chunk_size=1024, # Optional
chunk_overlap=200, # Optional
),
)
llm_parser_config = rag.LlmParserConfig(
model_name = MODEL_NAME,
max_parsing_requests_per_min=MAX_PARSING_REQUESTS_PER_MIN, # Optional
custom_parsing_prompt=CUSTOM_PARSING_PROMPT, # Optional
)
rag.import_files(
CORPUS_NAME,
PATHS,
llm_parser=llm_parser_config,
transformation_config=transformation_config,
)
Formulación de peticiones
El analizador LLM del motor RAG de Vertex AI usa una petición predefinida y optimizada para analizar documentos. Sin embargo, si tienes documentos especializados que no son adecuados para una petición general, puedes especificar tu petición de análisis personalizada al usar la API. Cuando solicitas a Gemini que analice tus documentos, la aplicación Vertex AI RAG Engine añade una petición a tu petición de sistema predeterminada.
Tabla de plantillas de peticiones
Para ayudarte con el análisis de documentos, en la siguiente tabla se proporciona una plantilla de petición de ejemplo que te servirá de guía para crear peticiones que el motor RAG de Vertex AI pueda usar para analizar tus documentos:
Instrucción | Declaración de plantilla | Ejemplo |
---|---|---|
Especifica el rol. | Eres [Especifica el rol, como extractor de datos objetivos o buscador de información]. | Eres un buscador de información. |
Especifica la tarea. | Extrae [especifica el tipo de información, como datos objetivos, datos clave o detalles específicos] de [especifica la fuente del documento, como un documento, un texto, un artículo, una imagen o una tabla]. | Extrae los datos clave del archivo sample.txt. |
Explica cómo quieres que la LLM genere el resultado según tus documentos. | Presenta cada dato en un [Especifica el formato de salida, como una lista estructurada o un formato de texto] y enlaza a su [Especifica la ubicación de la fuente, como una página, un párrafo, una tabla o una fila]. | Presenta cada hecho en una lista estructurada y enlaza a su página de ejemplo. |
Destaca en qué debe centrarse el LLM. | Extrae [Especifica los tipos de datos clave, como nombres, fechas, números, atributos o relaciones] exactamente como se indica. | Extraer nombres y fechas. |
Destaca lo que quieres que evite el LLM. | [Enumera las acciones que debe evitar, como analizar, interpretar, resumir, deducir o dar opiniones]. Extrae solo lo que se indica explícitamente en el documento. | No des tu opinión. Extrae solo lo que se indica explícitamente en el documento. |
Directrices generales
Sigue estas directrices para escribir la petición que enviarás al analizador de LLMs.
- Específico: define claramente la tarea y el tipo de información que se va a extraer.
- Detallado: proporciona instrucciones detalladas sobre el formato de salida, la atribución de la fuente y la gestión de diferentes estructuras de datos.
- Restricción: indica explícitamente lo que no debe hacer la IA, como analizar o interpretar.
- Claro: usa un lenguaje claro y directo.
- Estructura: organiza las instrucciones de forma lógica con listas numeradas o viñetas para que sean fáciles de leer.
Análisis de la calidad del análisis
En esta tabla se muestran los resultados de las situaciones que los clientes han ejecutado con el motor RAG de Vertex AI. Los comentarios muestran que el analizador LLM mejora la calidad del análisis de documentos.
Situación | Resultado | |
---|---|---|
Analizar información en varias diapositivas y vincular secciones | El analizador LLM ha vinculado correctamente los títulos de las secciones de una diapositiva con la información detallada que se presenta en las diapositivas posteriores. | |
Entender y extraer información de tablas | El analizador LLM relacionó correctamente las columnas y los encabezados de una tabla grande para responder a preguntas específicas. | |
Interpretar diagramas de flujo | El analizador del LLM pudo seguir la lógica de un diagrama de flujo y extraer la secuencia correcta de acciones y la información correspondiente. | |
Extraer datos de gráficos | El analizador LLM puede interpretar diferentes tipos de gráficos, como los de líneas, y extraer puntos de datos específicos en función de la consulta. | |
Capturar las relaciones entre los encabezados y el texto | El analizador del LLM, guiado por la petición, prestó atención a las estructuras de los encabezados y pudo obtener toda la información relevante asociada a un tema o sección concretos. | |
Posibilidad de superar las limitaciones de las inserciones con la ingeniería de peticiones | Aunque al principio se vio limitada por las limitaciones del modelo de inserción en algunos casos prácticos, experimentos adicionales demostraron que una petición de LLM bien diseñada podría mitigar estos problemas y recuperar la información correcta incluso cuando la comprensión semántica es difícil para el modelo de inserción por sí solo. |
El analizador LLM mejora la capacidad del LLM para comprender y razonar sobre el contexto de un documento, lo que da lugar a respuestas más precisas y completas.
Consulta de recuperación
Después de introducir una petición que se envía a un modelo de IA generativa, el componente de recuperación de RAG busca en su base de conocimientos información relevante para la consulta. Para ver un ejemplo de cómo obtener archivos RAG de un corpus basado en un texto de consulta, consulta Consulta de recuperación.
Siguientes pasos
- Para obtener más información sobre el motor de RAG de Vertex AI, consulta la descripción general del motor de RAG de Vertex AI.
- Para obtener más información sobre el motor de RAG de Vertex AI, consulta la API del motor de RAG de Vertex AI.