Releases: RMA-MUN/RAGNotebook
Release list
v2.2.0
v2.2.0
发布日期:2026年6月21日
🎉 功能优化
🧠 RAG 架构优化
- 路由层 RAG 前置管线:实现基于相关度评分的智能路由(score > 0.5 走 RAG 管线)
- 实时思考事件推送:通过 asyncio.Queue 实现 RAG 思考过程实时推送到前端
- 向量检索优化:新增
compute_route_score快速相关度评分方法(<10ms) - 重排序模型切换:从默认模型切换为
BAAI/bge-reranker-v2-m3(首次启动会自动检测并下载模型)
📝 笔记能力增强
- 笔记模板:后端新增模板 Model、Service、Router,前端 NoteEditor 支持模板选择与应用
- 笔记置顶:新增
is_pinned字段,支持置顶排序,前后端完整实现 - 批量操作:支持笔记多选模式、批量删除、批量导出 ZIP、批量更新分类
- 分类管理:笔记分类统计改为动态查询,新增删除分类接口,前端分类管理弹窗
- 代码高亮:前端笔记编辑器支持代码语法高亮
- 表格编辑:编辑器表格插入可视化网格与行列操作
👤 用户系统
- 用户数据模型:新增用户 Pydantic Schema 定义
- 认证重构:重构用户认证工具函数与用户路由接口
🎨 前端体验
- Toast 通知:引入 sonner 组件,统一错误提示体验
- 思考过程优化:思考内容改为累加显示,支持换行展示
⚡ 性能优化
- RAG 路由决策:快速相关度评分避免不必要的 RAG 检索,提升响应速度
- Agent Prompt 优化:移除
rag_summary_tools依赖,改为路由层注入上下文,减少工具调用开销
🔧 核心重构
🧠 RAG 架构调整
- 移除 Agent 层的
rag_summary_tools工具,RAG 检索移至路由层前置处理 get_agent_stream_response新增rag_context参数,支持外部注入检索结果- System Prompt 动态切换:有 RAG 上下文时注入参考资料,无则使用默认 Prompt
👤 用户认证重构
- 重构用户认证工具函数,提升代码可维护性
- 移除 DjangoUserService 旧服务目录
🐛 Bug 修复
- 修复 Redis 连接配置缺失导致的报错
- 修复 shutdown 时 SQLAlchemy 引擎未释放导致的 aiomysql 连接泄漏
- 修复 Turndown 转义与标题滚动问题
- 补充 NoteEditor 缺失的状态变量声明,修复交互问题
- 修复会话列表排序,改为按更新时间降序排列
- 优化前端思考过程展示,解决内容覆盖问题
v2.1.0
v2.1.0
发布日期:2026年6月8日
🎉 重大更新
🎨 前端全面重构
- 从 Vue 3 + Vant 技术栈整体迁移至 React 19 + TypeScript + Tailwind CSS + Radix UI
- 重新设计组件体系与交互逻辑,带来更流畅的用户体验和更强的可维护性
- 原Vue3前端保留为分支
vue3-frontend
🚀 v2.1.0 新功能
📝 笔记能力增强
- 笔记创建与更新支持
category分类和tags标签字段,路由等待初始化完成后响应 - 后端新增笔记Markdown下载接口,完美支持中文文件名,前端配套一键下载按钮
⚙️ 后台初始化管理
- 新增
BackgroundInitManager单例管理器,后台异步初始化chat/embed/vision等重型模型资源 - 应用启动时间大幅缩短,无需等待所有模型加载完成即可启动FastAPI服务器
🛠️ Django 服务强化
- 应用启动时自动检测并执行数据库迁移,自动创建admin测试用户,避免用户因不熟悉DjangoORM而无法迁移数据库
- 数据库引擎支持短名称配置与环境变量注入
- 添加Django管理命令,注册serializer手机号字段允许为空
⚡ 性能优化
- Agent SSE 流式响应:采用15字符/0.03s的chunk化输出策略,加入
handle_parsing_errors异常处理,大幅提升流式输出稳定性 - DashScope 嵌入API:优化为批量调用模式(batch_size=10),失败时主动抛出异常而非静默失败,便于问题排查
- Redis 连接池:支持event loop切换与连接复用,降低连接开销
- RAG 检索调优:将文档分块大小
chunk_size从200提升至1000,Agent Prompt强化优先检索原则
🔧 核心重构
🧠 模型与服务惰性加载
- 实现
_LazyEmbedding延迟加载类,解决后台初始化时序冲突问题 - Vision服务改为模型延迟初始化,首次调用时才完成解析加载
- RAG全链路组件(reorder_service、vector_store、document_handler、rag_service)均改为惰性加载,移除模块级直接导入
- 业务服务层(note_service、review_service)的模型依赖统一通过
init_manager获取,彻底解耦模块依赖
🗄️ 配置体系优化
- Redis连接参数全部从环境变量读取,移除所有硬编码配置,提升部署安全性与灵活性
🐛 Bug 修复
- 修复JWT黑名单Redis检查失败时返回500错误的问题
- 修正Chroma语义搜索filter语法错误,解决检索条件不生效问题
- 修复Python callable类型注解错误
- 添加
drf-spectacular依赖
🧹 项目维护
- 正式添加MIT开源许可证,明确开源协议
- 关闭数据库SQL日志输出,减少不必要的日志冗余
- 更新前端界面截图,修正文档内容错误
- 优化后端依赖配置:限定
python-magic-bin平台范围、配置PyTorch CUDA索引、完善包发现设置
⚠️ 升级注意
- 前端技术栈已全面迁移至React 19,需重新安装依赖:
npm install - 新增数据库字段与配置项,Django应用启动时会自动执行迁移,请留意控制台输出
- Redis连接参数需通过环境变量配置,原硬编码配置已失效
- 后端依赖已更新,建议使用
uv sync重新同步依赖环境
v2.0.1
v2.0.0
RAG NoteBook v2.0.0
发布日期:2026年5月24日
📖 项目变迁
本项目最初是一个基础 RAG 对话系统——FastAPI + LangChain + ChromaDB,文档上传 → 检索 → 问答,纯技术演示。
但我逐渐意识到:一个没有场景的技术 demo,是不够的。
在做 RAG 的过程中,我发现如果把笔记作为RAG的知识库,那么我们的RAG是不是就会随着我们的学习、记笔记,而变得聪明?。于是我们决定在 RAG 引擎之上,围绕这个场景构建完整的智能笔记助手。
RAG 始终是整个系统的核心引擎。 我们将第一阶段的基础 RAG 代码永久保留为 base-rag 分支,与 master 独立演进。需要纯 RAG 服务的同学,切过去即可使用。
🚀 v2.0.0 新特性
📝 笔记管理
- Markdown 编辑器(bytemd),支持新建/编辑/删除/分类筛选
- LLM 自动标签分类(工作/学习/生活/项目),保存笔记后由LLML后台自动生成
- 基于向量嵌入的语义搜索
🔄 间隔重复回顾
- 艾宾浩斯遗忘曲线算法:1/2/4/7/15/30 天
- 每日待回顾卡片,一键标记完成
✍️ AI 写作辅助
- 联机补全:打字停顿后模型实时预测补全,Tab 键采纳,像在IDE里写代码一样记笔记
- AI 助手:摘要生成、基于笔记库和知识库的RAG检索,SSE 流式输出
- 跨源关联推荐:编辑笔记时,从笔记库和知识库双向检索 Top 3 相关文档
🤖 Agent 工具扩展
- 新增 6 个笔记相关 Agent 工具:搜索笔记、笔记统计、今日回顾、标记回顾、创建笔记、关联推荐
- 对话中可直接通过Agent管理笔记,无需手动切换页面
🎨 前端重构
- 全新 UI 设计系统:Noto Serif/Sans 字体,温润色系,双主题切换
- 底部导航重构,新增笔记/回顾主入口
- MarkdownEditor、InlineCompletion、RelatedNotes 等组件化
🔧 后端基础设施
- 笔记 & 回顾数据库模型(MySQL + ChromaDB 双写同步)
- 笔记 CRUD 服务 + 向量索引自动同步
- 8 个提示词模板(自动标签、联机补全、写作助手、回顾提问等)
📦 分支说明
| 分支 | 说明 |
|---|---|
master |
当前主分支,RAG NoteBook 智能笔记助手 |
base-rag |
基础 RAG 服务(原 master 快照),开箱即用 |
⚠️ 升级注意
- 新增
notes/review_records数据表,需执行数据库迁移(FastAPI应用启动时会自动生成,注意检查控制台输出) - 前端新增 bytemd、highlight.js、dompurify 等依赖,需
npm install
v1.4.0
LangChain-RAG-FastAPI-Service v1.4.0
发布日期:2026-05-16
✨ 新增特性
- SSE 实时推送 RAG 思考过程 — Agent 推理中间步骤通过
ContextVar+asyncio.create_task+ 队列实时推送到前端,支持流式展示思考链 - 前端思考过程面板 — 用户界面新增思考过程可视化组件,可实时查看 RAG 各阶段状态
- 重排序重构为两阶段 — 拆分为计算前/后两个阶段,返回详细打分字段,便于前端展示排序依据
- 统一 SSE 事件模型 — 新增
SSEEventdataclass +to_sse()方法,统一事件序列化 - 测试用户登录 — 登录接口对测试用户特殊处理,返回正确 token 及虚假个人信息,不写入数据库,方便演示
- PDF 解析引擎升级 — 使用 LangChain
UnstructuredPDFLoader替换PyPDFLoader,提升复杂 PDF 解析兼容性 - "关于我们"页面优化 — 优化展示效果,支持一键跳转项目 GitHub
🏗️ 架构调整
- 向量库上传流程重构 —
handle_add_vector_multiple_stream拆分为 9 个 SSE 辅助方法 + 3 个阶段方法,主函数从 275 行压缩至 44 行,消除 8 处重复 yield - MD5 操作抽取 — 将 MD5 文件操作从
VectorStoreService转移到MD5Store类,消除 5 处重复文件操作代码 - 清理废弃模型 — 移除已被
SSEEvent替代的UploadProgressPydantic 模型和SliceResult类,减少技术债务
🐛 问题修复
- 修复 Vite proxy 误匹配导致刷新
/knowledgebase路由时出现 404 的问题
📦 新增依赖
- 导出
requirements.txt(从pyproject.toml生成),方便习惯使用 pip 的用户安装依赖
📚 文档
- 新增知识库前端界面展示截图
- 增加 Django ORM 迁移指令
- 修复文档中错误的路由
欢迎提交 Issue & PR 参与项目共建
v1.3.0
LangChain-RAG-FastAPI-Service v1.3.0
✨ 新增特性
- 精细化向量数据库数据管理,新增文档原始名称、切片数量、切片详情等字段存储,适配前端可视化展示需求
- 新增向量数据库完整CRUD接口,支持前端可视化直接修改向量库内容
- 多文档上传向量库对接 SSE 实现实时进度推送;针对 Chroma(SQLite) 不支持并发写入问题,采用「线程池并发切分文档 + 单线程串行入库」方案,最大化上传效率
- 新增「关于我们」页面,前端可一键跳转项目 GitHub,方便用户反馈问题、提交建议
- 支持 Ollama + 阿里云百炼 双平台 LLM / Embedding 模型,通过修改
.env配置文件即可快速切换模型
🏗️ 架构调整
- 拆分
vector_store模块:对外接口保持不变,底层逻辑拆分为独立类,解决原文件近900行过于臃肿、难以维护的问题 - 重构路由分层:将原RAG对话、向量库管理接口拆分,新增
knowledge_router与knowledge_service,分离路由与业务逻辑,优化项目结构
🐛 问题修复
- 修复
Unrecognized model, should have amodel_typekey in its config.json.报错
新增config.json自动查找函数,解决模型目录不匹配、自动下载后路径异常导致的模型识别失败问题
📦 新增依赖
- FastAPI 端新增
rank_bm25依赖,解决使用user_id隔离用户知识库时,BM25检索器底层依赖缺失问题
发布日期:2026-05-10 | 欢迎提交 Issue & PR 参与项目共建
v1.2.0
LangChain-RAG-FastAPI-Service v1.2.0
✨ 新增特性
- 支持基于SSE + yield生成器的流式对话输出
- 新增LangSmith全链路监控与调用追踪能力
- 扩展支持pdf、txt、markdown、ppt、docs多格式文档上传至向量数据库
⚡ 核心优化
- 文档上传至向量数据库时,使用余弦相似度进行语义切割,避免检索时出现语义不完整的情况
- RAG全链路升级:HYDE语义前置优化 + BM25+向量检索动态权重融合 + Cross Encoder重排序
- 多文档批量处理 (多文档上传至向量数据库、多文档总结) 新增线程池并发支持,大幅降低任务耗时
- 重排序模型禁用梯度运算,显著提升推理性能
🐛 问题修复
- 修复
asyncio is not defined运行时异常,提升服务稳定性
发布日期:2026-04-30 | 欢迎提交Issue & PR参与项目共建
v1.1.0
LangChain-RAG-FastAPI-Service v1.1.0
📝 更新内容
- 优化RAG检索召回内容质量
- 升级前端交互体验
- 新增BM25关键词检索 + 余弦相似度(Cosine Similarity) 融合算法,实现高精度RAG检索
- 集成Hugging Face Qwen3-reranker:0.6b重排序模型,结合sentence-transformers实现Cross Encoder检索结果重排
- 优化用户注册及个人信息修改交互流程
🐛 问题修复
- 修复模型回复过程中出现无限循环检索的异常问题
- 修复模型生成回复内容被异常截断的问题
- 修复服务端用户注册功能异常问题
- 修复用户个人信息无法修改的功能缺陷
🤝 贡献指南
欢迎提交 Issue 与 Pull Request 参与项目共建!
发布日期:2026-03-30
v1.0.0
LangChain-RAG-FastAPI-Service v1.0.0
🚀 发布概述
正式发布企业级智能对话系统 v1.0.0 版本!这是一个基于 RAG(检索增强生成)技术构建的智能问答服务,支持文档上传、智能检索和精准回答。
✨ 核心功能
- 智能问答 - 基于 RAG 技术,结合文档检索和大语言模型,提供精准的问答体验
- 会话持久化 - 使用 MySQL 存储会话历史,支持长期保存和回溯
- 文档管理 - 支持 TXT 和 PDF 文件上传、解析和智能检索
- 多语言支持 - 集成 i18n,支持中英文界面切换
- 微服务架构 - 分离的用户服务和对话服务,易于扩展和维护
🛠️ 技术特性
- 高性能异步 API - 基于 FastAPI 框架,提供毫秒级响应速度
- 流式响应 - 使用 SSE 技术实现 AI 回答的实时流式输出
- 向量数据库 - 集成 ChromaDB,实现高效的文档检索
- JWT 认证 - 安全的用户身份验证机制
- 现代化前端 - Vue 3 + Vite,支持移动端友好界面
📋 系统架构
- 后端 - FastAPI + LangChain + ChromaDB + MySQL + Redis
- 前端 - Vue 3 + Vite + Pinia + Vue Router
- 用户服务 - Django + JWT
🚀 快速开始
📖 文档
- [FastAPI API 文档](https://github.com/RMA-MUN/LangChain-RAG-FastAPI-Service/blob/master/backend/api.md)
- [Django 用户服务 API 文档](https://github.com/RMA-MUN/LangChain-RAG-FastAPI-Service/blob/master/DjangoUserService/api.md)
🔧 环境要求
- Python 3.12+
- Node.js 16+
- MySQL 8.0+
- Redis 6.0+
📝 更新内容
- ✨ 集成 RAG 核心功能,支持文档检索和智能问答
- 📱 完成 Vue 3 前端开发,支持移动端访问
- 🔐 实现 JWT 用户认证和权限控制
- 💾 会话持久化存储,支持历史记录回溯
- 🌐 多语言支持,中英文界面切换
- ⚡ 优化系统性能,提升响应速度
- 🛡️ 完善的错误处理和日志系统
🔮 未来规划
- 📚 支持更多文档格式(Word、Excel 等)
- 🎨 优化 UI/UX 设计,提升用户体验
- 🤖 集成更多大语言模型,提供多样化服务
- 📊 添加数据分析和统计功能
- 🔧 增强系统可配置性,支持更多自定义选项
🤝 贡献
欢迎提交 Issue 和 Pull Request!
发布日期: 2026-03-24
项目地址: https://github.com/RMA-MUN/LangChain-RAG-FastAPI-Service
RAG and FastAPI ChatService
🎉 LangChain-RAG-FastAPI-Service v0.1.0 (Pre-release)
这是项目的首个早期预览版本,核心能力已完成基础落地,RAG 检索增强生成、Agent 智能体工具调用、JWT 统一用户认证体系均已可正常跑通;当前前端交互界面与部分 API 细节仍在持续优化调整中, 欢迎大家提供建议和反馈。
✨ 本版本已实现的核心功能
- 🏗️ 微服务架构雏形:Django 用户管理服务与 FastAPI RAG/Agent 核心服务解耦拆分,双服务独立数据库部署
- 🤖 Agent 智能体能力:基于 LangChain 实现智能体工具调用,支持灵活扩展多场景自动化处理能力
- 📚 基础 RAG 检索能力:集成 LangChain + ChromaDB 向量数据库,支持 TXT/PDF 文档上传解析,可基于专属文档内容完成精准智能问答
- 💬 智能对话与持久化记忆:完整支持上下文多轮对话,会话历史通过 MySQL 实现长期持久化存储与回溯
- 🔐 JWT 统一身份认证:配套完整的用户注册、登录体系,基于 JWT 实现无状态接口权限校验,保障接口访问安全
- 💚 Vue 3 前端交互界面:轻量化对话交互界面已完成基础搭建,界面体验与功能细节仍在优化完善中
💡 欢迎交流反馈
如果您在使用过程中遇到 Bug、有功能建议,或是想参与项目,欢迎随时提交 Issue:
GitHub Issues 入口
感谢您的关注与支持,项目会持续迭代优化,不断完善能力与体验!