从零搭建企业级AI知识库问答系统(附源码+收藏)
本文介绍了如何基于FastAPI、LlamaIndex和DeepSeek快速搭建一个轻量级的RAG智能问答系统用于解决企业内部文档检索问题。文章详细阐述了技术架构、核心功能如流式对话、对话持久化、多会话管理、RAG检索增强等并提供了启动方式和代码实现思路。该项目开源适合对AI和编程感兴趣的小白或程序员学习和实践。基于 FastAPI LlamaIndex DeepSeek半小时搞定 RAG 智能问答一、为什么要做这个项目最近公司内部有大量产品文档、操作手册散落在各个角落新员工入职要翻半天资料老员工遇到冷门问题也得四处问人。于是我们决定做一个 AI 知识库问答系统——把文档丢进去直接用自然语言提问让 AI 自动检索并给出答案。市面上有不少现成的方案但要么贵、要么定制性差、要么数据要上云。作为技术团队我们选择自己动手基于开源组件搭建了一套轻量级的 RAG检索增强生成 问答系统。从模型加载到前端界面前后花了不到半天时间。项目已开源文末有源码地址。二、效果展示先看看成品长什么样AI咨询专家界面界面设计参考了 ChatGPT 的布局左侧对话列表 右侧聊天区。支持多会话管理、流式输出、对话持久化。配色用了 Indigo 紫色系整体风格比较现代。三、技术架构整个系统的架构非常简洁用户浏览器 │ ▼ FastAPI 服务 (server.py) ├── Jinja2 模板渲染 → chat.html ├── SQLite ← 对话/消息持久化 ├── LlamaIndex ← 文档索引 检索 ├── DeepSeek ← 大语言模型 (生成回答) └── HuggingFace ← 嵌入模型 (向量化)核心技术栈组件技术选型说明Web 框架FastAPI异步高性能原生支持流式响应RAG 引擎LlamaIndex文档加载、索引构建、检索增强大模型DeepSeek-Reasoner性价比极高的推理模型嵌入模型BGE-Small-ZH中文语义向量化CPU 可运行数据存储SQLite对话记录持久化零配置前端Jinja2 Vanilla JS无框架依赖极简部署四、核心功能1. 流式对话这是最影响用户体验的功能。用户提问后AI 的回复会像打字一样逐字输出而不是等半天突然蹦出一大段。实现上用了 FastAPI 的StreamingResponse配合前端的ReadableStream读取async def generate_response(): for token in response.response_gen: yield token await asyncio.sleep(0.01) return StreamingResponse(generate_response(), media_typetext/plain)前端用response.body.getReader()读取字节流每收到一个 chunk 就更新页面。同时加了一个闪烁光标的 CSS 动画模拟真人打字的视觉效果。2. 对话持久化之前的版本对话只存在浏览器内存里刷新就没了。这次我们用 SQLite 做了完整的持久化conversations表存储对话 ID、标题、创建/更新时间messages表存储每条消息的角色user/assistant、内容、时间戳提供了完整的 REST API创建对话、获取列表、重命名、删除、加载历史消息。流式查询完成后自动将用户消息和 AI 回复存入数据库。3. 多会话管理侧边栏支持创建多个对话每个对话独立存储消息历史。你可以把不同话题分开比如产品功能咨询和技术架构问题各开一个对话方便回溯。支持的交互操作搜索过滤按标题关键词筛选快捷键CtrlK快速聚焦搜索框对话多了也不怕找不到重命名双击标题直接编辑或者点编辑按钮修改回车保存、Esc 取消删除弹出确认框提示不可撤销防止手滑自动标题新对话的第一条消息前 20 字自动设为标题比 “新对话 1、2、3” 直观得多时间戳每个对话显示最后更新时间最近聊的排在最上面4. RAG 检索增强这是整个系统的核心。知识库文档放在data_dir/目录下启动时 LlamaIndex 会自动加载所有文档用 HuggingFace 的 BGE 嵌入模型将文本转成向量构建索引。用户提问时的流程是这样的向量化把用户问题用同一个嵌入模型转成向量相似度检索在向量索引中找出最相关的文档片段Prompt 拼接把检索到的片段作为上下文拼上用户问题组成完整的 Prompt大模型生成将 Prompt 发给 DeepSeek生成最终答案这样一来大模型就能基于私有知识作答而不是凭空编造。即使文档里没有相关内容模型也会明确告诉你根据现有资料无法回答不会胡说八道。支持点击按钮更新索引随时补充新文档到data_dir/目录即可不用重启服务。5. 配置分离所有敏感信息API Key、密钥等从代码中抽离到config.yaml配置文件llm: provider: deepseek model: deepseek-reasoner api_key: your-api-key-here embedding: model: BAAI/bge-small-zh-v1.5 device: cpu同时支持环境变量覆盖方便生产环境部署export APP_LLM__API_KEYsk-xxxxxxxxconfig.yaml已加入.gitignore不用担心密钥泄露到 Git 仓库。五、启动方式两步搞定# 1. 安装依赖 uv sync # 2. 启动服务 python server.py浏览器访问http://localhost:8001/chat即可使用。整个服务打包在一个 400 行的server.py里部署极其简单。六、写代码过程中的几个决策为什么不用 LangChainLangChain 功能很全但也很重抽象层次太多调试困难。LlamaIndex 在文档索引和 RAG 这块做得更专注API 更直观几行代码就能跑起来。为什么用 SQLite 而不是 PostgreSQL这个场景的并发量和数据量都不大SQLite 足够了。零配置、零维护数据文件就是一个.db文件备份就是复制文件。Python 标准库自带sqlite3不用装额外依赖。为什么前端不用 React/Vue项目定位是轻量级内部工具没有复杂的前端交互。Jinja2 模板 原生 JavaScript 完全够用首屏加载几乎没有任何延迟。前端总共一个 HTML 文件不到 1600 行代码包含了完整的 CSS 样式系统和 JS 交互逻辑。而且单文件意味着部署极其简单——一个python server.py就全跑起来了不需要npm install、不需要webpack、不需要构建步骤。UI 设计的一些细节这次我们花了不少心思在 UI 上追求一种看起来不像内部工具的质感色彩体系主色调用了 Indigo 紫色#6366F1侧边栏用深靛蓝#1E1B4B主体区用浅灰#F8FAFC整体干净利落不会太沉闷也不会太花哨头像设计用户头像用蓝紫渐变、AI 头像用橙红渐变一眼就能区分对话角色比传统的 emoji 精致得多消息气泡圆角 18px用户气泡带淡紫边框AI 气泡用浅灰底色层次感很好字体选了 Inter 字体无衬线、字形清晰阅读长文本也不累动画消息滑入动画、流式输出闪烁光标、按钮悬停微动效、Toast 飘入提示交互反馈及时但不喧宾夺主空状态引导没有对话时显示欢迎页附带 3 个建议问题点击即可直接提问加载骨架屏切换对话时显示骨架屏占位比转圈圈优雅移动端适配768px 以下侧边栏折叠为汉堡菜单触摸友好这些细节单独看都不起眼但组合起来就形成了很好的整体体验。七、可以扩展的方向这个项目是一个很扎实的起点后续有很多可以玩的方向多知识库管理不同部门/项目使用独立的文档目录前端切换知识库用户认证简单的 JWT 登录系统区分不同用户的历史记录和权限Docker 一键部署打包成镜像docker compose up就启动方便分发更多文档格式目前支持纯文本可以扩展 PDF、Word、Markdown、网页抓取对话导出将对话记录导出为 Markdown 或 PDF方便归档和分享模型热切换支持在配置中切换不同的 LLM如通义千问、GPT-4 等无需改代码引用来源回复中标注参考了哪些文档片段增强可信度如果有任何想法或建议欢迎在 GitHub 上提 Issue 一起讨论。八、源码地址项目已开源在 GitHub https://github.com/yaunsine/ai-rag-chat如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取