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, а код и инструкции доступны в официальном репозитории.