RAG-Anything: мультимодальный RAG без парсеров для PDF и изображений | AiManual
AiManual Logo Ai / Manual.
27 Май 2026 Инструмент

RAG-Anything: мультимодальный RAG фреймворк для обработки PDF, изображений и таблиц без лишних парсеров

Обзор RAG-Anything – нового мультимодального RAG-фреймворка, который сам обрабатывает PDF, таблицы и изображения, избавляя от геморроя с парсерами. Примеры, сра

Парсерный ад, из которого не видно данных

Типичный RAG-пайплайн для документов выглядит так: берешь PDF, тащишь одну библиотеку для текста, другую для таблиц, третью для распознавания картинок. Потом склеиваешь всё костылями, молишься, чтобы не развалилось на следующем файле. Если вы хоть раз пытались скормить нейросети сканы контрактов с врезками графиков — вы знаете этот вкус пепла.

Тема не новая. Мы уже собирали RAG на ноутбуке, подключая по очереди парсеры, эмбеддеры и LLM. И каждый раз упирались в проблему: текстовые документы — ок, но стоит появиться таблице или диаграмме — пайплайн ломается. Мультимодальный RAG в 2025 — это уже не роскошь, а базовая потребность, но реализация всё ещё напоминает Франкенштейна.

И вот появляется RAG-Anything от команды HKU. Фреймворк, который заявляет: «Я сам всё распаршу — таблицы, картинки, PDF любой сложности — и даже думать не надо, какой парсер цеплять». Звучит как сказка? Проверим.

Что под капотом: одна труба, много форматов

RAG-Anything — это мультимодальный RAG-движок, встроенный поверх Light-RAG с расширениями для неоднородных документов. Он не просто извлекает текст — он понимает структуру: где таблица, где изображение, где подпись к рисунку.

Суть: вместо того чтобы выбирать между PyMuPDF, pdfplumber, Camelot и Tesseract, вы скармливаете документ RAG-Anything, а он сам решает, какой инструмент применить для каждого блока. И всё это — в одной функции.

Внутри используются:

  • OCR на базе Surya/TrOCR — для сканов и рукописного ввода.
  • Детекция таблиц — средствами Table Transformer (DETR) + pandas для нормализации.
  • Извлечение изображений — не просто вырезает картинки, а генерирует описания через встроенную VLM (по умолчанию Qwen2-VL-7B, но можно заменить на любую).
  • Векторизация — мультимодальные эмбеддинги (CLIP или ColPali) для поиска и по картинкам, и по тексту.
  • Хранилище — часто используется Qdrant или Chroma, но через LightRAG подключается любой.

RAG-Anything vs старый подход: что умеют другие

Давайте честно: вариантов на рынке — до фига. Unstructured.io — мощный, но тяжёлый и часто сырой для специфичных документов. Marker — хорошо парсит PDF, но таблицы берёт не все. MarkItDown от Microsoft — просто конвертирует в Markdown, без мультимодальности. Мы писали про MarkItDown — отличная утилита, но она не решает задачу RAG целиком.

Kreuzberg v4 — быстрее, но только текст и простые таблицы. Gemini Embedding 2 — мощно, но привязано к платному API Google. Proxy-Pointer — интересный трюк, но всё равно требует внешней VLM для описаний.

В чём RAG-Anything выигрывает? В автономности. Вы не собираете пайплайн из 5 библиотек. Всё уже внутри: извлечение, распознавание, векторизация и поиск.

ХарактеристикаRAG-AnythingLangChain + кастомUnstructured
PDF с таблицамиВстроенный детекторCamelot/PyMuPDF + костылиЕсть, но глючный
Изображения в PDFVLM-описания + поиск по CLIPОтдельно GPT-4VНе умеет
Сканы/рукописьOCR из коробкиTesseract + обвязкаЕсть, медленно
Векторизация картинокCLIP/ColPaliТолько текстТолько текст
Запуск одной командойДаНетТребует Docker/setup

Пример: как перестать мучиться и начать жить

Допустим, у вас есть PDF с годовым отчётом компании: 100 страниц, на каждой — графики, таблицы выручки, сканы подписей. Раньше вы бы писали скрипт на пол-экрана. С RAG-Anything — буквально 4 строки:

from rag_anything import DocumentRAG

rag = DocumentRAG(model="qwen2-vl-7b", embed="colpali")
rag.load_document("report_2025.pdf")
result = rag.query("Как изменилась выручка в Q3 по сравнению с Q2? Сравни с графиком на стр. 45")

Всё. Фреймворк сам нашёл страницу 45, распознал график, извлёк цифры из таблицы на соседней странице, сгенерировал ответ с цитатами и визуальной ссылкой на график.

Внутренняя кухня: сначала документ разбивается на блоки (текст, таблица, изображение). Таблицы нормализуются в Markdown, изображения описываются VLM и хранятся вместе с эмбеддингами. При запросе поиск идёт и по тексту, и по описаниям картинок. Если в ответе нужно показать изображение — RAG-Anything возвращает ссылку на чанк с картинкой.

Важно: первая индексация документа может занять время — VLM-описания генерируются не мгновенно. Но повторные запросы уже молниеносны, так как эмбеддинги кешируются.

Кому это реально упростит жизнь?

Во-первых, разработчикам, которые строят корпоративные RAG-системы для договоров, отчётов, техдокументации. Там всегда мешанина из текста, цифр и иллюстраций. RAG-Anything съедает это без лишних телодвижений.

Во-вторых, data scientist, которые хотят прототипировать RAG быстро. Вместо недели на сборку пайплайна — час на установку и тестирование. Подход «заставить ИИ понимать картинки» становится тривиальным.

В-третьих, всем, кто устал от, казалось бы, простой задачи — поискать по PDF с картинками — и тратит часы на «а почему этот парсер не видит таблицу?».

Но есть нюанс. RAG-Anything не универсальная таблетка. Если у вас только чистый текст — проще использовать Kreuzberg или LightRAG напрямую. Если нужны сложные логические цепочки по тексту — HippoRAG 2 справится лучше. А для видео всё ещё актуальнее локальный RAG для видео. RAG-Anything — король именно гибридных документов, где важно и содержание страницы, и её визуальное представление.

Так что если вы до сих пор пишете костыль для каждого нового формата — попробуйте RAG-Anything. Возможно, вы наконец выбросите половину своих парсеров. Или хотя бы поймёте, что не одиноки в своём парсерном аду.

Подписаться на канал