En esta página, se presenta el analizador de diseño de Document AI y cómo se usa con RAG Engine.
Document AI
Document AI es una plataforma de procesamiento y comprensión de documentos que toma datos no estructurados de documentos y los transforma en campos adecuados para el almacenamiento en una base de datos. Los datos estructurados generan datos que puedes comprender, analizar y consumir.
Document AI se compila sobre productos de Vertex AI con IA generativa para ayudarte a crear aplicaciones de procesamiento de documentos escalables, de extremo a extremo y basadas en la nube. No se requiere experiencia especializada en aprendizaje automático para usar estos productos.
Analizador de diseño de Document AI
El analizador de diseño extrae elementos de contenido del documento, como texto, tablas y listas. Luego, el analizador de diseño crea fragmentos contextuales que facilitan la recuperación de información en la IA generativa y las aplicaciones de descubrimiento.
Cuando se usa para la recuperación y la generación de LLM, el diseño del documento se considera durante el proceso de división, lo que mejora la coherencia semántica y reduce el ruido en el contenido. Todo el texto de un fragmento proviene de la misma entidad de diseño, como el encabezado, el subtítulo o la lista.
Para conocer los tipos de archivos que usa la detección de diseño, consulta Detección de diseño por tipo de archivo.
Usa el analizador de diseño en la RAG de Vertex AI
La API de ImportRagFiles
admite el analizador de diseño. Sin embargo, se aplican las siguientes limitaciones:
- Ingresa el tamaño máximo de archivo de 20 MB para todos los tipos de archivos.
- Hay un máximo de 500 páginas por archivo PDF.
Se aplican las cuotas y los precios de Document AI.
Habilita la API de Document AI
En el siguiente código de muestra, se muestra cómo habilitar el análisis avanzado con REST en un comando curl y con el SDK de Vertex AI para Python.
REST
En este ejemplo de código, se muestra cómo puedes importar archivos de Cloud Storage con el analizador de diseño. Para obtener más opciones de configuración, como importar archivos desde otra fuente, consulta ImportRagFilesConfig
.
Reemplaza las 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 tu solicitud.
- RAG_CORPUS_ID: Es el ID del recurso del corpus de RAG.
- GCS_URIS: Es una lista de ubicaciones de Cloud Storage. Por ejemplo:
"gs://my-bucket1"
,"gs://my-bucket2"
. - LAYOUT_PARSER_PROCESSOR_NAME: Es la ruta de acceso al recurso del procesador de analizador de diseño que se creó. Por ejemplo:
"projects/{project}/locations/{location}/processors/{processor_id}"
. - CHUNK_SIZE: Opcional: Es la cantidad de tokens que debe tener cada fragmento.
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
},
"file_parsing_config": {
"layout_parser": {
"processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
}
},
"rag_file_chunking_config": {
"chunk_size": CHUNK_SIZE
},
}
}
Para enviar tu solicitud, elige una de estas opciones.
Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:
curl -X POST \
-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"
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Reemplaza las 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 tu solicitud.
- RAG_CORPUS_ID: Es el ID del recurso del corpus de RAG.
- GCS_URIS: Es una lista de ubicaciones de Cloud Storage. Por ejemplo:
"gs://my-bucket1"
,"gs://my-bucket2"
. - LAYOUT_PARSER_PROCESSOR_NAME: Es la ruta de acceso al recurso del procesador de analizador de diseño que se creó. Por ejemplo:
"projects/{project}/locations/{location}/processors/{processor_id}"
. - CHUNK_SIZE: Opcional: Es la cantidad de tokens que debe tener cada fragmento.
from vertexai.preview import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/<var>PROJECT_ID</var>/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# paths = ["https://drive.google.com/file/123", "GCS_URIS"]
# Supports Cloud Storage and Google Drive Links
layout_parser_processor_name = "projects/PROJECT_ID/locations/<var>LOCATION</var>/processors/LAYOUT_PARSER_PROCESSOR_NAME"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
response = rag.import_files(
corpus_name=RAG_CORPUS_ID,
paths=paths,
chunk_size=512, # Optional
chunk_overlap=100, # Optional
max_embedding_requests_per_min=900, # Optional
layout_parser=rag.LayoutParserConfig(
processor_name=layout_parser_processor_name,
max_parsing_requests_per_min=120, # Optional
)
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.
Activa el analizador de diseño
En las muestras de código, se muestra cómo activar el analizador de diseño.
Tu base de conocimiento (corpus) de RAG
Si no tienes un corpus de RAG, créalo. Por ejemplo, consulta Crea un ejemplo de corpus de RAG.
Si ya tienes un corpus de RAG, los archivos existentes que se importaron sin un analizador de diseño no se volverán a importar cuando importes archivos con el analizador de diseño. Si deseas usar un analizador de diseño con tus archivos, primero bórralos. Por ejemplo, consulta el ejemplo para borrar un archivo RAG.
Cómo importar archivos con el Analizador de diseño
Los archivos y las carpetas de varias fuentes se pueden importar con el analizador de diseño.
REST
En la muestra de código, se muestra cómo importar archivos de Cloud Storage con el analizador de diseño. Para obtener más opciones de configuración, incluida la importación de archivos desde otra fuente, consulta la referencia de ImportRagFilesConfig
.
Antes de usar cualquiera de los datos de la solicitud, 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 del corpus de RAG.
- GCS_URIS: Es una lista de ubicaciones de Cloud Storage. Por ejemplo:
"gs://my-bucket1"
,"gs://my-bucket2"
. - LAYOUT_PARSER_PROCESSOR_NAME: Es la ruta de acceso al recurso del procesador de analizador de diseño que se creó. Por ejemplo:
"projects/{project}/locations/{location}/processors/{processor_id}"
. - CHUNK_SIZE: Opcional: Es la cantidad de tokens que debe tener cada fragmento.
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"
},
"file_parsing_config": {
"layout_parser": {
"processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
}
},
"rag_file_chunking_config": {
"chunk_size": CHUNK_SIZE
},
}
}
Para enviar tu solicitud, elige una de estas opciones de codificación:
Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:
curl -X POST \
-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"
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación 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 del corpus de RAG.
- GCS_URIS: Es una lista de ubicaciones de Cloud Storage. Por ejemplo:
"gs://my-bucket1"
,"gs://my-bucket2"
. - LAYOUT_PARSER_PROCESSOR_NAME: Es la ruta de acceso al recurso del procesador de analizador de diseño que se creó. Por ejemplo:
"projects/{project}/locations/{location}/processors/{processor_id}"
. - CHUNK_SIZE: Opcional: Es la cantidad de tokens que debe tener cada fragmento.
from vertexai.preview 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 Cloud Storage and Google Drive links
layout_parser_processor_name = "LAYOUT_PARSER_PROCESSOR_NAME"
# 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
layout_parser=rag.LayoutParserConfig(
processor_name=layout_parser_processor_name,
max_parsing_requests_per_min=120, # Optional
)
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.
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.
Para ver un ejemplo de cómo recuperar archivos RAG de un corpus según un texto de consulta, consulta Consulta de recuperación.
Predicción
La predicción genera una respuesta fundamentada con los contextos recuperados. Para ver un ejemplo, consulta Generación.