零代码搭一个"读文档答问题"的本地知识库 agent
本文目录
TL;DR
用 Open WebUI 的内置知识库功能连接本地 Ollama 模型:上传文档 → 自动切片向量化 → 提问时自动检索引用。全程零代码、零云依赖,50 分钟搭好。
准备
- 已完成 Ollama 入门(本机有可用模型)
- Docker(Open WebUI 最省心的装法);或用 Python
pip install open-webui亦可 - 一批要喂的文档:PDF / Markdown / txt 均可,先从 10 份以内试起
架构一分钟
你的文档 → 切片 → 向量化(本地 embedding 模型)→ 存本地向量库
提问 → 问题向量化 → 检索最相关片段 → 塞进提示词 → 本地大模型作答(附引用)
RAG(检索增强生成)的全部秘密就是”先查资料再回答”——这里每个环节都在你电脑里。
步骤
提示词/配置
给知识库对话配一个系统提示词,回答质量立刻上一个台阶:
你只能依据提供的引用内容回答;引用中没有的信息,明确说"文档中未提及";回答末尾列出引用来源编号。- 效果:模型不再”自由发挥”,每句话可溯源。
成品对照
实测界面截图与问答对照将由实测补充(R-004)。自检标准:问一个文档里有的问题(命中引用)+ 一个没有的问题(明确回答未提及),两者都正确才算通。
常见坑
| 现象 | 原因 | 解法 |
|---|---|---|
| WebUI 连不上 Ollama | Docker 容器访问不到宿主机 | 启动命令必须带 --add-host=host.docker.internal:host-gateway |
| 上传 PDF 后检索全不命中 | 扫描件无文本层 | 用 OCR 工具先转文字版;手写体基本无解 |
| 回答慢 | 模型档位超出显存 | 按Ollama 选型表降档;知识库问答 7–8B 够用 |
| 引用对但答错 | 检索命中了片段但模型没读懂 | 换 14B 档模型,或把系统提示词里的”只能依据引用”加强 |
| 中文文档切片乱 | 切分按 token 粗切 | chunk 大小设 800–1200 字符并允许重叠 100–200 |
| 文档更新了答案还是旧的 | 向量库没重建 | 知识库里删除该文档重新上传 |
下一步
- 模型选型复习:Ollama 入门:8G 显存能跑什么模型
- 想要更细的工作流编排:工具雷达之 dify 与 langflow