乐于分享
好东西不私藏

RAGFlow 实战:把公司文档变成会说话的知识库

RAGFlow 实战:把公司文档变成会说话的知识库

很多公司都有这样的痛点:

产品手册、操作规程、合同模板、培训资料——这些文档散落在各个地方,新员工查起来要翻半天,老员工凭记忆猜,出了问题才发现”原来手册里写了”。

构建一个企业知识库的想法人人都有,但大多数 RAG 系统在实际使用中都面临同样的问题:回答质量不稳定

常见的失败模式:

  • PDF 里的表格内容被抽取成乱码
  • 多页文档的上下文被错误地切断
  • 图片里的文字完全被忽略
  • 专业术语被匹配到不相关的文档片段

RAGFlow 专门针对这些问题做了深度优化。GitHub 74.7k Stars,它不只是简单地切片+向量搜索,而是把文档理解做得更深:布局分析、表格结构还原、视觉内容识别——最终让检索质量真正可用。


RAGFlow 的核心优势

1. 智能文档解析(Deep Document Understanding)

传统 RAG 处理 PDF:提取文字 → 按字符数切片 → 向量化。

RAGFlow 的处理方式:

  • 分析 PDF 页面布局(识别标题/正文/表格/图片区域)
  • 表格内容按行列结构完整保留,不会被切断
  • OCR 识别扫描件中的文字
  • 图表提取文字描述

2. 多种文档格式支持

PDF、Word、Excel、PowerPoint、TXT、Markdown、HTML、图片——全部支持,且格式特有的结构(如 Excel 的表格、PPT 的幻灯片结构)都能保留。

3. 智能分块策略

不是按固定字符数切片,而是按文档的语义结构切分:

  • 按章节标题切分
  • 表格作为整体保留
  • 段落完整性优先

4. 混合检索

向量相似度检索 + 关键词检索(BM25)双路并行,再用重排模型(Reranker)做结果排序,检索准确率显著高于单一方式。


安装部署

前置要求:Docker 20.10+,16GB RAM(推荐 32GB)

“`bash

git clone https://github.com/infiniflow/ragflow.git

cd ragflow/docker

cp .env.example .env

“`

编辑 `.env`,配置关键参数:

“`bash

LLM_FACTORY=OpenAI

OPENAI_API_KEY=sk-your-key

EMBEDDING_MODEL_NAME=text-embedding-3-small

“`

启动:

“`bash

docker compose -f docker-compose.yml up -d

“`

访问 `http://localhost:80`,默认账号:`admin` / `infiniflow`。

注意:首次启动需要下载多个 AI 模型(包含嵌入模型和 OCR 模型),大约需要 5-10 分钟和 10GB 磁盘空间。


实战:搭建员工操作手册知识库

Step 1:创建知识库

登录后点击 `Knowledge Base` → `+ Create`。

配置项:

  • Name:内部操作手册
  • Embedding Model:选择你配置的 Embedding 模型
  • Chunk Method:推荐选 `Naive`(通用文档用这个,效果最稳定)

– 其他选项:`Book`(长文档书籍)、`Table`(Excel 为主)、`Manual`(技术手册)

Step 2:上传文档

点击 `+ Add file` 上传文档。

支持批量上传,上传后系统自动开始解析。大文档解析需要几分钟,可以在列表里看到解析进度。

解析完成后点击文档可以预览分块效果——这是 RAGFlow 非常有用的功能:你能看到每个切片的具体内容,可以手动调整不合理的切割。

Step 3:配置召回策略

在知识库设置里:

  • Top K:检索时返回的最相关分块数,推荐设 5-8
  • Similarity Threshold:相似度阈值,低于这个值的结果过滤掉,推荐 0.2
  • Rerank Model:启用重排模型(显著提升相关性排序),推荐开启

Step 4:创建应用

点击 `Chat` → `+ Create Chat`,绑定刚才创建的知识库。

配置系统提示词:

“`

你是公司内部的操作手册助手。请基于提供的文档内容回答员工的操作咨询问题。

回答规范:

1. 回答必须基于文档内容,引用具体章节或条款

2. 如果手册中没有相关内容,明确告知”手册中未收录此内容,建议联系对应部门”

3. 操作步骤要完整列出,不能省略

4. 遇到安全相关操作,务必提醒注意事项

“`

测试提问,观察回答是否准确引用了手册内容。


进阶:通过 API 集成到现有系统

RAGFlow 提供 REST API,可以嵌入到企业内部系统(OA、钉钉、飞书机器人等)。

“`python

import requests

session_resp = requests.post(

“http://localhost/v1/api/new_conversation”,

headers={“Authorization”: “Bearer ragflow-xxx”},

json={

“user_id”: “employee_123”,

“kb_ids”: [“your-knowledge-base-id”]

}

)

conversation_id = session_resp.json()[“data”][“id”]

answer_resp = requests.post(

“http://localhost/v1/api/completion”,

headers={“Authorization”: “Bearer ragflow-xxx”},

json={

“conversation_id”: conversation_id,

“messages”: [{“role”: “user”, “content”: “员工年假怎么申请?”}],

“stream”: False

}

)

result = answer_resp.json()

print(result[“data”][“answer”])

print(“引用来源:”, [ref[“doc_name”] for ref in result[“data”][“reference”][“chunks”]])

“`


知识库维护建议

文档更新:删除旧版本文档后重新上传新版本,系统会自动重新解析和向量化。

质量监控:定期查看对话记录,找出回答质量差的问题,反查是哪个文档切片出了问题,手动修正切片或补充内容。

分库管理:不同业务域的文档建议建立独立的知识库,避免相互干扰检索结果。


结语

企业知识库的核心价值,不是「把文档搬到线上」,而是让组织的知识真正流动起来

新员工第一天就能查到所有操作规程;老员工不用凭记忆,有依据可查;管理层不用担心关键知识只存在于少数人脑子里。

RAGFlow 解决了这件事里最难的部分——把非结构化的文档变成真正可以检索、可以引用的结构化知识。


部署建议:先用少量核心文档(10-20 份)跑通流程,验证回答质量符合预期后,再批量上传。文档质量直接决定知识库质量,上传前做好格式整理,效果差距很大。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » RAGFlow 实战:把公司文档变成会说话的知识库

猜你喜欢

  • 暂无文章