Об этом проекте
PaperQA2 — это пакет Python с открытым исходным кодом и инструмент CLI, предназначенный для высокоточной генерации с дополнением retrieval augmented generation (RAG) по научной литературе и другим типам документов. Он принимает PDF, обычный текст, Markdown, HTML, файлы Microsoft Office (docx, xlsx, pptx) и файлы исходного кода, а затем отвечает на вопросы пользователя с обоснованными цитатами в тексте, указывающими на конкретные страницы и фрагменты.
Система следует трехфазному агентному рабочему процессу: (1) Поиск статей, где LLM генерирует ключевые запросы для поиска кандидатов и разбивает их на локальный индекс полнотекстового поиска; (2) Сбор доказательств, где запрос встраивается, ранжируются топ-k фрагментов, каждый фрагмент суммируется в контексте, а LLM пересматривает и выбирает наиболее релевантные резюме; (3) Генерация ответа, где лучшие резюме помещаются в подсказку и формируется ответ. Языковой агент может вызывать эти инструменты в любом порядке, что позволяет итеративно уточнять запросы и ответы.
Ключевые особенности включают автоматическую загрузку метаданных из Semantic Scholar, Crossref и Unpaywall (включая количество цитирований и проверку на отзыв), эмбеддинги, учитывающие метаданные документа, переранжирование на основе LLM и контекстное суммирование (RCS), а также надежный интерфейс настройки. По умолчанию используется стек с эмбеддингами и моделями OpenAI и векторной базой данных Numpy, но PaperQA2 интегрируется с LiteLLM для поддержки практически любого провайдера LLM, включая Claude, Gemini и локально размещенные модели через llama.cpp. Также поддерживаются локальные модели эмбеддингов через Sentence Transformers.
Инструмент CLI `pqa` обеспечивает быстрый старт: перейдите в каталог со статьями и выполните `pqa ask 'Что такое PaperQA2?'`, чтобы проиндексировать, выполнить поиск и ответить за один шаг. Включенные настройки (high_quality, fast, wikicrow, contracrow, debug, tier1_limits) предлагают заранее настроенные конфигурации для различных случаев использования, включая обнаружение противоречий и написание статей в стиле Википедии. Ограничение частоты запросов настраивается для каждой модели с учетом ограничений уровня API.
Библиотека Python предлагает как синхронные, так и асинхронные API. Функция `ask` предоставляет удобный обертка, тогда как `agent_query` и прямое управление объектом `Docs` позволяют точно контролировать загрузку документов и запросы. Объект `Docs` поддерживает добавление файлов, URL и кода, с методами для извлечения доказательств и запросов. Все предыдущие ответы индексируются и сохраняются для последующего поиска.
Недавние обновления (декабрь 2025 г.) добавили мультимодальную поддержку для таблиц, фигур, неанглоязычных текстов и математических уравнений; новые ридеры PDF на основе моделей (Docling и Nvidia nemotron-parse); анализ документов Microsoft Office; мультимодальное контекстное суммирование, при котором медиаобъекты передаются LLM-суммаризатору; и упрощенный HTTP-стек с использованием httpx. Проект перешел от семантического версионирования к календарному в декабре 2025 года.
PaperQA2 лицензируется под Apache 2.0 и требует Python 3.11+. Он зависит от библиотек, включая Semantic Scholar, Crossref, Unpaywall, Pydantic, tantivy, LiteLLM и pybtex. Проект разрабатывается Future House и был опубликован в рецензируемых исследованиях, демонстрирующих сверхчеловеческую производительность в задачах ответа на научные вопросы, суммирования и обнаружения противоречий.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.