电器说明书、保修单、Wi-Fi密码、家人随口说的安排——全部丢进Open WebUI的知识库
本地大模型检索+回答,问"投影仪在哪""滤网多久换"都能秒答
工具 Open WebUI(已有)引擎 Ollama(已有)新增 1个嵌入模型无需 额外容器
📄说明书/合同各类文档→📤上传Open WebUI→🧩切片+向量化嵌入模型→🔍检索找到相关片段→🧠LLM作答结合原文→🔊小爱播报HA转发
核心原理一句话讲清楚:大模型本身不会"记住"你上传的文档,而是每次你提问时,系统先去文档库里"搜"出最相关的几段原文,把这些原文连同你的问题一起喂给大模型,让它"照着抄"来回答。所以文档质量和搜索的准确度,直接决定回答好不好——这也是为什么文档要尽量整理清晰,避免大段无关信息。
1、下载一个"嵌入模型"(Embedding Model)
这是让搜索听懂中文语义的关键,必须装
为什么需要这个?普通聊天模型(qwen、deepseek等)是用来"生成回答"的,但搜索文档片段需要另一种模型——把文字转换成一串数字(向量),这样"投影仪在哪"和"投影机放在客厅柜子里"才能被认出语义相近。这种专门干这件事的模型叫嵌入模型,中文场景推荐 bge-m3,多语言支持好、中文效果佳。
SSH登录SER8,先确认Ollama容器名(你之前应该已经知道是ollama):
复制
SSH 终端 · 拉取嵌入模型
docker exec -it ollama ollama pull bge-m3下载完成后确认一下(应该能在列表里看到 bge-m3,和你之前的qwen2.5vl:3b、deepseek-r1:14b等并列):
复制
SSH 终端
docker exec -it ollama ollama list📦bge-m3模型大小约1.2GB,远比聊天模型小,几分钟能下完。
2、在 Open WebUI 后台配置嵌入模型
告诉系统:"搜索时用bge-m3这个模型"
浏览器打开 Open WebUI(你的地址应该类似 http://192.168.0.188:8081),用管理员账号登录
点左下角头像 → 管理员面板(Admin Panel)
顶部切到设置(Settings)→ 左侧菜单选文档(Documents),有的版本叫"检索"(Retrieval)
在这个页面里找到这几项并填写:
管理员面板 → 设置 → 文档(Documents / RAG)
语义向量模型引擎(Embedding Model Engine)
选择:Ollama
API 地址http://localhost:11434(如果Open WebUI和Ollama在同一台机器/同一docker网络里,填localhost或容器名;如果不确定,直接填 http://192.168.0.188:11434 更保险)
语义向量模型(Embedding Model)bge-m3
混合搜索(Hybrid Search)
建议打开,结合关键词+语义两种搜索方式,找文档更准
❗重要:如果之前已经上传过别的文档、用的是别的嵌入模型,改了嵌入模型之后需要重新导入所有文档,因为旧文档是用旧模型生成的向量,新模型认不出来。所以最好是一开始就确定好用bge-m3,再开始传文档。
填好后点页面底部的保存。
3、整理你要"喂"给知识库的文档
先别急着传,花5分钟分分类,后面省心
支持的格式:PDF、Word(doc/docx)、TXT、Markdown 都可以直接传,拍照的纸质文档建议先转成PDF或者直接打字整理成txt(手写体OCR效果不稳定)。
建议按这几类整理(不强制,但分类清楚检索更准):
📺电器说明书
(投影仪/空调/洗碗机)
🧾保修凭证
购买日期/保修期
📶网络信息
WiFi密码/路由器
🏠装修合同
建材清单/联系方式
📅家庭安排
临时事项备忘
对于"家人随口说的事"(比如"下周三阿姨要来"),可以建一个简单的txt文件,类似日记一样持续追加:
复制
示例:家庭备忘.txt
2026-06-18: 下周三(6月24日)阿姨要来打扫卫生
2026-06-15: 投影仪遥控器放在电视柜下方第二层抽屉
2026-06-10: 客厅空调滤网上次清洗时间是5月初,建议每3个月清洗一次
2026-06-01: 装修师傅联系方式:张工 138xxxxxxxx,负责水电部分💡这种"备忘录"文件可以定期更新重新上传覆盖,是最灵活、最像"家庭记忆"的部分,后面甚至可以接入语音让家人随口说就自动记进去(进阶玩法,今天先手动维护)。
4、创建知识库并上传文档
在Open WebUI里建一个"家庭知识库"
回到 Open WebUI 主界面(不是管理员面板),点左侧菜单工作空间(Workspace)
切到知识库(Knowledge)标签 → 点+ 创建知识库
工作空间 → 知识库 → 创建知识库
名称:家庭知识库
描述:电器说明书、保修单、合同、家庭日常事项
创建后进入这个知识库,点上传文件,把第3步整理好的文档全部拖进去(支持批量多选)。
家庭知识库 · 已上传文档
✓ 投影仪说明书.pdf — 已处理
✓ 空调使用手册.pdf — 已处理
✓ 装修合同.docx — 已处理
✓ 家庭备忘.txt — 已处理
⏳每个文档上传后会自动在后台"切片+向量化",文档越大、越多,处理时间越长。PDF如果是扫描版图片(没有可选中的文字层),bge-m3无法直接理解图片内容,需要先用OCR工具转成文字版PDF,否则知识库里等于没有这份文档的有效内容。
5、测试问答效果
先在网页里验证,再接小爱
回到主聊天界面,选一个聊天模型(推荐用 qwen3:14b 或 deepseek-r1:14b,纯文本任务这两个比视觉模型更合适)
在输入框里先打 # 号,会弹出知识库列表,选择家庭知识库,然后继续打问题:
✅ 测试对话示例
#家庭知识库 投影仪的遥控器放在哪?
根据你的家庭备忘记录,投影仪遥控器放在电视柜下方第二层抽屉。
#家庭知识库 空调滤网多久该换一次?
根据空调使用手册,建议滤网每3个月清洗一次;你上次清洗记录是5月初,下次清洗时间大约在8月初。
💡如果想让某个模型默认就带着家庭知识库回答(不用每次手动打#号),可以在工作空间 → 模型里新建一个自定义模型,绑定底层模型(如deepseek-r1:14b)+ 默认挂载家庭知识库,这样以后选这个自定义模型聊天,自动就是带知识库的。
如果回答驴唇不对马嘴、或者说"知识库中没有相关信息",先检查:
文档是否真的处理完成了(状态显示已处理,不是处理中或失败)
问题里有没有打
#选中知识库(容易漏掉这步)文档内容里是否真的包含这个信息(比如随口的事如果没写进备忘录,自然查不到)
进阶:接入HA + 小爱音箱
6、让小爱音箱能问知识库
通过HA转发问题给Open WebUI的API
思路:小爱音箱本身不懂RAG,但HA可以充当"中间人"——接收小爱的语音指令(通过米家/小爱接入HA的语音助手桥接),把问题转发给Open WebUI的API(带#知识库),拿到回答后再让小爱用TTS念出来。
先在Open WebUI生成一个API Key:点头像 → 设置 → 账户 → API Keys,生成一个保存好。
在HA里配置一个rest_command(编辑 configuration.yaml):
🏠 configuration.yaml · 新增 rest_command
复制
rest_command:
ask_home_knowledge:
url: "http://192.168.0.188:8081/api/chat/completions"
method: POST
headers:
Authorization: "Bearer 你的API_KEY"
Content-Type: "application/json"
payload: '{"model": "deepseek-r1:14b", "messages": [{"role": "user", "content": "{{ question }}"}]}'💡这只是基础框架,实际接小爱语音的部分依赖你具体用的桥接方式(小爱接入HA的conversation agent,或者通过米家自动化转发文本),如果你想做这一步,告诉我你现有的语音助手桥接方案,我再针对性给配置。今天建议先把第1-5步在网页里跑通、效果满意后再做语音这层。
?常见问题
遇到问题先看这里
上传文档后一直显示"处理中"不变
大概率是嵌入模型配置没保存成功,或者bge-m3没真正下载完。回到第1步用docker exec -it ollama ollama list确认模型存在,再检查第2步的API地址填的对不对。回答内容是英文,或者文不对题
检查选的聊天模型是不是中文能力强的(deepseek-r1、qwen3都可以),也可能是检索到的片段本身就不相关,试试把问题问得更具体,包含文档里实际出现过的关键词。PDF传上去后查不到内容
很可能是扫描版PDF(图片型,没有文字层)。可以用免费工具(如Adobe在线OCR、或本地工具如ocrmypdf)先转换成可选中文字
评论区