PixelRAG — визуальный поиск по сайтам, PDF и изображениям

Открытая система RAG индексирует страницы и документы как изображения, помогая ИИ находить таблицы, графики и информацию в исходной визуальной структуре.

PixelRAG — открытая система визуального поиска и RAG. Она сохраняет веб-страницы и документы не только как текст: сначала отображает их в браузере, превращает страницу в изображения-фрагменты, затем ищет нужный фрагмент по вопросу и передаёт его модели, которая умеет читать изображения.

Такой подход помогает там, где смысл зависит от расположения элементов: например, в таблицах, графиках, инфографике или колонках. Важно понимать, что PixelRAG не отменяет загрузку и отрисовку страниц. Он меняет способ представления содержимого для поиска: вместо линейного текста использует снимки экрана.

Зачем искать по изображению страницы

Обычный текстовый RAG — способ подключить к ИИ внешние документы — обычно извлекает текст, разбивает его на фрагменты и ищет подходящие отрывки. При таком преобразовании двумерная структура страницы может потеряться: заголовок столбца отделяется от значений, подпись графика — от самого графика, а взаимное расположение заметок и таблицы становится неочевидным.

PixelRAG сохраняет страницу в том виде, в котором её видит человек. Если в таблице значение стоит в строке «удары в створ», визуальный индекс может найти саму строку и передать её модели вместе с соседними ячейками. Это полезно для сайтов и документов, в которых важны не только слова, но и связь между элементами.

При этом видимая кнопка остаётся для PixelRAG изображением. Сам по себе проект не нажимает её и не получает доступ к действиям страницы — для управления браузером нужен отдельный инструмент автоматизации.

Как устроен PixelRAG

1. Страница превращается в снимки

Команда pixelshot открывает сайт в Chromium через Playwright/CDP и сохраняет страницу в виде снимков. Длинные страницы прокручиваются, а изображения делятся на фрагменты подходящего размера. В том же процессе можно обрабатывать PDF и локальные изображения.

2. Фрагменты попадают в визуальный индекс

Модель Qwen3-VL-Embedding превращает снимки и поисковый запрос в числовые представления, которые позволяют сопоставлять их по смыслу. FAISS находит в индексе наиболее подходящие фрагменты; при необходимости проект поддерживает и Qdrant. Простыми словами, система ищет не только совпадающие слова, но и визуально подходящую область документа.

3. Модель читает найденную область

Подходящие снимки передаются модели с поддержкой зрения. Она читает текст, таблицу или схему прямо на изображении и формирует ответ. Поэтому поиск и чтение происходят по визуальному представлению, без промежуточного перевода страницы в обычные текстовые фрагменты.

Готовый поиск и собственный индекс

Чтобы попробовать систему без настройки инфраструктуры, у проекта есть веб-демо и API с заранее собранным индексом Википедии. README репозитория указывает, что публичный индекс охватывает 8,28 млн страниц и доступен через API без ключа. Это отдельный индекс сервиса: он не означает, что PixelRAG уже проиндексировал любой сайт в интернете.

Для собственных материалов можно собрать локальный индекс из сайта, папки с документами или PDF и запустить поисковый API самостоятельно. Полный конвейер разбит на этапы: получение страниц, создание снимков, подготовка векторных представлений, построение индекса и запуск сервера. Можно устанавливать только нужные части.

Небольшой набор собственных документов можно проверить на обычном компьютере; в README описана работа на Mac с Apple Silicon, а также на Linux с CUDA и CPU в качестве запасного варианта. Но запускать локально полный индекс гораздо сложнее: в инструкции проекта для одного предварительно собранного FAISS-индекса указано около 217 ГБ данных для скачивания. Для крупного корпуса потребуются значительное хранилище, память и вычислительные ресурсы.

Интеграция с Claude Code и OpenCode

PixelRAG включает навык pixelbrowse для Claude Code. Он добавляет команду, которая делает снимок указанного сайта или научной статьи и передаёт изображение Claude. Интеграция работает через локальную утилиту pixelshot; отдельный MCP-сервер для этого сценария не требуется.

uv tool install pixelrag
claude plugin marketplace add StarTrail-org/PixelRAG
claude plugin install pixelbrowse@pixelrag-plugins

Для OpenCode в репозитории также описан плагин @startrail/pixelbrowse. Это удобно для чтения графиков, таблиц и схем на страницах и в PDF, но результат по-прежнему зависит от качества снимка и способности выбранной модели распознать мелкий текст.

Что показало исследование

В препринте авторы описывают индекс из примерно 30 млн снимков-фрагментов для семи миллионов статей Википедии. Это исследовательский корпус, использованный в эксперименте; он не совпадает с меньшим публичным индексом API, описанным в README.

На нескольких тестах для ответов по Википедии, новостям и мультимодальным материалам авторы сообщают о приросте точности до 18,1% относительно текстовых RAG-систем. Это максимальный результат в наборе экспериментов, а не гарантия такого улучшения на любом сайте или вопросе. В статье также описано сокращение расходов на визуальные токены до трёх раз при уменьшении изображений без заметной потери точности в выбранных настройках.

Результаты и методы подробно изложены в препринте на arXiv. Их следует воспринимать как оценку авторов на конкретных наборах данных и моделях, а не как независимое подтверждение для всех сценариев.

Ограничения и кому подойдёт

PixelRAG особенно интересен разработчикам поисковых систем, командных баз знаний и исследовательских помощников, которые работают с визуально сложными документами. Он может помочь, когда важные данные теряются при извлечении текста из таблицы, схемы или отчёта.

Для простой страницы с обычным текстом классический поиск по тексту часто дешевле и проще. PixelRAG всё равно должен получить и отрисовать страницу, а создание и хранение визуального индекса требует ресурсов. Снимок также не сохраняет скрытые элементы DOM и не заменяет инструменты, которым нужны метаданные, точные ссылки или действия в интерфейсе.

Пакет опубликован под лицензией Apache-2.0. README и метаданные пакета сейчас расходятся в минимальной версии Python: в примерах README упоминается Python 3.10+, а в pyproject.toml указано требование Python 3.12+. Перед установкой стоит проверить актуальные требования выбранного способа установки.

Посмотреть демонстрацию можно на сайте PixelRAG, а код и инструкции доступны в официальном репозитории.