这个项目能做什么
PaperQA2是一个开源Python包和CLI工具,专为科学文献及其他文档类型的高精度检索增强生成(RAG)而设计。它可摄取PDF、纯文本、Markdown、HTML、Microsoft Office文件(docx、xlsx、pptx)及源代码文件,然后以带引用的、指向具体页面和段落的文本内引用回答用户问题。
该系统遵循三阶段代理工作流:(1)论文搜索,LLM生成关键词查询以查找候选论文,并将其分块到本地全文搜索索引中;(2)收集证据,对查询进行嵌入,对top-k块进行排序,在上下文中总结每个块,并由LLM重新评分和选择最相关的摘要;(3)生成答案,将最佳摘要放入提示中并生成答案。语言代理可以任意顺序调用这些工具,实现查询和答案的迭代优化。
主要功能包括从Semantic Scholar、Crossref和Unpaywall自动获取元数据(包括引用计数和撤稿检查)、文档元数据感知嵌入、基于LLM的重新排序和上下文摘要(RCS),以及强大的自定义界面。默认技术栈使用OpenAI嵌入和模型,搭配Numpy向量数据库,但PaperQA2集成LiteLLM以支持几乎所有LLM提供商,包括Claude、Gemini以及通过llama.cpp本地托管的模型。也支持通过Sentence Transformers使用本地嵌入模型。
CLI工具`pqa`提供快速入门用法:导航到论文目录并运行`pqa ask 'What is PaperQA2?'`即可一步完成索引、搜索和回答。捆绑设置(high_quality、fast、wikicrow、contracrow、debug、tier1_limits)为不同用例提供预调配置,包括矛盾检测和维基百科风格文章撰写。速率限制可按模型配置,以适应API层级限制。
Python库提供同步和异步API。`ask`函数提供便捷包装,而`agent_query`和直接操作`Docs`对象允许对文档摄取和查询进行细粒度控制。`Docs`对象支持添加文件、URL和代码,并提供证据检索和查询方法。所有先前的答案都会被索引并存储以供后续搜索。
近期更新(2025年12月)增加了对表格、图形、非英语语言和数学方程的多模态支持;新的基于模型的PDF阅读器(Docling和Nvidia nemotron-parse);Microsoft Office文档解析;多模态上下文摘要(媒体对象传递给摘要LLM);以及使用httpx的简化HTTP栈。项目于2025年12月从语义版本控制转向日历版本控制。
PaperQA2采用Apache 2.0许可证,要求Python 3.11+。它依赖的库包括Semantic Scholar、Crossref、Unpaywall、Pydantic、tantivy、LiteLLM和pybtex。该项目由Future House开发,并已在同行评审研究中发表,展示了在科学问答、摘要和矛盾检测任务上的超人类性能。
评论
0 评分人数达到10人后显示
登录后参与讨论。