从8550秒到608秒!RAGFlow最新版本让知识图谱生成效率狂飙,终于不用通宵等结果了

开篇之前做一些说明。

最近技术咨询实在太多,真心感谢大伙儿的信任!但说实话,我现在有点扛不住了。很多兄弟连win的使用一些问题都@我,其实用深度求索(deepseek)、Kimi这些工具分分钟就能解决,比我手动回复快多了——不信你们试试,这俩工具处理技术文档比人靠谱。

当初想着能帮就帮,结果现在业余时间全被咨询占满,连内容更新都耽误了。可能你们觉得问个问题就几分钟,但我每天面对的是n个。所以以后不回消息不是看不起你们,实在是精力有限。我需要更多的时间去学习,去实践来保持稳定的更新。

最近ragflow和dify都在疯狂的更新,每家产品更新后都带出来一堆bug。dify的1.0.0一堆bug,到1.0.1解决了一部分。ragflow也是一样。最近也是疯狂的更新。我们看下官方的更新日志。

升级日志

v0.17.2(2025-03-13)

  1. 解决了 0.17.1 引入的,无法添加 Ollama / Xinference 部署模型的错误
  2. 提供 OpenAI 兼容的 API
  3. 支持德文用户界面
  4. 加速知识图谱的生成速度
  5. 允许用户在 Agent Retrieval 组件使用 Tavily 搜索
  6. 新增通义千问 QwQ 模型
  7. General 文档解析方法支持 CSV 文件格式

v0.17.1(2025-03-11)

  1. 解决 Knowledge graph 信息重复抽取的问题
  2. 改善特定情况下,英文分词质量不高的问题
  3. 解决了一系列 API 调用的问题
  4. 解决了在知识库配置页中 Document parser 不可见问题
  5. 改善了文档解析任务的并行性能
  6. 解决了图片类文件的预览问题
  7. 支持解析 XLS (excel97~2003) ,并改善了错误处理机制
  8. 解决了 Tavily 搜索的错误支持 Huggingface 重排序模型
  9. Agent 中的 Rewrite 算子支持相对时间表达
  10. 更新了硅基流动的模型列表
  11. 解析 Markdown 文档类型时,优化了其中的表格内容提取逻辑

v0.17.0(2025-03-03)

  1. 支持 Agentic Reasoning,实现 Deep Research
  2. 依托 Tavily 支持在对话中引入联网搜索,并支持在 Reasoning 过程中调用,补充推理的上下文信息
  3. 更新了阿里云模型支持列表,支持 DeepSeek; 新增模搭社区作为模型提供商
  4. 支持采用 Naive 和 大模型解析文档 (实验阶段)
  5. 支持阿里云 OSS 作为文件存储
  6. 支持不设置知识库,直接和大模型进行对话
  7. 允许通过 API 来更新文档元数据
  8. 支持对 HTML 文件的预览
  9. 优化了在 Agent 算子(component)中通过 prompt 引用变量的方式,支持通过 / 展示、选择可用变量。

升级解读

在v0.17.0中,比较重要的更新的点。

  • 实现 Deep Research ,官方发文,重点介绍这个
  • 创建的chat,不再必须依赖知识库了
  • 前端交互中对生成html的预览
  • 通过/选取可用变量,但是比较鸡肋,因为除了在大模型里,其他的组件里,你也不知道怎么用

在v0.17.1中的重点

  • 解决了Knowledge graph 信息重复抽取的问题,在之前抽取一个知识图谱特别特别特别慢
  • 解决了交互中token超长的问题,超过设置的大模型的最大tokens

导致无法添加ollama和Xinference部署的模型的bug

在v0.17.2中

  • 重点是解决v0.17.1的bug
  • 加速知识图谱的生成速度
  • 分段中支持CSV文件解析的格式

我比较看中的知识图谱的升级。具体升级以后速度提升多少,我等下实验告诉你们。

ragflow中知识图谱介绍

在ragflow的官方中,关于知识图谱,主要有两个文档,

https://ragflow.io/blog/ragflow-support-graphrag

主要内容

  • 从0.9.0开始引入
  • 依赖于大模型和专有数据库infinity
  • 主要增强多跳问答跨文档查询

https://ragflow.io/docs/dev/construct_knowledge_graph

主要内容:

  • 从v0.16.0版本开始,RAGFlow支持在知识库上构建知识图谱
  • 文档中的流程图不再依赖infinity

想深读了解的,可以看看

https://github.com/microsoft/graphrag

https://arxiv.org/abs/2402.19472

知识图谱适用场景

看官方的解释:知识图谱对于涉及嵌套逻辑的多跳问答特别有用。在对包含复杂实体和关系的书籍或作品进行问答时,它们的表现优于传统的提取方法。

知识图谱的配置

  • 首先要开启知识图谱

实体类型

