RAG-LLM-知识库系统搭建
AI 知识库平台 · AI Knowledge Base Platform简体中文 English一句话独立设计并实现的生产级 AI 知识库平台打通RAG真实语义嵌入 两阶段重排序、ReAct 智能体、多模型 LLM、上下文记忆、知识图谱五大能力支持在Web 端接入 / 切换大模型密钥并脱密保护前后端分离 分层架构Docker 一键部署。本项目覆盖现代 AI 产品「文档摄取 → 向量检索 → 提示工程 → 智能体编排 → 多轮记忆 → 知识图谱 → 前端交互」的完整链路是一个可运行、可测试、可扩展的工程作品集。为保证可演示性嵌入内置离线确定性 Mock零密钥即可跑通整条 RAG 链路生产可一键切换为真实语义嵌入bge-m3。 English IntroductionAproduction-grade AI Knowledge Base Platform, independently designed and built, integrating five core capabilities:RAG (real semantic embeddings two-stage reranking), a ReAct agent, multi-provider LLMs, contextual memory, and a knowledge graph. LLM / embedding / rerankerAPI keys can be configured and hot-switched from the Web UI with secret masking— keys never leave the page. Decoupled frontend/backend with a layered architecture, one-command Docker deployment.It covers the full modern-AI pipeline —document ingestion → vector retrieval → prompt engineering → agent orchestration → multi-turn memory → knowledge graph → web interaction— as a runnable, testable and extensible engineering showcase. A built-inoffline deterministic mock embedderlets the entire RAG chain run withzero keys(ideal for demos, CI and the 49 offline unit tests); switch toreal semantic embeddings (bge-m3)for production.️ 系统架构 · Architecture前后端分离 后端四层依赖方向自上而下核心能力层不感知上层。Decoupled frontend/backend with a four-layer backend; dependencies point downward and the core layer is framework-agnostic.☁️ 外部服务 External · OpenAI 兼容️ 基础设施 Infrastructure⚙️ 后端 Backend · FastAPI · Python 3.11 网关 Gateway️ 前端 Frontend · React 18 Vite TypeScript核心能力层 app/coreHTTP / SSE凭据单一事实来源Chat / Documents / Graph / Agent / Memory / Prompt / Settings 面板Nginx 静态托管 /api 反代生产Vite Proxy开发main.py · CORS / 全局异常 / lifespan / 路由注册API 路由层 app/apidocuments · chat · agent · memory · models · graph · settings服务编排层 app/servicesContainer 组合根 · Document / Chat / Agent / Graph ServiceLLM 抽象 工厂RAG 两阶段检索ReAct AgentMemory 记忆知识图谱RuntimeConfigStore运行时配置 脱密numpy 向量库SQLite文件系统 / 上传DeepSeek / 小米 MiMoEmbedding bge-m3Reranker bge-reranker-v2-m3更详细的分层职责与模块深剖见docs/system-overview.md。✨ 核心功能模块能力RAG 检索增强多格式文档PDF/Word/TXT/Markdown上传 → 解析 → 递归分块 → 向量化入库两阶段语义检索向量召回 重排精排相关性阈值过滤无据不编造多模型 LLM统一抽象层封装 DeepSeek / 小米 MiMo均兼容 OpenAI 协议工厂模式 实例缓存运行时一键切换模板化提示工程SSE 流式输出ReAct 智能体复杂任务自动拆解规划→ 工具调用计算器/时间/知识库检索→ 结果汇总 → 自我反思迭代全过程可视化上下文记忆多轮会话上下文维护长期记忆持久化主题 重要度 TTL跨会话历史检索过期自动清理知识图谱LLM 抽取「实体-关系-实体」三元组 → 并发限流 → 聚合去重加权 → cytoscape 可视化系统设置Web 端配置 / 切换 LLM、嵌入、重排序密钥脱敏展示热重载免重启前端界面深色主题、响应式布局SSE 流式打字机效果检索来源展示Agent 执行轨迹时间线实时健康状态️ 技术栈后端Python 3.11 · FastAPI · Pydantic v2 · pydantic-settings · asyncio · openai SDK · httpx · 本地 numpy 向量库 · SQLite模型 / 服务DeepSeek · 小米 MiMoOpenAI 兼容可运行时切换嵌入 bge-m3重排序 bge-reranker-v2-m3前端React 18 · Vite 5 · TypeScriptstrict· 原生 SSE 流式解析 · cytoscape部署Docker · Docker Compose · Nginx静态托管 API 反向代理测试pytest · pytest-asyncio49 例全离线架构、API、部署的详细文档见docs/目录架构设计API 文档部署指南 快速开始方式一Docker推荐一键启动前置安装 Docker 与 Docker Compose。# 在项目根目录执行dockercompose up-d--build启动后访问前端界面http://localhost后端 API 文档Swaggerhttp://localhost:8000/docs健康检查http://localhost:8000/api/health嵌入与向量检索开箱即用离线对话/Agent 需在backend/.env中填入 DeepSeek 或 MiMo 密钥见下方「配置模型密钥」。方式二本地开发需要本机安装Python 3.11与Node.js 18。1) 启动后端cdbackend python-mvenv .venv# Windows PowerShell.venv\Scripts\Activate.ps1# macOS / Linux# source .venv/bin/activatepipinstall-rrequirements.txt copy .env.example .env# WindowsmacOS/Linux 用 cpuvicorn app.main:app--reload--port80002) 启动前端另开一个终端cdfrontendnpminstallnpmrun dev前端开发服务器默认运行在 http://localhost:5173并通过 Vite 代理将/api转发到后端http://localhost:8000。 配置模型密钥编辑backend/.env从.env.example复制而来填入 DeepSeek 或小米 MiMo 的密钥# 默认提供商deepseek / mimo DEFAULT_LLM_PROVIDERdeepseek # DeepSeekOpenAI 兼容 DEEPSEEK_API_KEYsk-xxxxxxxx # 或小米 MiMo MIMO_API_KEYxxxxxxxx重启后端即可。前端顶部的「模型选择器」会自动识别已配置密钥的提供商并允许运行时切换。 运行测试cdbackend pipinstall-rrequirements.txt# 已包含 pytest / pytest-asynciopytest-v测试覆盖核心模块全部离线运行无需 API Key 或外部服务test_embeddings.py嵌入的确定性、归一化、语义相似度排序test_splitter.py文本分块的大小约束与边界条件test_parsing.pyLLM 输出的健壮 JSON 抽取test_memory.py会话生命周期、历史检索、长期记忆与 TTL 清理test_tools.pyAgent 工具含计算器安全校验与注册中心test_llm.pyOpenAI 兼容提供商DeepSeek/MiMo的构造校验 工厂的切换与缓存test_retriever.py索引构建、语义检索、按文档删除、上下文拼接使用内存版假向量库test_vectorstore.py本地 numpy 向量库的增删、相似度检索、元数据过滤与持久化 项目结构our-project/ ├── backend/ # FastAPI 后端 │ ├── app/ │ │ ├── main.py # 应用入口生命周期、CORS、异常、路由 │ │ ├── config.py # pydantic-settings 配置离线嵌入默认开箱即用 │ │ ├── api/ # 路由层documents / chat / agent / memory / models │ │ ├── core/ # 核心能力 │ │ │ ├── llm/ # LLM 抽象、各提供商、工厂、提示模板 │ │ │ ├── rag/ # 加载/分块/嵌入/向量库/检索器 │ │ │ ├── agent/ # 工具/规划/执行/反思 │ │ │ └── memory/ # SQLite 存储 记忆管理器 │ │ ├── services/ # 服务编排层依赖容器 业务服务 │ │ ├── models/ # Pydantic 请求/响应 Schema │ │ └── utils/ # 日志、异常、解析工具 │ ├── tests/ # pytest 测试 │ ├── requirements.txt │ ├── Dockerfile │ └── .env.example ├── frontend/ # React Vite TS 前端 │ ├── src/ │ │ ├── App.tsx # 根组件导航、模型选择、健康状态 │ │ ├── api/client.ts # REST 客户端 SSE 流式 │ │ ├── components/ # Chat/Documents/Agent/Memory/Prompt 面板 │ │ └── types.ts # 与后端对齐的 TS 类型 │ ├── Dockerfile │ └── nginx.conf ├── docs/ # 架构 / API / 部署文档 └── docker-compose.yml # 一键编排 设计亮点依赖倒置与组合根所有子系统在services/container.py统一装配路由通过依赖注入获取便于测试与替换实现。离线可演示MockEmbedder哈希词袋 L2 归一化 本地 numpy 向量库让整条 RAG 链路在零依赖、零密钥下也能真实运行对话/Agent 填入 DeepSeek 或 MiMo 密钥即可启用。嵌入与向量库解耦自行计算嵌入并向本地向量库写入预计算向量可自由切换嵌入实现。健壮性LLM 输出 JSON 的容错解析、Agent 规划失败的兜底计划、计算器工具的字符白名单防注入、全局异常处理器。完整中文注释所有模块均含函数说明、参数、返回值与关键逻辑解释。项目链接https://github.com/Chun556699/RAG-KnowledgeBase 许可 · License本项目基于 MIT License 开源可自由使用、修改与商用保留版权声明即可。Licensed under the MIT License — free to use, modify and distribute with attribution.

