AI文档对话:用AnythingLLM和RAGFlow和文件聊天
AI文档对话:用AnythingLLM和RAGFlow和文件聊天(2026本地部署教程)
📜 目录
AI文档对话:用AnythingLLM和RAGFlow和文件聊天(2026本地部署教程)
文档问答是所有RAG应用里最容易见效的一类:把PDF、Word、网页丢进去,问一句话,答案带着出处回来。2026年自托管方案已经够用,AnythingLLM负责快,RAGFlow负责深。这篇按部署顺序把两条路线讲完,再给一张调参表和一套十分钟能做完的验收方法。
一、先决定走哪条路线
| 路线 | 代表工具 | 解析能力 | 上手成本 | 适合谁 |
|---|---|---|---|---|
| 桌面客户端 | AnythingLLM Desktop | 中等,PDF/Word/网页/TXT | 装完即用 | 个人,今天就想用上 |
| Docker自托管 | AnythingLLM + Ollama | 中等,可接本地模型 | 一条docker命令 | 小团队,多人共享 |
| 版式深度解析 | RAGFlow | 强,扫描件/表格/双栏 | 要会docker compose | 合同、财报、论文 |
| 极简离线 | PrivateGPT | 中等 | 命令行 | 只要一个离线问答 |
| 团队知识搜索 | Onyx(原Danswer) | 中上,接Slack和网盘 | 需要运维 | 公司内部搜索 |
第一次做选AnythingLLM;文档是扫描件、密集表格或双栏排版,直接上RAGFlow。
二、路线A:AnythingLLM五步跑通
1. 安装。 桌面版去官网下对应系统的安装包;服务器上用Docker:
docker run -d -p 3001:3001 \
-v $HOME/anythingllm:/app/server/storage \
-e STORAGE_DIR=/app/server/storage \
--name anythingllm mintplexlabs/anythingllm
浏览器打开 http://localhost:3001。
2. 接模型。 设置里LLM选Ollama,地址填 http://host.docker.internal:11434(容器访问宿主机服务用这个写法,Linux上换成宿主机内网IP)。Ollama侧先拉一个中文可用的模型。
3. 选嵌入模型。 这一步决定检索质量,不要留在默认值。中文文档优先bge-m3或bge-large-zh,英文用nomic-embed-text。嵌入模型可以比生成模型小很多,7B生成加小嵌入模型是常见的省钱组合。
4. 建工作区。 新建Workspace → 上传文件 → 选中后点Move to Workspace → Save and Embed。这一步在做分块和向量化,几十页文档通常一两分钟。
5. 提问并核对引用。 回答下方会列引用片段,点开能跳回原文位置。回答没有引用,说明检索没命中,先别怪模型。
三、路线B:RAGFlow,解析是它的强项
RAGFlow的差别在解析层:它做版式识别,把PDF拆成带位置的文本块,所以能给出页码级引用,复杂表格不会变成一串乱序数字。
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
docker compose -f docker-compose.yml up -d
容器起来后按官方文档配置LLM和嵌入模型,再建知识库、上传、选解析模板。模板比参数重要:
| 模板 | 适用文档 |
|---|---|
| General | 普通文档 |
| Paper | 学术论文,保留章节结构 |
| Table | 表格为主的文件 |
| Manual | 说明书、法规条文 |
| QA | 一问一答语料 |
模板选错,后面怎么调top-k都救不回来。
四、核心参数:动这四个就够
| 参数 | 起步值 | 作用 | 什么时候动 |
|---|---|---|---|
| 分块长度 | 512-1024 token | 一块喂多少信息 | 答案总被截断就调大 |
| 块间重叠 | 10%-20% | 防止答案切在边界 | 答案缺半句就加 |
| 召回条数top-k | 4-8 | 一次取几个块 | 答不全就加,噪音多就减 |
| 相似度阈值 | 0.2-0.3 | 过滤不相关块 | 答非所问就提高 |
| 重排rerank | 开 | 二次排序提精度 | 检索到却答偏时必开 |
生成侧温度设0.1-0.3。文档问答不需要创意,需要的是照抄原文。
五、答不准,按这个顺序查
- 看解析:把抽取出的文本块翻出来读。乱码、表格错行、栏序颠倒属于解析问题,换模板或开OCR。
- 看分块:答案横跨两块被切断,就加重叠或改按标题分块。
- 看召回:手动搜关键词,看检索层能不能找到那一块。找不到是嵌入或分块的问题,不是生成模型的问题。
- 看提示词:明确写"只依据提供的资料回答,资料里没有就说没找到",并禁止模型自己编页码。
- 看模型:小模型读长上下文容易漏中间段落,把关键段落放在上下文靠前的位置。
六、十分钟验收法
拿一份100页年报,问三个问题:
- 营业收入是多少,在第几页?
- 风险因素排前三的是什么?
- 管理层对某块业务的原话怎么说的?
三个问题分别考数字抽取、要点归纳、原文定位。全对的配置换文档一般也不会差;只对第一个的,通常是分块或召回没调好。
常见问题
Q:扫描版PDF能用吗? A:要开OCR。RAGFlow内置OCR流程,AnythingLLM需要额外配置。扫描件识别会有错字,关键数字建议人工复核。
Q:机密文档安全吗? A:模型和向量库都在自己机器上时,内容不出本机。注意两点:别用云端嵌入接口,把storage目录纳入备份和权限管理。
Q:中文检索效果差怎么办? A:换中文嵌入模型,分块按中文标点和标题切,别按固定字符数硬切。
Q:网页版更省事,能用吗? A:能,但等于把文档上传到别人服务器。隐私要求高的场景不建议。
注:各工具端口、默认参数和模型清单随版本变化,部署细节以官方文档为准。
相关文章
本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。