
提升ragflow的使用效率:5个关键步骤解锁开源rag引擎的潜力
- Rifx.Online
- Programming , Generative AI , Chatbots
- 05 Mar, 2025
RAGFlow
RAGFlow 是一个开源的检索增强生成 (RAG) 引擎,与大型语言模型 (LLMs) 集成,以从复杂数据格式中提供准确的、带引用的答案。RAGFlow 开发文档 提供了部署、配置和有效利用 RAGFlow 的全面指南。
以下是架构:
来源: https://github.com/infiniflow/ragflow?tab=readme-ov-file#-system-architecture
数据摄取与处理:
- RAGFlow 接受多种数据格式,包括 PDFs、Word 文档和网页。
- 深度文档理解模块处理这些输入,提取和结构化信息以便有效检索。
知识库管理:
- 处理后的数据存储在知识库中,组织方式支持高效的搜索和检索操作。
- 系统采用先进的索引和分块策略,以提高检索准确性。
检索机制:
- 在接收到用户查询后,RAGFlow 搜索知识库以识别相关信息。
- 它利用多种召回策略结合融合重排序,以优先考虑最相关的结果。
语言模型集成:
- RAGFlow 与可配置的 LLM 集成,根据检索到的信息生成响应。
- 这种集成确保生成的答案既与上下文相关,又基于基础数据。
引用与响应生成:
- 系统生成的答案附有引用,提供对原始数据源的透明性和可追溯性。
- 这一特性增强了响应的可靠性和可信度。
用户界面与 API 访问:
- RAGFlow 提供直观的用户界面以便直接交互。
- 此外,它还提供 API,便于与其他业务应用程序无缝集成,实现自动化工作流程和扩展功能。
在本地部署 RAGFlow
要在本地部署 RAGFlow,请确保您的系统满足以下先决条件:
硬件要求:
- CPU: 4 核心 (x86)
- RAM: 16 GB
- 磁盘空间: 50 GB
软件要求:
- Docker: 版本 24.0.0 或更高
- Docker Compose: 版本 2.26.1 或更高
在启动服务器之前,请将 vm.max_map_count
设置调整为至少 262144 以确保 Elasticsearch 正常运行。这可以通过以下命令完成:
sudo sysctl -w vm.max_map_count=262144
要使此更改永久生效,请将 vm.max_map_count=262144
添加到您的 /etc/sysctl.conf
文件中。
在满足先决条件后,您可以使用 Docker Compose 启动 RAGFlow 服务器:
docker compose -f docker/docker-compose.yml up -d
服务器运行后,通过在您的网络浏览器中导航到 http://<IP_OF_YOUR_MACHINE>
访问 RAGFlow 界面。
配置语言模型
RAGFlow 需要与 LLM 集成,以提供准确、可靠的响应。它支持多种模型,包括来自 OpenAI、Ollama 等的模型。
要配置 LLM:
- 点击 RAGFlow 界面右上角的个人资料图标。
- 从下拉菜单中选择“模型提供者”。
- 通过输入必要的 API 密钥和配置详情添加所需的 LLM。
确保您添加的模型已正确配置,以与 RAGFlow 交互。
创建知识库
RAGFlow中的知识库是从各种文档中派生的数据集集合。要创建一个:
- 导航到页面顶部的“知识库”标签。
- 点击“创建知识库”,并为其提供一个名称。
- 配置适合您文档的嵌入模型和分块方法。
- 以支持的格式上传您的文档,例如PDF、DOCX、XLSX等。
- 上传后,启动解析过程以将文档转换为数据集。
RAGFlow提供多种分块模板,针对不同文档布局进行了优化,提高了信息检索的准确性。
您可以通过导航到“检索测试”部分来测试检索:
在上面的示例中,我正在测试我上传到“super-secret-data”知识库的文档的检索。
创建助手
您可以通过导航到“聊天”,然后点击添加来创建助手。
上图显示了在 RAGFlow 中创建专用助手的“聊天配置”界面。该界面允许用户配置助手的设置,包括:
- 助手名称 — “Web Application Security Expert” 是该助手的指定名称。
- 助手描述 — 简短描述标记为“Web 应用安全专家助手”。
- 助手头像 — 上传助手头像的选项,目前未设置。
- 空响应 — 一个字段,用于处理助手可能没有答案的情况,但该字段留空。
- 设置开场白 — 用户的问候信息:“Hi Omar! 👋 我是您的 Web 应用安全助手,我能为您做些什么?”
- 显示引用 — 切换开关已启用,表明响应可能包含引用或参考文本。
- 文本转语音 — 此切换开关关闭,这意味着助手将通过文本而非语音进行响应。
- 知识库 — 助手链接到名为“super-secret-data”的知识库。(在这种情况下,我使用的是我之前创建的“super-secret-data”知识库)。
RAGFlow 中聊天配置界面的“提示引擎”选项卡允许您创建系统提示和配置其他参数。
系统提示(专家定义):
- 助手被配置为担任 Web 应用安全专家,专注于检测和缓解 SQL 注入、XSS(跨站脚本)和 CSRF(跨站请求伪造)等漏洞。
- 描述清晰地概述了助手的角色和职责。
相似度阈值(滑块):
- 此设置控制检索结果与输入查询的匹配程度。较高的值通过减少不相关结果来提高精确度。
关键词相似度权重(滑块):
- 调整在检索相关文档或生成响应时关键词匹配的重要性。
前 N 个(滑块):
- 确定在查询处理过程中考虑多少个最佳结果。较高的值会检索更多潜在匹配。
多轮优化(切换):
- 此功能已启用,表明助手已针对多轮对话进行了优化,允许进行后续问题和上下文对话。
重新排序模型(下拉):
- 有选择重新排序模型的选项,但目前未选择任何模型。
变量部分(键值对):
- 添加一个标记为“knowledge”的变量,以引用与助手关联的知识库。这可以影响助手处理和引用外部数据的方式。
干预文件解析
RAGFlow 提供了对解析过程的可见性,允许手动干预以提高数据准确性。解析文档后:
- 点击解析的文件以查看其分块结果。
- 审查每个块并进行必要的调整,例如添加关键词或修改内容。
- 保存您的更改,以确保知识库反映准确的信息。
此功能确保用于生成响应的数据是精确和相关的。
创建代理
RAGFlow 引入了一种创新的代理机制,旨在增强大型语言模型在商业应用中的能力。此功能结合了无代码工作流编辑器和全面的基于图形的任务编排框架,使用户能够创建针对特定需求量身定制的复杂代理。
RAGFlow 中的代理作为中介,通过编排各种搜索技术来管理复杂任务,包括查询意图分类、对话引导和查询重写。这种编排旨在:
- 提高检索准确性: 通过优化用户查询和管理交互,代理提高了从知识库中检索信息的精确度。
- 处理复杂场景: 代理能够管理多方面的交互,使其适合于多种商业应用。
创建代理
- 导航到 RAGFlow 界面顶部中央的“代理”选项卡。
- 点击“+ 创建代理”以打开代理模板页面。
- 选择“空白”模板从头开始构建代理,或选择针对常见场景量身定制的现有模板,例如通用聊天机器人。
使用无代码工作流编辑器通过拖放组件(操作符)到工作流中设计代理的行为。
为每个组件设置输入和输出参数,选择适当的知识库,并根据需要调整大型语言模型(LLM)设置。
有关详细指南,请访问 RAGFlow 文档网站上的 代理介绍 页面。
Please translate the following text to Chinese. Requirements: 1. Keep code blocks (```) unchanged 2. Keep inline code (`) unchanged 3. Keep Markdown formatting 4. Use these technical term translations: RAGFlow -> RAGFlow Retrieval-Augmented Generation -> 检索增强生成 Large Language Models -> 大型语言模型 Deep Document Understanding -> 深度文档理解 Knowledge Base -> 知识库 Elasticsearch -> Elasticsearch Docker -> Docker Docker Compose -> Docker Compose API -> API CPU -> CPU RAM -> RAM Disk Space -> 磁盘空间 vm.max_map_count -> vm.max_map_count LLM -> LLM OpenAI -> OpenAI Ollama -> Ollama
Text: ## Advanced Configurations
RAGFlow offers various advanced settings to optimize performance:
- Docker Environment Variables: Configure services like Elasticsearch, MySQL, and Redis by adjusting variables in the
.env
file. - Service Configuration: Modify the
service_conf.yaml.template
file to set system-level parameters for RAGFlow’s API server and task executor.
Detailed information on these configurations is available in the Configurations section of the documentation.
升级 RAGFlow
要将 RAGFlow 升级到最新版本:
-
拉取最新的 Docker 镜像:
docker pull infiniflow/ragflow:latest
-
更新您的
.env
文件以引用新镜像版本。 -
重启 RAGFlow 服务:
docker compose down docker compose up -d
有关详细的升级说明,请参阅 Upgrade RAGFlow 指南。
RAGFlow 开发者文档提供了有效部署和利用 RAGFlow 的全面路线图。