相关新闻

电商项目开发记录:把售后、投诉和商家入驻接进统一待办

电商项目开发记录:把售后、投诉和商家入驻接进统一待办

今天主要在补电商平台管理端的治理业务。之前不少页面已经能看、能点,但部分功能还停留在“展示数据”的阶段,缺少后台定时检查、状态联动和数据持久化。 所以今天没有继续堆新页面,而是把售后、投诉和商家入驻这三块业务往完整流程上推进了…

2026/10/13 22:58:32 阅读更多 →
Go语言指针设计原理与高级应用指南

Go语言指针设计原理与高级应用指南

1. Go指针的本质与设计哲学在C语言家族中,指针常被视为"双刃剑"——它既提供了直接操作内存的能力,又因过度自由而成为安全隐患的温床。Go语言作为现代系统编程语言,其指针设计体现了明显的折中思想:保留指针的核心价值…

2026/10/6 18:07:48 阅读更多 →
HALO框架:企业级AI幻觉检测与纠正技术解析

HALO框架:企业级AI幻觉检测与纠正技术解析

这次我们来看一个专门解决大语言模型幻觉问题的技术方案——HALO(Hallucination-Aware Layered Oversight)。这个由IBM Research团队提出的框架,核心目标是在企业级AI应用中实现"零幻觉,通过构建保障"。HALO不是另一个大…

