尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
DeepSeek + 本地知识库:30 分钟给团队搭一个能回答内部问题的问答机器人
最近有几个同事老在群里问报销流程是啥“请假怎么走”明明文档里都写了就是没人翻。我想着干脆用 DeepSeek 搭一个能读我们资料的问答机器人贴到群里谁想问就直接问。折腾了一下午跑通了代码不多这里把过程和踩的坑记一下。为什么非要搞 RAG 而不是直接问大模型很多人一开始都有这个疑问。大模型确实强但有两个毛病它训练数据的截止时间摆在那你公司上个月新改的制度它根本不知道。它不懂的东西会一本正经给你编这就很要命。RAG 的思路其实很朴素把你的资料先切成一小块一小块存进向量库别人提问的时候先从那堆块里把最相关的几段捞出来再连问题一起丢给大模型让它照着资料回答。资料是真实的答案自然就靠谱幻觉也少很多。整体流程把文档切成块 → 每块转成向量存起来 → 提问时按相似度把最相关的块捞出来 → 连同问题一起给大模型 → 得到基于资料的答案。就这四步没有别的玄机。装环境pipinstalllangchain langchain-community chromadb sentence-transformers openaiDeepSeek 提供的是 OpenAI 兼容接口所以不用装它专用的包直接用 openai 库就行。代码1. 先接上 DeepSeekimportosfromlangchain_openaiimportChatOpenAI os.environ[DEEPSEEK_API_KEY]sk-你的key# 在 https://platform.deepseek.com 申请llmChatOpenAI(modeldeepseek-chat,api_keyos.environ[DEEPSEEK_API_KEY],base_urlhttps://api.deepseek.com/v1,temperature0.1,# 问答场景温度调低点别让它自由发挥)2. 读文档 切块fromlangchain_community.document_loadersimportDirectoryLoader,TextLoaderfromlangchain.text_splitterimportRecursiveCharacterTextSplitter loaderDirectoryLoader(./docs,glob*.md,loader_clsTextLoader)documentsloader.load()splitterRecursiveCharacterTextSplitter(chunk_size512,# 一块约 512 字chunk_overlap80,# 相邻块重叠 80 字防止关键句被切裂separators[\n\n,\n,。,,,,, ,],# 按中文标点切)chunkssplitter.split_documents(documents)print(f切出了{len(chunks)}块)3. 向量化存库fromlangchain_community.embeddingsimportHuggingFaceEmbeddingsfromlangchain_community.vectorstoresimportChroma# 本地中文 embedding 模型免费不用联网embeddingsHuggingFaceEmbeddings(model_nameshibing624/text2vec-base-chinese)vectorstoreChroma.from_documents(documentschunks,embeddingembeddings,persist_directory./chroma_db,)4. 检索问答fromlangchain.chainsimportRetrievalQA retrievervectorstore.as_retriever(search_kwargs{k:4})# 取最相关的 4 块qa_chainRetrievalQA.from_chain_type(llmllm,retrieverretriever,return_source_documentsTrue,# 把依据的来源也返回方便核对)resultqa_chain.invoke({query:报销流程是什么})print(result[result])print(\n--- 依据的来源 ---)fori,docinenumerate(result[source_documents][:3]):print(f[{i1}]{doc.page_content[:120]}...)跑出来的效果大致是回答 按公司制度报销要填报销单并附发票直属主管先批财务在 3 个工作日内 复核打款单笔超 5000 元需 CTO 再批一次。 --- 依据的来源 --- [1] 报销管理制度……5000 元以上需 CTO 审批…… [2] 财务指引……报销单需在当月月底前提交……中文 RAG 最容易踩的 5 个坑这 5 个坑我基本全踩过一遍写出来帮你们省点时间。坑现象怎么解分块把信息切裂一句话被切成两半检索不到overlap 调到 60~100 字按英文标点切中文长句被粗暴切断separators 加上 。默认 embedding 不适配中文检索结果对不上问题换 text2vec / bge 这类中文模型温度设太高答案开始自己发挥问答场景 temperature 压到 0.1 以下不返回来源答错了没法排查打开 return_source_documentsTrue翻车后调出来的实测对比指标刚开始调完之后中文检索命中率61%93%平均回答时间4.2s2.8s幻觉率抽检18%4%主要就是换了中文 embedding、把 overlap 调大、温度压低了效果差别挺明显。还能往哪走要支持多轮对话换ConversationalRetrievalChain把历史带上。要是 PDF加载器换成PyMuPDFLoader。数据量大了Chroma 会有点吃力换 Faiss 或 Milvus。想给多人用用 FastAPI 包个 HTTP 接口就行。收个尾说白了 RAG 不复杂核心就是把块切好、中文向量化、检索生成这三步。难点不在大模型而在中文分块和检索质量。上面 5 个坑避开基本就能交付一个能真正用的内部问答机器人了。你在搭 RAG 的时候还踩过哪些坑评论区说说我看看能不能一起解决。
RELATED

