Sobre el proyecto
PaperQA2 es un paquete de Python de código abierto y una herramienta CLI diseñada para la generación aumentada por recuperación (RAG) de alta precisión sobre literatura científica y otros tipos de documentos. Ingiere PDFs, texto plano, Markdown, HTML, archivos de Microsoft Office (docx, xlsx, pptx) y archivos de código fuente, y luego responde preguntas de los usuarios con citas fundamentadas en el texto, que apuntan a páginas y pasajes específicos.
El sistema sigue un flujo de trabajo agéntico en tres fases: (1) Búsqueda de artículos, donde un LLM genera consultas de palabras clave para encontrar artículos candidatos y los divide en un índice local de búsqueda de texto completo; (2) Recopilación de evidencia, donde se incrusta la consulta, se clasifican los fragmentos top-k, se resume cada fragmento en contexto, y un LLM vuelve a puntuar y selecciona los resúmenes más relevantes; (3) Generación de respuesta, donde los mejores resúmenes se colocan en un prompt y se produce una respuesta. Un agente de lenguaje puede invocar estas herramientas en cualquier orden, lo que permite el refinamiento iterativo de consultas y respuestas.
Las características clave incluyen la obtención automática de metadatos de Semantic Scholar, Crossref y Unpaywall (incluyendo recuentos de citas y comprobaciones de retractación), incrustaciones conscientes de metadatos de documentos, re-clasificación basada en LLM y resumen contextual (RCS), y una interfaz de personalización robusta. La pila predeterminada utiliza incrustaciones y modelos de OpenAI con una base de datos vectorial Numpy, pero PaperQA2 se integra con LiteLLM para admitir prácticamente cualquier proveedor de LLM, incluidos Claude, Gemini y modelos alojados localmente mediante llama.cpp. También se admiten modelos de incrustación locales mediante Sentence Transformers.
La herramienta CLI `pqa` proporciona un uso de inicio rápido: navegue a un directorio de artículos y ejecute `pqa ask '¿Qué es PaperQA2?'` para indexar, buscar y responder en un solo paso. Las configuraciones incluidas (high_quality, fast, wikicrow, contracrow, debug, tier1_limits) ofrecen ajustes predefinidos para diferentes casos de uso, incluida la detección de contradicciones y la redacción de artículos estilo Wikipedia. El límite de velocidad es configurable por modelo para adaptarse a las restricciones de nivel de API.
La biblioteca de Python ofrece APIs tanto síncronas como asíncronas. La función `ask` proporciona un envoltorio conveniente, mientras que `agent_query` y la manipulación directa del objeto `Docs` permiten un control fino sobre la ingesta y consulta de documentos. El objeto `Docs` admite agregar archivos, URLs y código, con métodos para la recuperación de evidencia y consultas. Todas las respuestas anteriores se indexan y almacenan para búsquedas posteriores.
Las actualizaciones recientes (diciembre de 2025) agregaron soporte multimodal para tablas, figuras, idiomas no ingleses y ecuaciones matemáticas; nuevos lectores de PDF basados en modelos (Docling y Nvidia nemotron-parse); análisis de documentos de Microsoft Office; resumen contextual multimodal donde los objetos multimedia se pasan al LLM de resumen; y una pila HTTP simplificada usando httpx. El proyecto pasó de versionado semántico a versionado por calendario en diciembre de 2025.
PaperQA2 está licenciado bajo Apache 2.0 y requiere Python 3.11+. Depende de bibliotecas como Semantic Scholar, Crossref, Unpaywall, Pydantic, tantivy, LiteLLM y pybtex. El proyecto es desarrollado por Future House y ha sido publicado en investigación revisada por pares, demostrando un rendimiento sobrehumano en tareas de respuesta a preguntas científicas, resumen y detección de contradicciones.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.