haiku-rag

haiku-rag

ggozadMIT
533 звёзд36 форков
Haiku RAG — это агентный RAG-сервер для поиска, анализа и извлечения информации из документов. Он построен на связке LanceDB (векторное хранилище), Pydantic AI (агентный фреймворк) и Docling (разбор документов). Сервер даёт AI-ассистентам, работающим по протоколу MCP, доступ к вашей базе знаний: они могут искать текст, находить изображения, отвечать на вопросы с цитированием источников и выполнять аналитические расчёты. Главная особенность — мультимодальный поиск. Система хранит не только текст, но и изображения из документов. Вы можете искать картинки по текстовому описанию или находить похожие изображения. Агентный движок сам решает, какой инструмент применить: гибридный поиск, переранжирование, генерацию ответа с картинками или выполнение Python-кода для анализа данных. Всё работает локально, без обязательного подключения к облаку.

Установка

uvx haiku-rag

Характеристики

Общее

  • СтатусСообщество
  • Разработчикggozad
  • ЛицензияMIT

Технологии

  • Языки
    Python
  • Транспорт
    stdio

Описание

Возможности

  • Гибридный поиск: комбинирует векторное сходство и полнотекстовый поиск с объединением через Reciprocal Rank Fusion.
  • Мультимодальный поиск: текстовый запрос находит релевантные иллюстрации, запрос изображением — похожие картинки.
  • Вопросно-ответный навык (RAG): возвращает ответ с цитатами — номерами страниц и заголовками разделов.
  • Ответы с визуальным контекстом: визуальные модели получают байты найденных изображений вместе с текстом фрагментов.
  • Переранжирование результатов: поддержка MxBAI, Cohere, Zero Entropy, vLLM для повышения точности.
  • Аналитический навык: выполнение сложных вычислений и многофайлового анализа в изолированной Python-песочнице.
  • Диалоговый режим: многотурные беседы с памятью сессий через TUI или веб-интерфейс.
  • Сохранение структуры документа: полное представление DoclingDocument для контекстного расширения.
  • Модуль ингеста (production ingester): асинхронное индексирование с очередями, повторами, dead-letter и дашбордом для операторов.
  • Путешествие во времени: возможность запросить базу данных на любой момент с параметром --before.

Как подключить

Установите и запустите MCP-сервер:

uvx haiku-rag

Или для полной функциональности установите пакет:

pip install haiku.rag

После установки добавьте конфигурацию в ваш MCP-клиент (например, Claude Desktop). В файл конфигурации Claude добавьте:

{ "mcpServers": { "haiku-rag": { "command": "uvx", "args": ["haiku-rag"] } } }

Перезапустите клиент. Сервер будет доступен как набор инструментов для работы с документами.

Примеры запросов

  • «Найди в отчётах все места, где упоминается квартальная прибыль, и покажи с номерами страниц.»
  • «Покажи диаграммы из документа про машинное обучение.»
  • «Сравни бюджет на маркетинг за 2023 и 2024 год из двух разных файлов, сведи в таблицу.»
  • «Объясни основную идею статьи и добавь ссылки на источники.»

Технические детали

Язык: Python. Транспорт: stdio. Лицензия: MIT. Клиенты: любые MCP-совместимые ассистенты (Claude Desktop и другие).

Для работы требуется Python 3.12 или новее. База данных — встроенная LanceDB (также поддерживает S3, GCS, Azure, LanceDB Cloud).

Поделиться