相关推荐

新手必备:简洁高效的WordPress主题选择与优化指南

新手必备:简洁高效的WordPress主题选择与优化指南

1. 为什么新手需要一款简洁易用的WordPress主题?作为全球使用量最大的CMS系统,WordPress拥有超过43%的网站市场份额。但很多新手在搭建第一个网站时,常常会陷入主题选择的困境。我见过太多初学者被华丽的多功能主题吸引,结果在后台…

📅 2026/10/7 23:26:27
布料行业智能双单位进销存系统设计与实现

布料行业智能双单位进销存系统设计与实现

1. 项目背景与行业痛点布料行业作为传统制造领域的重要组成部分,长期以来面临着独特的计量管理难题。不同于标准化的工业产品,布料在采购、库存和销售环节往往需要同时使用"卷"和"米"两种计量单位。这种双单位特性给企业的进销存管理…

📅 2026/10/6 9:29:18
5个关键步骤掌握PoeCharm:中文流放之路构建器的完整指南

5个关键步骤掌握PoeCharm:中文流放之路构建器的完整指南

5个关键步骤掌握PoeCharm:中文流放之路构建器的完整指南 【免费下载链接】PoeCharm Path of Building Chinese version 项目地址: https://gitcode.com/gh_mirrors/po/PoeCharm 还在为《流放之路》复杂的角色构建而烦恼吗?面对全英文的Path of Bu…

📅 2026/9/29 2:32:14
MORE NEWS

更多资讯

📰

UCF101+CRNN视频动作识别实战:轻量、稳定、可解释的工业级基线方案

简介:本资源是一套面向深度学习与计算机视觉初学者及进阶学习者的UCF101视频动作识别完整实践方案,聚焦CRNN模型在人体动作识别任务中的端到端实现。资源包含数据预处理、模型构建(CNNLSTM)、训练监控、预测分析与结果可视化全流程…

📰

Qt+MySQL股票管理系统实战:从环境搭建到事务处理

简介:这是一份面向计算机相关专业低年级学生的C课程设计参考项目,以股票管理系统为主题,将C面向对象编程、Qt图形界面开发与MySQL数据库操作整合为一个可运行的桌面应用,适合正在准备课设、毕设或想入门Qt数据库组合开发的学习者。…

📰

交换机工作原理全解析:MAC地址表、泛洪转发与网络排障

先说个我自己的感受:搞网络这行,很多人一开始都栽在“交换机和路由器到底有啥区别”这个问题上。有人画了一堆拓扑图,背了一堆命令,但真到了排查故障的时候,反而不知道从哪下手。其实根源就在于对交换机转发数据这件事…

📰

C++类型标签分发:优雅的编译期分派技巧

写C写得久了,你会发现真正的瓶颈往往不在语言本身,而在“如何在编译期把类型信息变成行为”。类型标签分发(tag dispatch)就是这样一套让我用了很多年、依然觉得优雅的编译期技巧。它做的事情很简单:把类型特征编码成一…

📰

交换机工作原理详解:MAC地址表、转发与排障实战

这周的日志,我不打算继续记新协议,而是想把交换机的原理从头到尾捋一遍。原因很简单:不管做网络运维还是准备认证考试,交换机都是绕不开的基础设备。你在办公室、机房、家里看到的那些带一排网口的盒子,大多数都是交换…

📰

英语电影院口语训练:从选片、观影到复盘的完整实操方法

我见过太多人陷入同一种困境:原声片看了几百部,单词量看着也不小,可一开口还是只会往外蹦单词,连不成一句像样的话。我自己也有一段这种尴尬期,直到我彻底改变了看电影的方式,把“英语电影院口语”当作一套…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