Paper Copilot:基于向量索引与大模型的本地文献RAG分析工具
这是在使用Zotero时想到的, Zotero 也有一些与 AI 相关的插件,但目前尚未发现支持 RAG(检索增强生成)功能,且无法实现对多篇文献的综合分析,并与大模型进行交互。因此,我开发了 Paper Copilot 这款小工具。它基于向量索引与大模型技术,专为学术研究人员设计,旨在帮助用户更高效地管理、检索和分析海量文献。
Paper Copilot 支持通过本地自建知识库并结合 RAG 技术,为用户提供精准、专业的解答,显著提升文献研究的效率与准确性。此外,工具还可与 Zotero 的文献库联动,构建个性化的文献数据库,进一步扩展文献管理的能力。
项目地址
paper copilot
功能
文献索引与管理:支持PDF、TXT、Markdown和DOCX等多种文档格式的文本提取与向量化,自动创建和管理向量索引库。 智能问答:基于向量数据库和OpenAI模型,能够理解用户问题并在相关文献中检索答案。 聊天记录管理:支持保存、加载和清除聊天记录,便于用户跟踪和回顾对话历史。 用户友好的命令行界面:通过简单的命令操作,实现创建知识库、进行问答、管理聊天记录等功能。 知识库管理:支持创建、加载、保存和删除知识库,便于用户管理和切换不同的知识库。
安装
克隆仓库
git clone https://github.com/Code-WSY/Paper_Copilot.git
cd Paper_Copilot
安装依赖
pip install -r requirements.txt
配置环境变量 在项目根目录下创建一个 .env 文件,并添加以下内容:
#数据库路径
DATABASE_PATH=database/index.db
#API_KEY
API_KEY=
#API_URL
BASE_URL=
#模型
MODEL=o1-mini
#批量大小
BATCH_SIZE=1000
#重复部分大小
REPEAT_SIZE=200
#最大返回数
TOP_N=5
#关系阈值
RELATION_THRESHOLD=0.2
#构建知识库时的并行数
PARALLEL_NUM=4
使用方法
项目根目录运行:
python main.py
目前支持如下命令:
示例:导入Zotero文献库
首先运行这个项目,通过命令行键入/create
回车,通过选择文件夹,来导入Zotero文献:
选择是
是选择文件,选择否
则为遍历文件夹,
例如我的Zotero的文献储存位置是:D:\document\Zotero\storage,我先选择否
,接着选中该文件夹即可,此时程序就会将所有文献进行向量化存储:
注意:如果并行数过大,API的速率限制可能会造成某些文件向量化时出现错误,此时只需要第二次重新选择该文件就行,程序会跳过已向量化的文件。
导入成功后就可以选择文件进行问答了:
选择一个或多个文件,可以进行单文献的问答,也可以进行多文献之间的对比。