知识图谱中的实体类型是对现实世界或抽象概念中各类对象的分类和抽象,是构建结构化知识的基础。我们看下ragflow提供的几类实体,我们也可以添加其他的。最后由大模型去整理。

  • Organization(组织)
    • 由人组成的团体或机构
    • 包括:企业、机构、政府等。
    • 如:“腾讯”、“卫生部”
  • Person(人物)
    • 真实或虚构的个体
    • 包括:真实人物、虚构人物、职业分类
    • 如:爱因斯坦、哪吒、科学家
  • Geo(地理)
    • 物理或人文空间位置
    • 包括:自然地理、人文地理、行政区划
    • 如:喜马拉雅山、中国、长三角地区
  • Event(事件)
    • 特定时空发生的活动或现象
    • 包括:历史事件、社会活动、自然事件
    • 如:工业革命、奥运会、汶川地震
  • Category(类别):如产品、技术、学科等。例如,“人工智能”、“量子力学”。
    • 抽象或具体的分类集合
    • 包括:产品与作品、抽象概念、科技术语、生物实体、金融实体、法律实体
    • 如:iPhone16、可持续发展、DeepSeek、大熊猫、比特币、民法典

方法

ragflow提供两种方法可以选择。

  • Light:实体和关系提取提示来自 GitHub - HKUDS/LightRAG:“LightRAG:简单快速的检索增强生成”
  • General:实体和关系提取提示来自 GitHub - microsoft/graphrag:基于图的模块化检索增强生成 (RAG) 系统

一般我们使用Light即可。

实体归一化

实体归一化是将文本中提及的 不同形式、别名或歧义实体 映射到知识库中 唯一标准实体 的过程。其核心目标是消除表述差异,确保同一实体在不同数据源或上下文中被统一标识。

ragflow在解析过程会将具有相同含义的实体合并在一起,从而使知识图谱更简洁、更准确。应合并以下实体:特朗普总统、唐纳德·特朗普、唐纳德·J·特朗普、唐纳德·约翰·特朗普。

有以下几种技术实现

模块技术方案示例场景
同义词归并构建别名词典(Alias Dictionary)+ 模糊匹配“Jack Ma” → 马云(实体ID: E123)
歧义消解基于上下文的BERT语义匹配 + 知识图谱属性验证“苹果” → 公司(Q312) / 水果(Q89)
跨语言对齐多语言嵌入模型(mBERT) + Wikidata跨语言链接“New York” → 纽约市(Q60)
动态更新实时监控新实体,通过众包反馈机制更新归一化规则新增"ChatGPT" → GPT-4(Q1209)

知识图谱生成测试

由于知识图谱的构建需要LLM,不需要太强的推理能力,我使用了qwen-plus在线模型。

采用统一切片方法。

每次操作流程

  • 删除知识库
  • 执行docker compose down
  • 删除esdata01文件夹
  • 执行docker compose up -d
  • 新建知识库
  • 上传《天津大学 深度解读DeepSeek原理与效应》
  • 设置切片方法
  • 应用

构建出来的知识图谱

v0.17.0 知识图谱测试

  • 在v0.17.0中,知识图谱的构建,花费了8550秒,测试了几次最少花费是7200多秒,得凌晨用的人少的时候
  • 看这个日志,构建花费了3707秒,后面又去resolution花费了4800秒

v0.17.1 知识图谱测试

  • 到v0.17.1的时候,整体花费1440秒
  • 根据日志看到,先根据文档构建了子知识图谱,然后又合并到global 知识图谱

v0.17.2知识图谱测试

  • 到了v0.17.2中,整体构建花费了608秒,偶尔构建到700秒

我们可以看到只是前面的解析+关键词构建,花费时间很短的,大头都在知识图谱的构建。

总结

我们看下耗时对比。

版本构建耗时降幅
v0.17.08550秒-
v0.17.11440秒83%↓
v0.17.2608秒58%↓
  • 我们可以看到知识图谱的构建是非常花费时间和tokens的
  • 一般情况下,关键词+向量检索就够了,非必要不构建知识图谱

我让deepseek整理下使用知识图谱的条件

if 文档满足以下任意条件:
    1. 含超过50个实体互连
    2. 需处理NLP时间表达式(如"三个月前"→2024-03-01)
    3. 查询含2层以上逻辑嵌套
    4. 涉及跨表/跨文档关系验证
then 启用知识图谱
else 使用传统检索

其他

ragflow文件上传限制解决。我不知道什么时候把文件上传限制到了10mb,修改限制也很简单。

  • 打开ragflow的docker目录的nginx文件夹
  • 打开nginx.conf文件

  • 修改对应的client_max_body_size限制。
  • 执行docker compose down
  • 执行docker compose up -d

相关资料

deepseek相关资料,包含内容如下

https://pan.quark.cn/s/faa9d30fc2bd

https://pan.baidu.com/s/10vnv9jJJCG-KKY8f_e-wLw?pwd=jxxv

系列文档:

DeepSeek本地部署相关

ollama+deepseek本地部署

局域网或断网环境下安装DeepSeek

vlllm部署deepseek基准测试

DeepSeek个人应用

不要浪费deepseek的算力了,DeepSeek提示词库指南

服务器繁忙,电脑配置太低,别急deepseek满血版来了

DeepSeek+本地知识库:真的太香了(修订版)

DeepSeek+本地知识库:真是太香了(企业方案)

deepseek一键生成小红书爆款内容,排版下载全自动!睡后收入不是梦

