Skip to content

ABLigege/LocalSmartReader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 本地智能阅读助手(Local Smart Reader)

基于 RAG(检索增强生成)的完全本地运行的 PDF 文献阅读工具。所有数据不出本机,无需联网,保护你的隐私。

✨ 功能特性

  • 🔒 完全本地:嵌入模型、大模型、向量库全部运行在本机,无数据外泄风险
  • 📄 PDF 智能问答:上传论文/文档,直接提问即可获得基于原文的答案
  • 🎯 精准检索:基于 BGE 中文嵌入模型 + ChromaDB 向量检索
  • 🤖 本地大模型:通过 Ollama 调用 Qwen2-1.5B 生成回答
  • 📊 Bad Case 收集:对不满意回答一键标记,方便后续优化
  • 🔄 索引重建:侧边栏一键重建向量库,换文档秒切换

🛠️ 技术栈

组件 技术选型
向量数据库 ChromaDB
嵌入模型 BGE-small-zh-v1.5(本地)
生成模型 Qwen2-1.5B(通过 Ollama 本地运行)
Web 框架 Streamlit
PDF 解析 PyPDF

📋 前置条件

1. 安装 Ollama

前往 https://ollama.com 下载安装 Ollama,然后拉取模型: bash ollama pull qwen2:1.5b

2. 准备 BGE 嵌入模型

安装并运行一次后,模型会自动缓存到: C:\Users\你的用户名.cache\huggingface\hub\models--BAAI--bge-small-zh-v1.5\snapshots<哈希值>\

记下这个路径,后面需要配置环境变量。

3. Python 环境

  • Python 3.10 或更高版本
  • 推荐使用 Conda 创建独立虚拟环境

🚀 快速开始

克隆仓库

bash git clone https://github.com/ABLigege/LocalSmartReader.git cd LocalSmartReader

安装依赖

bash pip install -r requirements.txt

配置环境变量

设置 BGE_PATH 指向你本地的 BGE 模型快照目录:

Windows(CMD): cmd set BGE_PATH=C:\Users\你的用户名.cache\huggingface\hub\models--BAAI--bge-small-zh-v1.5\snapshots<你的哈希值>

Windows(PowerShell): powershell $env:BGE_PATH="C:\Users\你的用户名.cache\huggingface\hub\models--BAAI--bge-small-zh-v1.5\snapshots<你的哈希值>"

💡 提示:也可以直接修改 app.py 中的 DEFAULT_BGE 变量为你的本地路径。

准备文档

将你的 PDF 文献放入 data/ 文件夹中。你可以:

  • 放入任意数量的 PDF 文件
  • 同时放入 .xlsx 文件(用于评估等配套功能)
  • PDF 文件名不限,支持中文

运行

streamlit run app.py

浏览器会自动打开 http://localhost:8501,直接在聊天框中提问即可!

⚠️ 显卡显存不足?

如果运行时提示 CUDA / 显存相关错误,可以强制使用 CPU 运行:

set OLLAMA_GPU_LAYERS=0 streamlit run app.py

首次提问会稍慢(需加载模型),后续提问速度正常。

📖 使用指南

基本问答

在网页底部的输入框中,直接输入关于文档的问题,例如:

  • "这篇论文的核心创新点是什么?"
  • "第三章的实验结果如何?"
  • "总结一下本文的主要结论"

重建索引

当你替换了 data/ 中的 PDF 文件后,点击侧边栏的 「🔄 重建向量库」 按钮,即可重新构建索引。

反馈机制

  • 👍 有用:标记回答质量好
  • 👎 无用:标记为 Bad Case,自动保存到 data/bad_cases.jsonl,方便后续分析优化

检索结果查看

每次回答前,系统会检索相关文本片段。点击 「🔍 检索到的相关片段」 可展开查看具体引用来源。

🔧 依赖清单(requirements.txt)

streamlit==1.36.0 chromadb==0.4.24 sentence-transformers==2.7.0 pypdf==4.2.0 ollama numpy==1.26.4

🙏 致谢

  • LlamaIndex — RAG 框架灵感来源
  • ChromaDB — 轻量向量数据库
  • Ollama — 本地大模型运行工具
  • BGE — 中文嵌入模型
  • Qwen — 阿里开源大模型

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages