Type something to search...
RAGFlow 一种开源检索增强生成(RAG)引擎

RAGFlow 一种开源检索增强生成(RAG)引擎

RAGFlow 是一个开源的检索增强生成 (RAG) 引擎,能够与大型语言模型 (LLMs) 集成,从复杂的数据格式中提供准确的、带有引用的答案。RAGFlow 开发者文档 提供了有关有效部署、配置和使用 RAGFlow 的全面指导。

架构组件

以下是架构:

数据摄取与处理:

  • RAGFlow 接受多种数据格式,包括 PDF、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:

  1. 点击 RAGFlow 界面右上角的个人资料图标。
  2. 从下拉菜单中选择“模型提供者”。
  3. 通过输入必要的 API 密钥和配置细节添加所需的 LLM。

确保您添加的模型已正确配置以与 RAGFlow 交互。

创建知识库

RAGFlow 中的知识库是从各种文档中提取的数据集的集合。要创建一个知识库:

  1. 导航到页面顶部的“知识库”选项卡。
  2. 点击“创建知识库”,并为其提供一个名称。
  3. 配置适合您文档的嵌入模型和分块方法。
  4. 以支持的格式上传您的文档,例如 PDF、DOCX、XLSX 等。
  5. 上传后,启动解析过程,将文档转换为数据集。

RAGFlow 提供多种分块模板,专门针对不同的文档布局,增强信息检索的准确性。

您可以通过导航到“检索测试”部分来测试检索:

在上面的示例中,我正在测试我上传到“super-secret-data”知识库中的文档的检索。

创建助手

您可以通过导航到“聊天”并点击添加来创建助手。

上图显示了在 RAGFlow 中创建专用助手的“聊天配置”界面。该界面允许用户配置助手的设置,包括:

  1. 助手名称 — “Web Application Security Expert” 是该助手的指定名称。
  2. 助手描述 — 简要描述标记为“Web 应用安全专家助手”。
  3. 助手头像 — 上传助手头像的选项,目前未设置。
  4. 空响应 — 一个字段,处理助手可能没有答案的情况,但留空。
  5. 设置开场白 — 用户的问候信息:“Hi Omar! 👋 我是您的 Web 应用安全助手,我能为您做些什么?”
  6. 显示引用 — 开关已启用,表明响应可能包含引用或参考文本。
  7. 文本转语音 — 此开关关闭,意味着助手将通过文本而非语音进行响应。
  8. 知识库 — 助手链接到一个名为“super-secret-data”的知识库。(在这种情况下,我使用的是我之前创建的“super-secret-data”知识库)。

RAGFlow 中聊天配置界面的“提示引擎”选项卡允许您创建系统提示并配置其他参数。

系统提示(专家定义):

  • 助手被配置为充当 Web 应用安全专家,专注于检测和减轻 SQL 注入、XSS(跨站脚本攻击)和 CSRF(跨站请求伪造)等漏洞。
  • 描述清楚地概述了助手的角色和职责。

相似度阈值(滑块):

  • 此设置控制检索结果与输入查询的匹配程度。较高的值通过减少不太相关的结果来提高精度。

关键词相似度权重(滑块):

  • 调整在检索相关文档或生成响应时关键词匹配的重要性。

前 N(滑块):

  • 确定在查询处理过程中考虑的前几个结果的数量。较高的值检索更多潜在匹配项。

多轮优化(切换):

  • 此功能已启用,表明助手已针对多轮对话进行了优化,允许后续问题和上下文对话。

重新排序模型(下拉菜单):

  • 有选择重新排序模型的选项,但目前没有选择任何模型。

变量部分(键值对):

  • 添加一个标记为“knowledge”的变量,以引用与助手相关的知识库。这可以影响助手处理和引用外部数据的方式。

干预文件解析

RAGFlow 提供了对解析过程的可视化,允许手动干预以提高数据准确性。在解析文档后:

  1. 点击解析的文件以查看其分块结果。
  2. 审查每个块并进行必要的调整,例如添加关键词或修改内容。
  3. 保存更改以确保知识库反映准确的信息。

此功能确保用于生成响应的数据是精确且相关的。

创建代理

RAGFlow 引入了一种创新的代理机制,旨在增强 LLM 在商业应用中的能力。此功能结合了无代码工作流编辑器和全面的基于图形的任务编排框架,使用户能够创建针对特定需求的复杂代理。