最轻量级的deepseek应用,支持联网和知识库

当我把公众号作为知识库塞进了智能体后

个人神级知识库DeepSeek+ima 个人学习神器

dify相关

DeepSeek+dify 本地知识库:真的太香了

Deepseek+Dify本地知识库相关问题汇总

dify的sandbox机制,安全隔离限制

DeepSeek+dify 本地知识库:高级应用Agent+工作流

DeepSeek+dify知识库,查询数据库的两种方式(api+直连)

DeepSeek+dify 工作流应用,自然语言查询数据库信息并展示

聊聊dify权限验证的三种方案及实现

dify1.0.0版本升级及新功能预览

ragflow相关

DeepSeek+ragflow构建企业知识库:突然觉的dify不香了(1)

DeepSeek+ragflow构建企业知识库之工作流,突然觉的dify又香了

DeepSeek+ragflow构建企业知识库:高级应用篇,越折腾越觉得ragflow好玩

模型微调相关

模型微调之基础篇:模型微调概念以及微调框架

📢【三连好运 福利拉满】📢

🌟 若本日推送有收获:
👍 点赞 → 小手一抖,bug没有
📌 在看 → 一点扩散,知识璀璨
📥 收藏 → 代码永驻,防止迷路
📤 分享 → 传递战友,功德+999
🔔 关注 → 关注5ycode,追更不迷路,干货永同步

💬 若有槽点想输出:
👉 评论区已铺好红毯,等你来战!
<think>好的,用户的问题是关于如何在RagFlow中创建知识库并启用知识图谱功能。我需要先理解用户的需求。他们可能正在使用或考虑使用RagFlow来进行数据管理,特别是结合知识图谱来增强RAG(检索增强生成)的能力。首先,我需要回忆一下RagFlow的相关文档和引用内容。 根据提供的引用,特别是引用[3],里面提到了在RagFlow中如何启用RAG对话,上传文件,构建知识库,配置参数,添加向量和重建向量库的步骤。另外,引用[1]提到了Neo4j的LLM知识图谱构建器,用于创建知识图谱,这可能与RagFlow的集成有关。不过用户的问题是关于RagFlow本身的,所以可能需要将Neo4j的知识图谱构建步骤与RagFlow的流程结合起来。 接下来,我需要整理步骤。用户需要创建知识库,然后启用知识图谱功能。根据引用[3],创建知识库的步骤包括进入RAG对话模式,上传文件,配置参数,添加向量和构建索引。启用知识图谱功能可能需要额外的配置,比如在参数设置中选择知识图谱模式,或者与外部工具如Neo4j集成,如引用[1]提到的。 需要注意的是,用户可能希望知道具体的操作步骤,比如菜单选项、参数设置、文件格式支持等。同时,可能需要说明如何将知识库与知识图谱结合,例如通过构建实体关系或使用图数据库存储数据。此外,引用[2]提到了大模型知识引擎的相关产品,可能涉及到知识图谱的应用,但需要具体到RagFlow的操作。 还需要确保回答结构清晰,分步骤说明,并且引用正确的参考资料。例如,在配置参数时提到引用[3],在构建知识图谱时提到引用[1]。此外,用户可能对性能优化或应用场景感兴趣,所以相关问题部分可以涉及这些方面。 最后,检查是否遵循了系统级指令:使用中文,行内公式正确,独立公式单独成段(虽然这里可能不需要数学公式),生成相关问题,引用正确标识。确保没有使用Markdown格式,段落用空行分隔,代码块用三个反引号包裹,引用标识放在句末。</think>以下是在RagFlow中创建知识库并启用知识图谱功能的操作指南: ### 一、创建知识库步骤 1. **进入RAG对话模式** - 在左侧菜单选择「RAG对话」选项[^3] - 点击「新建知识库」按钮 2. **上传知识文件** ```python # 支持的文件格式示例 supported_files = ['txt', 'pdf', 'md', 'docx'] ``` - 支持上传txt/PDF/Markdown等格式文件 - 单文件建议不超过50MB 3. **配置索引参数** - 设置分词器类型(推荐jieba中文分词) - 定义单段文本最大长度(默认512字符) - 启用「实体关系抽取」开关(关键步骤)[^1] ### 二、知识图谱功能配置 1. **图数据库连接** ```python neo4j_config = { "uri": "bolt://localhost:7687", "user": "neo4j", "password": "your_password" } ``` - 需预先安装配置Neo4j图数据库[^1] - 在「高级设置」中填写数据库连接信息 2. **图谱构建设置** - 选择「动态实体关系识别」模式 - 设置实体类型阈值(默认置信度0.75) - 开启「自动图谱更新」功能[^2] 3. **可视化配置** - 在「知识图谱」模块选择布局算法 - 设置节点显示属性(名称/类型/权重) - 配置关系连线的可视化样式 ### 三、功能验证 1. **执行知识检索测试** ```python test_query = "查找与人工智能相关的技术文档" search_results = ragflow.search(test_query) ``` 2. **图谱关系验证** - 在可视化界面查看实体关联路径 - 检查节点间的语义关系准确性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值