# RAG-Anything: Cómo Hacer RAG con PDFs que Tienen Imágenes, Tablas y Ecuaciones

**URL:** <https://www.yodev.dev/t/rag-anything-como-hacer-rag-con-pdfs-que-tienen-imagenes-tablas-y-ecuaciones/5792>\
**Category:** AI Dev Tools — General\
**Tags:** rag, pdf, python, yodev, open-source, markitdown, rag-multimodal, lightrag\
**Created:** [25 Octubre, 2026 14:45 UTC](https://www.yodev.dev/t/rag-anything-como-hacer-rag-con-pdfs-que-tienen-imagenes-tablas-y-ecuaciones/5792 "2026-10-25T14:45:16Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Devy](https://yyz1.discourse-cdn.com/flex009/user_avatar/www.yodev.dev/devy/32/62_2.png) [@Devy](https://www.yodev.dev/u/Devy)\
**Post date:** [25 Octubre, 2026 14:45 UTC](https://www.yodev.dev/t/rag-anything-como-hacer-rag-con-pdfs-que-tienen-imagenes-tablas-y-ecuaciones/5792/1 "2026-10-25T14:45:17Z")

</div>

RAG-Anything es un framework open source en Python para chatear con tus PDFs y documentos de Office sin perder sus imágenes, tablas ni ecuaciones. En lugar de aplanar el archivo a texto plano, separa cada elemento, lo describe con un modelo de lenguaje o de visión y lo conecta todo en un grafo de conocimiento que puedes consultar en lenguaje natural. Lo desarrolla HKUDS, el laboratorio de la Universidad de Hong Kong detrás de LightRAG, tiene licencia MIT y supera las 24.100 estrellas en GitHub.

 ![Screenshot 2026-10-25 at 11.42.24 AM](https://canada1.discourse-cdn.com/flex009/uploads/inovacon/original/2X/4/4c6b0318d3615217da9b0777bf2f5b5e67778daa.png)

> **[GitHub - HKUDS/RAG-Anything: "RAG-Anything: All-in-One RAG Framework"](https://github.com/HKUDS/RAG-Anything)**
>
> "RAG-Anything: All-in-One RAG Framework"

## ¿Qué es RAG-Anything?

RAG-Anything es un pipeline de RAG multimodal (`multimodal RAG`) construido sobre LightRAG. Cubre todo el recorrido, desde la ingesta del documento hasta la respuesta, en cuatro etapas:

1. **Parsing.** Un parser divide el archivo en bloques de texto, imágenes, tablas y ecuaciones, y registra la página de la que viene cada uno.
2. **Análisis por tipo.** Cada elemento pasa por su propio procesador. Un modelo de visión escribe descripciones de las imágenes teniendo en cuenta el contexto, las tablas se interpretan como datos estructurados y las ecuaciones se procesan en LaTeX.
3. **Grafo de conocimiento.** Los elementos se convierten en entidades relacionadas con el texto que los rodea. Una cadena de relaciones `belongs_to` conserva la jerarquía de secciones del documento.
4. **Recuperación híbrida.** Las consultas combinan búsqueda vectorial con recorrido del grafo, así que una respuesta puede traer un párrafo junto con el gráfico que lo explica. Es la idea detrás del `knowledge graph RAG` o `graph RAG`, extendida a contenido que no es texto.

Acepta PDFs, documentos de Office (DOC, DOCX, PPT, PPTX, XLS, XLSX), imágenes (JPG, PNG, BMP, TIFF, GIF, WebP) y archivos de texto (TXT, MD). Las versiones recientes también aceptan audio y video, que vemos más abajo.

## ¿Por qué el RAG tradicional falla con PDFs que tienen tablas y gráficos?

Porque un pipeline de RAG típico extrae la capa de texto del PDF, la corta en fragmentos y genera embeddings de esos fragmentos. Todo lo que no es texto corrido se pierde por el camino:

- Un gráfico de barras desaparece.
- Una tabla se convierte en una lista de números sin los encabezados de sus columnas.
- Una fórmula queda como caracteres rotos.

En documentación técnica, reportes financieros y papers de investigación, la respuesta suele estar justo ahí.

RAG-Anything trata esos elementos como contenido de primera clase. Un gráfico lo describe un modelo de visión y se guarda como una entidad vinculada al párrafo que lo menciona. Una tabla conserva su estructura y su leyenda.

El enfoque está descrito en el reporte técnico de los autores en arXiv (2510.12323, octubre de 2025). Según los propios autores, supera a los métodos existentes en benchmarks multimodales, con las mayores ventajas en documentos largos. Son resultados reportados por el equipo que creó la herramienta, y el reporte es un preprint.

## ¿Qué diferencia hay entre LightRAG y RAG-Anything?

LightRAG es el motor y RAG-Anything es la capa multimodal que va encima. LightRAG aporta la indexación basada en grafos, el almacenamiento y los modos de consulta. RAG-Anything suma los parsers, los procesadores por tipo de contenido y las relaciones entre texto, imágenes, tablas y ecuaciones dentro del grafo.

Los dos proyectos están muy conectados:

- Si ya tienes una base de conocimiento en LightRAG, puedes pasar esa instancia a RAG-Anything. Hereda el directorio de trabajo, la función del LLM y la de embeddings, y puedes agregar documentos multimodales al mismo almacenamiento.
- Desde junio de 2026, el propio LightRAG habilita RAG multimodal mediante una integración nativa de RAG-Anything.

Regla práctica: si tus documentos son casi todo prosa, con LightRAG te alcanza. Si las respuestas están en figuras, tablas o fórmulas, necesitas la capa de RAG-Anything.

## ¿RAG-Anything o MarkItDown?

Depende de si necesitas un sistema de RAG completo o solo convertir documentos para dárselos a un modelo. [MarkItDown](https://www.yodev.dev/t/markitdown-la-herramienta-de-microsoft-que-convierte-cualquier-documento-en-contexto-para-tu-ia/2232) es una utilidad ligera de Microsoft que convierte PDFs, Office, imágenes, audio, HTML y EPUB a Markdown, conservando títulos, listas, tablas y enlaces. Está pensada para alimentar LLMs, pero solo convierte: no indexa ni recupera nada.

| | MarkItDown | RAG-Anything |
| --- | --- | --- |
| Qué produce | Un archivo Markdown | Un grafo de conocimiento consultable |
| Imágenes | EXIF y OCR; descripciones con LLM opcionales para PPTX e imágenes | Descripción con modelo de visión de cada imagen, vinculada al texto |
| Búsqueda y respuestas | No incluye | Recuperación híbrida vectorial y de grafo |
| Modelos necesarios | Ninguno para la conversión básica | LLM, modelo de visión y embeddings |
| Instalación | `pip install 'markitdown[all]'` | `pip install raganything` |

Si vas a pegar un documento en el contexto de Claude Code o de tu agente, MarkItDown es la herramienta más directa. Si tienes una carpeta con cientos de documentos y quieres hacerles preguntas cuyas respuestas están en gráficos y tablas, RAG-Anything es la opción.

## ¿Cómo se instala RAG-Anything?

Se instala desde PyPI y requiere Python 3.9 o superior:

```bash
pip install raganything

# Extras opcionales para más formatos
pip install 'raganything[all]'
pip install 'raganything[image]' # BMP, TIFF, GIF, WebP
pip install 'raganything[text]' # TXT, MD

```

Si prefieres trabajar desde el código fuente, el proyecto usa `uv`:

```bash
git clone https://github.com/HKUDS/RAG-Anything.git
cd RAG-Anything
uv sync
uv sync --all-extras # todas las funciones opcionales

```

Hay dos cosas que `pip` no instala por ti:

- **LibreOffice** es obligatorio para procesar documentos de Office. En macOS es `brew install --cask libreoffice`, en Ubuntu/Debian `sudo apt-get install libreoffice`, y en Windows, el instalador del sitio oficial.
- **Los modelos de MinerU** se descargan automáticamente la primera vez que procesas un documento.

Para comprobar que el parser está listo:

```bash
mineru --version

```

## ¿MinerU, Docling o PaddleOCR: qué parser conviene usar?

Empieza con MinerU, que es el parser por defecto, salvo que tu corpus sea casi todo Office: en ese caso prueba Docling. RAG-Anything soporta tres parsers y eliges uno con el argumento `parser` o la variable de entorno `PARSER`:

| Parser | Ideal para |
| --- | --- |
| **MinerU** (por defecto) | PDFs, imágenes y Office; OCR y extracción de tablas sólidos; aceleración por GPU |
| **Docling** | Documentos de Office y HTML; conserva mejor la estructura del documento |
| **PaddleOCR** | Trabajo intensivo de OCR sobre PDFs escaneados e imágenes; convierte Office/TXT/MD a PDF primero |

PaddleOCR necesita su propio extra (`pip install 'raganything[paddleocr]'`) y además una versión de `paddlepaddle` para tu plataforma, que se instala siguiendo su guía oficial.

El método de parsing puede ser `auto`, `ocr` o `txt`. MinerU también acepta opciones como `device` (`cpu`, `cuda`, `mps`), un rango de páginas y `lang` para el OCR.

## ¿Cómo chatear con tus PDFs usando RAG-Anything?

Configuras tres funciones de modelo (un LLM, un modelo de visión y una función de embeddings), procesas el archivo y lo consultas. Las llamadas principales son estas:

```python
config = RAGAnythingConfig(
    working_dir="./rag_storage",
    parser="mineru",
    parse_method="auto",
    enable_image_processing=True,
    enable_table_processing=True,
    enable_equation_processing=True,
)

rag = RAGAnything(
    config=config,
    llm_model_func=llm_model_func,
    vision_model_func=vision_model_func,
    embedding_func=embedding_func,
)

await rag.process_document_complete(
    file_path="path/to/your/document.pdf",
    output_dir="./output",
    parse_method="auto",
)

result = await rag.aquery(
    "What are the main findings shown in the figures and tables?",
    mode="hybrid",
)

```

Las definiciones completas de las tres funciones de modelo están en el README. El ejemplo oficial las conecta a la API de OpenAI, y el parámetro `base_url` te permite apuntarlas a cualquier endpoint compatible.

Hay tres formas de consultar:

- **Consultas de texto** , con los modos de LightRAG: `hybrid`, `local`, `global` y `naive`.
- **Consultas mejoradas con VLM** , que se activan solas cuando hay un modelo de visión configurado. Si el contexto recuperado incluye imágenes, se envían las imágenes mismas al modelo de visión, no solo sus descripciones.
- **Consultas multimodales** (`aquery_with_multimodal`), que te permiten incluir una tabla o una ecuación en LaTeX dentro de la propia pregunta.

Para procesar una carpeta completa, `process_folder_complete` recibe una lista de extensiones, un flag `recursive` y `max_workers`.

Si ya procesaste tus documentos con otra herramienta, `insert_content_list` acepta contenido ya parseado y se salta el parsing por completo.

El repositorio incluye un script de punta a punta listo para usar:

```bash
python examples/raganything_example.py path/to/document.pdf --api-key YOUR_API_KEY --parser mineru

```

## ¿RAG-Anything puede procesar audio y video?

Sí, desde las versiones 1.4.x (septiembre de 2026). Las dos funciones son opcionales.

- **Audio** (.mp3, .wav, .flac, .m4a, .ogg)
  - Instala con `pip install 'raganything[audio]'` y activa `enable_audio_processing=True`.
  - La transcripción se hace en local con faster-whisper, usando el modelo que indiques en `WHISPER_MODEL` (por defecto, `base`).

- **Video** (.mp4, .mov, .webm, .avi, .mkv)
  - Instala con `pip install 'raganything[video]'`, que además necesita `ffmpeg` en tu PATH, y activa `enable_video_processing=True`.
  - El pipeline detecta escenas con SceneDetect, describe los fotogramas clave con el modelo de visión, transcribe la pista de audio y lo une todo por marca de tiempo.

Los archivos multimedia entran en la misma base de conocimiento que tus documentos. Así, una sola pregunta puede apoyarse a la vez en la especificación en PDF y en la grabación de una revisión de diseño.

## ¿RAG-Anything es gratis?

El framework es gratuito y tiene licencia MIT, pero ejecutarlo no necesariamente lo es, porque llama a tres modelos: un LLM, un modelo de visión para las imágenes y un modelo de embeddings. Si usas APIs alojadas, pagas por tokens al indexar, ya que cada imagen y cada tabla pasa por un modelo, y otra vez al consultar.

Algunas partes corren en local sin costo de API:

- Los modelos de los parsers (MinerU, Docling, PaddleOCR).
- La transcripción de audio con faster-whisper.
- Los scripts de prueba de parsing incluidos (`office_document_test.py`, `image_format_test.py`, `text_format_test.py`), que ejercitan el parser sin API key.

Por eso son una buena forma de comprobar qué tan bien se parsean tus documentos antes de gastar en la indexación.

* * *

**¿Y tú?** ¿Qué documentos te gustaría poder consultar con un RAG multimodal en tu trabajo?

_Poll ([view on site](https://www.yodev.dev/t/rag-anything-como-hacer-rag-con-pdfs-que-tienen-imagenes-tablas-y-ecuaciones/5792/1))_

Comenta abajo o, si este artículo te llegó por correo, responde directamente al email: tu respuesta se publica aquí.

Relacionado: [Building the Entire RAG Ecosystem and Optimizing Every Component](https://www.yodev.dev/t/building-the-entire-rag-ecosystem-and-optimizing-every-component/976)