RAGFlow 中的代理充当中介,通过编排各种搜索技术来管理复杂任务,包括查询意图分类、对话引导和查询重写。这种编排旨在:

  • 提高检索准确性: 通过优化用户查询和管理交互,代理提高了从知识库中检索信息的精确度。
  • 处理复杂场景: 代理能够管理多层次的交互,使其适用于多种商业应用。

创建代理

  1. 导航到 RAGFlow 界面顶部中央的“代理”选项卡。
  2. 点击“+ 创建代理”以打开代理模板页面。
  3. 选择“空白”模板从头开始构建代理,或从现有模板中选择适用于常见场景的模板,例如通用聊天机器人。

使用无代码工作流编辑器通过拖放组件(操作符)到工作流中来设计代理的行为。

为每个组件设置输入和输出参数,选择合适的知识库,并根据需要调整大型语言模型(LLM)设置。

有关详细指南,请访问 RAGFlow 文档网站上的 代理介绍 页面。

高级配置

RAGFlow 提供多种高级设置以优化性能:

  • Docker 环境变量: 通过调整 .env 文件中的变量来配置 Elasticsearch、MySQL 和 Redis 等服务。
  • 服务配置: 修改 service_conf.yaml.template 文件以设置 RAGFlow 的 API 服务器和任务执行器的系统级参数。

有关这些配置的详细信息,请参阅文档中的 Configurations 部分。

升级 RAGFlow

要将 RAGFlow 升级到最新版本:

  1. 拉取最新的 Docker 镜像:
docker pull infiniflow/ragflow:latest

2. 更新您的 .env 文件以引用新镜像版本。

3. 重启 RAGFlow 服务:

docker compose down docker compose up -d

有关详细的升级说明,请参阅 Upgrade RAGFlow 指南。

RAGFlow 开发者文档提供了有效部署和使用 RAGFlow 的全面路线图。

Related Posts

使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
10 个强大的 Perplexity AI 提示,让您的营销任务自动化

10 个强大的 Perplexity AI 提示,让您的营销任务自动化

在当今快速变化的数字世界中,营销人员总是在寻找更智能的方法来简化他们的工作。想象一下,有一个个人助理可以为您创建受众档案,建议营销策略,甚至为您撰写广告文案。这听起来像是一个梦想? 多亏了像 Perplexity 这样的 AI 工具,这个梦想现在成为现实。通过正确的提示,您可以将 AI 转变为您的 个人营销助理。在本文中,我将分享 10 个强大的提示,帮助您自动

阅读更多
10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

人工智能技术,如机器学习、自然语言处理和数据分析,正在重新定义传统设计方法。从自动化重复任务到实现个性化用户体验,人工智能使设计师能够更加专注于战略思维和创造力。随着这一趋势的不断增长,UI/UX 设计师越来越多地采用 AI 驱动的工具来促进他们的工作。利用人工智能不仅能提供基于数据的洞察,还为满足多样化用户需求的创新设计解决方案开辟了机会。 1. 用户角色开发 目的

阅读更多
在几分钟内完成数月工作的 100 种人工智能工具

在几分钟内完成数月工作的 100 种人工智能工具

人工智能(AI)的快速发展改变了企业的运作方式,使人们能够在短短几分钟内完成曾经需要几周或几个月的任务。从内容创作到网站设计,AI工具帮助专业人士节省时间,提高生产力,专注于创造力。以下是按功能分类的100个AI工具的全面列表,以及它们在现实世界中的使用实例。 1. 研究工具 研究可能耗时,但人工智能工具使查找、分析和组织数据变得更加容易。**ChatGPT, Cop

阅读更多
你从未知道的 17 个令人惊叹的 GitHub 仓库

你从未知道的 17 个令人惊叹的 GitHub 仓库

Github 隐藏的宝石!! 立即收藏的代码库 学习编程相对简单,但掌握编写更好代码的艺术要困难得多。GitHub 是开发者的宝藏,那里“金子”是其他人分享的精心编写的代码。通过探索 GitHub,您可以发现如何编写更清晰的代码,理解高质量代码的样子,并学习成为更熟练开发者的基本步骤。 1. notwaldorf/emoji-translate *谁需

阅读更多