收藏!从零手把手教你搭建企业级 AI 知识库问答系统(附源码)

收藏!从零手把手教你搭建企业级 AI 知识库问答系统(附源码)
本文介绍了如何利用 FastAPI、LlamaIndex 和 DeepSeek 等开源组件在半小时内搭建一个轻量级的 RAG 智能问答系统。文章详细阐述了技术架构、核心功能如流式对话、对话持久化、多会话管理、RAG 检索增强等并提供了启动方式和代码实现决策的思考。该项目已开源适合对 AI 应用和 RAG 技术感兴趣的小白或程序员学习实践。基于 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最后最近两年互联网招人逻辑完全换了赛道只会写基础业务代码、天天做CRUD的传统开发岗位越来越少能落地AI大模型、帮公司做业务智能化的技术人成了各大大厂抢着要的香饽饽。2026年春招市场大模型相关岗位直接稳居招聘第一位AI相关岗位数量同比暴涨8.7倍在所有新经济岗位里占比从2.78%飙升到22.03%简单说10个技术岗2个都是AI大模型岗。头部大厂2026春招全员押注AI传统岗位持续缩编字节春招总共放出7000个名额研发岗480070%名额全部倾斜AI开发、AI产品人才缺口巨大腾讯春招扩招1万人技术岗扩招36%、产品岗扩招39%扩招核心全是大模型方向华为全年持续开放AI实习岗覆盖全赛道底层算力基建、大模型应用开发、LLM工程师、AI数据安全隐私等数据来源脉脉侵删不管你是写了多年代码的老程序员、刚入行的初级开发还是零基础想转行跨进互联网的普通人现在几乎所有企业招人都把 “会大模型落地” 当成硬性加分项。只会传统开发未来只会面临裁员、降薪、岗位缩减主动学大模型才能躲开内卷抓住持续多年的高薪风口。别等行业淘汰再补救现在入局正是红利期今天贴心为大家准备好了一系列AI大模型资源包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。有需要的小伙伴可以点击下方链接免费领取【保证100%免费】1、学习路线图2、视频教程网上虽然也有很多的学习资源但基本上都残缺不全的这是我自己整理的大模型视频教程上面路线图的每一个知识点我都有配套的视频讲解。都打包成一块的了不能一一展开总共300多集3、技术文档和电子书这里主要整理了大模型相关PDF书籍、行业报告、文档有几百本都是目前行业最新的。4、LLM面试题和面经合集这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。5、大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。6、大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取