2026/10/16 0:13:16 阅读更多 →

最新新闻

Fedora Server 搭建 Nextcloud 私有云:从部署到安全加固的完整实践

Fedora Server 搭建 Nextcloud 私有云:从部署到安全加固的完整实践

1. 为什么我最终选择了 Fedora Server 加 Nextcloud 这套组合很多人第一次动了"自己搭私有云"的念头,往往是因为受够了公共网盘的各种限制:下载限速、空间收费、文件莫名其妙被和谐、分享链接说失效就失效。我最早也是这么被逼上梁山的。一开始…

2026/10/16 12:22:30 阅读更多 →
金融服务中间层实战:幂等、状态机与对账的完整设计

金融服务中间层实战:幂等、状态机与对账的完整设计

去年年中,团队接了一个金融服务相关的中间层项目,项目代号就叫 financial-services。背景是一家合规运营的金融服务机构已经有了能稳定跑核心账务的系统,但外部渠道越来越多,支付、账单、退款、对账这些能力每次接一个新渠道都要在…

2026/10/16 12:22:30 阅读更多 →
MySQL行转列与列转行实战:七种写法与三种逆向方案全解析

MySQL行转列与列转行实战:七种写法与三种逆向方案全解析

做数据分析的同学,十有八九都遇到过这种需求:一张流水表里同一个人的多个属性明明是多行,业务方却要你展示成一行多列。MySQL里管这个叫行转列,也就是pivot透视;反过来,一张宽表里语文数学英语各占一列&…

2026/10/16 12:22:30 阅读更多 →
光储一体化系统规划运行优化:改进粒子群算法与Python实践

光储一体化系统规划运行优化:改进粒子群算法与Python实践

近几年"建筑光储一体化"这个概念在能源圈子里出现的频率明显变高了,我在多个项目中都遇到过同一个问题:光伏板、储能电池到底该配多大容量,日常运行中又该怎么充放电,才能让整个系统在经济性和自持能力之间拿到最优解。…

2026/10/16 12:22:30 阅读更多 →
PostgreSQL 18 io_method 不再玄学:用 strace 看穿 WAL 写入路径

PostgreSQL 18 io_method 不再玄学:用 strace 看穿 WAL 写入路径

说实话,PG 18 里这个io_method参数,我观察下来,很多 DBA 对它的态度基本分成两派。一派只看 Release Notes 和网上性能报告,觉得这是内核开发者才能理解的魔法;另一派直接上生产改配置,改完发现没效果甚至变…

2026/10/16 12:22:30 阅读更多 →
适配器模式实战:类适配器与对象适配器如何选型

适配器模式实战:类适配器与对象适配器如何选型

做后端开发的这些年,我几乎每年都会遇到同一个尴尬:手里维护的还是那套吭哧吭哧跑了好几年的老类,可新需求、新SDK、新网关全都只认另一套接口格式。改老代码怕影响线上,推倒重写工期又不够,这时候最实用的解法就是加一…

2026/10/16 12:21:30 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →