Paper Copilot:基于向量索引与大模型的本地文献RAG分析工具

学术   2024-10-11 17:28   中国台湾  

Paper Copilot:基于向量索引与大模型的本地文献RAG分析工具

这是在使用Zotero时想到的, Zotero 也有一些与 AI 相关的插件,但目前尚未发现支持 RAG(检索增强生成)功能,且无法实现对多篇文献的综合分析,并与大模型进行交互。因此,我开发了 Paper Copilot 这款小工具。它基于向量索引与大模型技术,专为学术研究人员设计,旨在帮助用户更高效地管理、检索和分析海量文献。

Paper Copilot 支持通过本地自建知识库并结合 RAG 技术,为用户提供精准、专业的解答,显著提升文献研究的效率与准确性。此外,工具还可与 Zotero 的文献库联动,构建个性化的文献数据库,进一步扩展文献管理的能力。

项目地址

  • paper copilot

功能

  • 文献索引与管理:支持PDF、TXT、Markdown和DOCX等多种文档格式的文本提取与向量化,自动创建和管理向量索引库。
  • 智能问答:基于向量数据库和OpenAI模型,能够理解用户问题并在相关文献中检索答案。
  • 聊天记录管理:支持保存、加载和清除聊天记录,便于用户跟踪和回顾对话历史。
  • 用户友好的命令行界面:通过简单的命令操作,实现创建知识库、进行问答、管理聊天记录等功能。
  • 知识库管理:支持创建、加载、保存和删除知识库,便于用户管理和切换不同的知识库。

安装

  1. 克隆仓库
git clone https://github.com/Code-WSY/Paper_Copilot.git
cd Paper_Copilot
  1. 安装依赖
pip install -r requirements.txt
  1. 配置环境变量 在项目根目录下创建一个 .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的速率限制可能会造成某些文件向量化时出现错误,此时只需要第二次重新选择该文件就行,程序会跳过已向量化的文件。

导入成功后就可以选择文件进行问答了:

选择一个或多个文件,可以进行单文献的问答,也可以进行多文献之间的对比。


学术之友
\x26quot;学术之友\x26quot;旨在建立一个综合的学术交流平台。主要内容包括:分享科研资讯,总结学术干货,发布科研招聘等。让我们携起手来共同学习,一起进步!
 最新文章