Sobre o projeto
PaperQA2 é um pacote Python de código aberto e ferramenta CLI projetado para geração aumentada por recuperação (RAG) de alta precisão sobre literatura científica e outros tipos de documentos. Ele ingere PDFs, texto simples, Markdown, HTML, arquivos Microsoft Office (docx, xlsx, pptx) e arquivos de código-fonte, respondendo às perguntas dos usuários com citações fundamentadas no texto, apontando para páginas e passagens específicas.
O sistema segue um fluxo de trabalho agêntico de três fases: (1) Paper Search, onde um LLM gera consultas por palavras-chave para encontrar artigos candidatos e fragmentá-los em um índice local de busca em texto completo; (2) Gather Evidence, onde a consulta é incorporada, os principais trechos (top-k) são classificados, cada trecho é resumido em contexto, e um LLM reavalia e seleciona os resumos mais relevantes; (3) Generate Answer, onde os melhores resumos são colocados em um prompt e uma resposta é produzida. Um agente de linguagem pode invocar essas ferramentas em qualquer ordem, permitindo o refinamento iterativo de consultas e respostas.
As principais funcionalidades incluem a busca automática de metadados do Semantic Scholar, Crossref e Unpaywall (incluindo contagens de citações e verificações de retratação), incorporações conscientes de metadados de documentos, reclassificação baseada em LLM e resumo contextual (RCS), além de uma interface robusta de personalização. A pilha padrão usa incorporações e modelos da OpenAI com um banco de dados vetorial Numpy, mas o PaperQA2 integra-se com o LiteLLM para suportar praticamente qualquer provedor de LLM, incluindo Claude, Gemini e modelos hospedados localmente via llama.cpp. Também são suportados modelos de incorporação locais via Sentence Transformers.
A ferramenta CLI `pqa` oferece um uso rápido: navegue até um diretório de artigos e execute `pqa ask 'What is PaperQA2?'` para indexar, buscar e responder em uma única etapa. Configurações incluídas (high_quality, fast, wikicrow, contracrow, debug, tier1_limits) oferecem configurações pré-ajustadas para diferentes casos de uso, incluindo detecção de contradições e escrita de artigos no estilo Wikipedia. O limite de taxa é configurável por modelo para acomodar restrições de nível de API.
A biblioteca Python oferece APIs tanto síncronas quanto assíncronas. A função `ask` fornece um wrapper de conveniência, enquanto `agent_query` e a manipulação direta do objeto `Docs` permitem controle granular sobre a ingestão de documentos e consultas. O objeto `Docs` suporta adição de arquivos, URLs e código, com métodos para recuperação de evidências e consultas. Todas as respostas anteriores são indexadas e armazenadas para busca posterior.
Atualizações recentes (dezembro de 2025) adicionaram suporte multimodal para tabelas, figuras, idiomas não ingleses e equações matemáticas; novos leitores de PDF baseados em modelos (Docling e Nvidia nemotron-parse); análise de documentos Microsoft Office; resumo contextual multimodal, onde objetos de mídia são passados para o LLM de resumo; e uma pilha HTTP simplificada usando httpx. O projeto mudou do versionamento semântico para o versionamento de calendário em dezembro de 2025.
O PaperQA2 é licenciado sob a Apache 2.0 e requer Python 3.11+. Ele depende de bibliotecas incluindo Semantic Scholar, Crossref, Unpaywall, Pydantic, tantivy, LiteLLM e pybtex. O projeto é desenvolvido pela Future House e foi publicado em pesquisa revisada por pares demonstrando desempenho super-humano em tarefas de resposta a perguntas científicas, resumo e detecção de contradições.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.