Skip to content

WORMMMMMM/Javis_of_Knowledge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 JarvisOfYourKnowledge - AI个人知识库

一个基于 RAG(检索增强生成)的智能个人知识库系统,帮助你管理文献、书籍,并提供AI驱动的智能搜索和问答功能。

✨ 特性

  • 📄 多格式支持:PDF、DOCX、EPUB 文档上传和解析
  • 🤖 AI 智能分类:自动识别文档类型并打标签
  • 📊 阅读进度管理:跟踪每本书的阅读状态(未读/正在读/已读完/归档)
  • 🔍 混合检索:向量语义检索 + BM25 关键词检索,精准找到相关内容
  • 💬 RAG 问答:基于你的知识库内容回答问题,附带来源引用
  • 🏠 本地 Embedding:使用 bge-m3 模型,文档内容不出本地
  • 🎨 古典书房风格 UI:独特的视觉设计,告别千篇一律的 AI 界面

🖼️ 界面预览

系统采用三栏布局:

  • 左侧:文档筛选(按状态/分类)+ 上传入口
  • 中间:文档书架,卡片式展示
  • 右侧:AI 问答面板

🚀 快速开始

1. 克隆项目

git clone https://github.com/WORMMMMMM/JarvisOfYourKnowledge.git
cd JarvisOfYourKnowledge

2. 安装依赖

pip install -r requirements.txt

⏳ 首次运行会自动下载 Embedding 模型(约 1-2GB),请耐心等待

3. 配置环境变量

创建 .env 文件:

# GLM API 配置(必填)
GLM_API_KEY=your_glm_api_key_here
GLM_BASE_URL=https://open.bigmodel.cn/api/paas/v4/
GLM_MODEL=glm-4-flash

# Embedding 模型(可选,默认 bge-m3)
EMBEDDING_MODEL=BAAI/bge-m3

# 服务配置(可选)
HOST=0.0.0.0
PORT=8000

4. 启动服务

python main.py

访问 http://localhost:8000 即可使用。

📖 使用指南

上传文档

  1. 点击左上角「📤 上传文档」按钮
  2. 选择 PDF、DOCX 或 EPUB 文件
  3. 系统会自动:
    • 解析文档内容
    • AI 分析并分类
    • 建立检索索引

管理阅读状态

点击任意文档卡片,可以:

  • 设置阅读状态(未读/正在读/已读完/归档)
  • 调整阅读进度(0-100%)
  • 添加个人笔记

智能问答

在右侧问答面板输入问题,例如:

  • "这篇论文的主要观点是什么?"
  • "关于机器学习的文档里提到了哪些算法?"
  • "总结一下《XXX》这本书的核心内容"

系统会从你的知识库中检索相关内容,生成带来源引用的回答。

📁 项目结构

JarvisOfYourKnowledge/
├── main.py              # 启动入口
├── config.py            # 配置文件
├── requirements.txt     # 依赖
├── app/
│   ├── api.py           # FastAPI 路由
│   ├── doc_parser.py    # 文档解析(PDF/DOCX/EPUB)
│   ├── chunker.py       # 文本分块
│   ├── indexer.py       # 向量 + BM25 索引
│   ├── retriever.py     # 混合检索
│   ├── llm_client.py    # GLM API 客户端
│   ├── classifier.py    # AI 文档分类
│   ├── library.py       # 知识库管理
│   ├── answerer.py      # RAG 问答生成
│   └── models.py        # 数据模型
├── frontend/
│   └── index.html       # Web 界面
└── data/                # 运行时数据(gitignore)
    ├── uploads/         # 上传的原始文档
    ├── index/           # 索引文件
    └── library.sqlite   # 元数据数据库

⚙️ 配置说明

参数 默认值 说明
CHUNK_SIZE 400 分块目标字数
CHUNK_OVERLAP 50 块间重叠字数
RETRIEVAL_TOP_K 5 检索返回的证据数量
HYBRID_ALPHA 0.5 向量检索分数权重
HYBRID_BETA 0.5 BM25 检索分数权重
LLM_TEMPERATURE 0.2 生成温度(越低越稳定)

🔌 API 接口

接口 方法 说明
/api/documents/upload POST 上传文档
/api/documents GET 获取文档列表
/api/documents/{id} GET 获取文档详情
/api/documents/{id} PATCH 更新文档信息
/api/documents/{id} DELETE 删除文档
/api/chat POST RAG 问答
/api/stats GET 知识库统计
/api/categories GET 获取所有分类
/api/tags GET 获取所有标签
/api/health GET 健康检查

完整 API 文档:http://localhost:8000/docs

❓ 常见问题

Q: 首次启动很慢?

A: 首次运行需要下载 Embedding 模型(约 1-2GB),这是一次性的。

Q: 如何获取 GLM API Key?

A: 访问 智谱AI开放平台,注册后可获取 API Key。

Q: 支持扫描版 PDF 吗?

A: 当前版本仅支持可选中文字的 PDF。扫描版需要 OCR 支持,后续版本会考虑添加。

Q: 可以使用其他 LLM 吗?

A: 当前版本针对 GLM 优化。如需支持其他模型,可以修改 app/llm_client.py

🛣️ 路线图

  • 支持更多文档格式(TXT、Markdown)
  • OCR 支持扫描版 PDF
  • 文档标注和高亮
  • 移动端适配
  • 多 LLM 支持(OpenAI、Claude 等)
  • 文档导出和分享

📄 License

MIT

🙏 致谢

About

Your Javis of Your Knowledge

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors