当前位置: 首页 > article >正文

【Ragflow】27.RagflowPlus(v0.4.1):小版本迭代,问题修复与功能优化

概述

RagflowPlus v0.4.0 在发布后,收到了积极的反馈,同时也包含一些问题。

本次进行一轮小版本更新,发布 v0.4.1 版本,对已知问题进行修复,并对部分功能进行进一步优化。

开源地址:https://github.com/zstar1003/ragflow-plus

更新方法

下载仓库最新代码:

git clone https://github.com/zstar1003/ragflow-plus.git

使用docker启动:

# cpu模式
docker compose -f docker/docker-compose.yml up -d
# gpu模式
docker compose -f docker/docker-compose_gpu.yml up -d

首次启动会自动拉取最新版本镜像。

问题修复

1.修复解析excel文件时,依赖缺失的问题(issue#149)

2.修复解析pdf文件时,遇到空内容表格,出现异常的问题。

功能优化

1. 图像显示路径优化

之前的版本中,将图像的存储路径硬编码为es属性中,导致在局域网环境下访问时,容易出现图片不显示的情况。

v0.4.0版本中,易出现此问题

在本版本中,对每张图片的协议、ip地址和在minio中的相对路径进行解耦

在es中,只存储图片的相对路径地址,具体的访问ip地址可通过docker/.env中的MINIO_VISIT_HOST变量进行控制。

es中解析块属性可视化

通过这样的修改,可使问答时,图像稳定显示。

2. 容器连接通路优化

由于对minio的访问地址进行解耦,在后台管理中进一步修改连接配置database.py文件:

if is_running_in_docker():MYSQL_HOST = "mysql"MYSQL_PORT = 3306MINIO_HOST = "minio"MINIO_PORT = 9000ES_HOST = "es01"ES_PORT = 9200REDIS_HOST = "redis"REDIS_PORT = 6379

在docker环境中,直接通过服务名进行访问,而不再像之前的版本那样通过宿主机再间接访问。

之前版本访问路径(蓝色线条)现版本访问路径(红色箭头)

这样修改,有效避免了用户在上传文件时,容易出现超时未响应的情况,连接速度更快更稳定。

3. 图片插入位置优化

在之前的版本中,所有相关图像会在问答末尾一并输出。

本次对图像输出进行了改良,现在图像会出现在第一个相关块的引用位置,可在问答中间输出。

如有引用标记,该引用块有关联图像,则将其显示在下方

4. 增加文档撰写模式的缓存

在文档撰写模块中,新增了当前编辑文档内容的自动保存功能。

通过浏览器自带的Local storage,实现对每间隔1s对内容进行无感保存。

切换标签或刷新页面后,之前编辑的内容依然存在,不会消失。

刷新界面,文档界面依然存在

5. word导出支持自动图片下载插入

在文档撰写模块中,导出word文件时,会自动下载编辑区的图像块连接,实现图片的自动下载插入。

导出word效果

6. Top N上限增加

在聊天配置中,有一个Top N的选项,用来控制大模型能实际看到的前N个解析块数量。

原始默认的Top N上限为30,因为在每个块内容较多的情况下,如果塞入大模型的参考内容过多,会超过模型的最大输入上限。

考虑到部分用户应用的内容查询业务,每个块的内容很少,查询数量很多,因此增加Top N的上限为100,默认保持8不变。

当前版本可上调

问题反馈须知

当前的每轮版本更新都修改文件解析的逻辑,因此,读者在试用反馈问题时,建议新建知识库进行解析。

在后台管理系统中,新建知识库

通过知识库隔离,可防止不同版本的解析文件混杂在相同知识库中,造成异常情况。

总结

此次更新后,在局域网服务器中进行了一轮测试,目前已基本能满足个人应用场景的使用需求。

后续会将精力投入到大模型相关的基建拓展研究中,比如,embedding模型的效果如何评估,如何微调大模型。

之前定下的Ragflow-Plus的更新计划将会暂缓推进,如果有开发经验的读者想继续对此项目进行贡献,欢迎提交PR。

相关文章:

【Ragflow】27.RagflowPlus(v0.4.1):小版本迭代,问题修复与功能优化

概述 RagflowPlus v0.4.0 在发布后,收到了积极的反馈,同时也包含一些问题。 本次进行一轮小版本更新,发布 v0.4.1 版本,对已知问题进行修复,并对部分功能进行进一步优化。 开源地址:https://github.com/…...

易语言是什么?易语言能做什么?

易语言(EPL)是什么?​​ ​​易语言​​(Easy Programming Language,简称EPL)是一款​​面向中文用户的编程语言​​,由中国人吴涛于2000年开发,专为降低编程门槛设计。其核心特点是…...

【Oracle】数据仓库

个人主页:Guiat 归属专栏:Oracle 文章目录 1. 数据仓库概述1.1 为什么需要数据仓库1.2 Oracle数据仓库架构1.3 Oracle数据仓库关键技术 2. 数据仓库建模2.1 维度建模基础2.2 星形模式设计2.3 雪花模式设计2.4 缓慢变化维度(SCD)处…...

基于开源AI大模型AI智能名片S2B2C商城小程序源码的中等平台型社交电商运营模式研究

摘要:本文聚焦中等平台型社交电商,探讨其与传统微商及大型社交电商平台的差异,尤其关注产品品类管理对代理运营的影响。通过引入开源AI大模型、AI智能名片与S2B2C商城小程序源码技术,构建智能化运营体系。研究结果表明&#xff0c…...

typeof运算符 +unll和undefined的区别

typeof运算符 JavaScript 有三种方法,可以确定一个值到底是什么类型。而我们 现在需要接触到的就是typeof 数值返回number 1 typeof 123 // "number" 字符串返回string 1 typeof 123 // "string" 布尔值返回boolean 1 typeof fal…...

Vite 双引擎架构 —— Esbuild 概念篇

Vite 底层采用 双引擎架构,核心构建引擎是 Esbuild 和 Rollup,二者在开发和生产环境中分工协作,共同实现高性能构建。不可否认,作为 Vite 的双引擎之一,Esbuild 在很多关键的构建阶段(如依赖预编译、TS 语法转译、代码…...

Life:Internship finding

1. 前言 fishwheel writes this Blog to 记录自分自身在研二下找实习的经历。When 写这篇 Blog 的时候我的最后一搏也挂掉了,只能启用保底方案了。When I 打开我的邮箱时,发现里面有 nearly 100 多封与之相关的邮件,顿时感到有些心凉&#x…...

阿里云Alibaba Cloud安装Docker与Docker compose【图文教程】

个人记录 进入控制台,找到定时与自动化任务 进入‘安装/卸载扩展程序’ 点击‘安装扩展程序’ 选择docker社区版,点击下一步与确定,等待一会 安装成功 查询版本 查询docker sudo docker version查询docker compose sudo docker compo…...

GitHub 趋势日报 (2025年06月07日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 603 netbird 459 dify 440 cognee 352 omni-tools 337 note-gen 239 ragbits 237 …...

Java编程之组合模式

引言 在软件开发的世界里,我们经常会遇到需要表示"部分-整体"层次结构的场景。比如文件系统中的文件和文件夹、图形界面中的各种组件、企业组织架构中的部门和员工等。这些场景都有一个共同的特点:我们需要以一种统一的方式来处理单个对象和由…...

Oracle 19c RAC集群ADG搭建

1、将主库的pfile和passwdfile发送到备库 #主库一节点操作 scp -P1234 /tmp/pfile2025.ora bak_ip:/home/oracle sco -P1234 /oracle/app/oracle/product/19.0.0/db/dbs/orapw$ORACLE_SID bak_ip:/oracle/app/oracle/product/19.0.0/db/dbs 2、备库修改参数文件成standby相关…...

ADB识别手机系统弹授权框-如何处理多重弹框叠加和重叠问题

ADB识别手机系统弹授权框-如何处理多重弹框叠加和重叠问题 --蓝牙电话SDK自动部署 上一篇:手机App-插入USB时自动授权点击确定按钮-使系统弹出框自动消失 下一篇:编写中。 一、前言 我们在上一篇《手机App-插入USB时自动授权点击确定按钮-使系统弹出框…...

Kaggle-Predicting Optimal Fertilizers-(多分类+xgboost+同一特征值多样性)

Predicting Optimal Fertilizers 题意: 给出土壤的特性,预测出3种最佳的肥料 数据处理: 1.有数字型和类别型,类别不能随意换成数字,独热编码。cat可以直接处理category类型。 2.构造一些相关土壤特性特征 3.由于la…...

uniapp+<script setup lang=“ts“>解决有数据与暂无数据切换显示,有数据加载时暂无数据闪现(先加载空数据)问题

声明showEmpty 为false&#xff0c;在接口返回处判断有数据时设置showEmpty 为false&#xff0c;接口返回数据为空则判断showEmpty 为true &#xff08;这样就解决有数据的时候会闪现暂无数据的问题啦&#xff09; <!--* Date: 2024-02-26 03:38:52* LastEditTime: 2025-06…...

详解鸿蒙Next仓颉开发语言中的动画

大家上午好&#xff0c;今天来聊一聊仓颉开发语言中的动画开发。 仓颉中的动画通常有两种方式&#xff0c;分别是属性动画和显示动画&#xff0c;我们今天以下面的加载动画为例&#xff0c;使用显示动画和属性动画分别实现一下&#xff0c;看看他们有什么区别。 显示动画 显示…...

Redis常见使用场景解析

1. 数据库缓存 Redis 作为典型的 Key-Value 型内存数据库,数据缓存是其最广为人知的应用场景。使用 Redis 缓存数据操作简便,通常将序列化后的对象以 string 类型存储。但在实际应用中,需注意以下关键要点: Key 设计:必须确保不同对象的 Key 具有唯一性,且尽量缩短长度,…...

C语言指针与数组sizeof运算深度解析:从笔试题到内存原理

前两天跟着数组指针的教程&#xff1a; // #self 视频里的笔试题 !!!vipint b12[3][4] {0};printf("%ld \n", sizeof(b12[0]));printf("%ld \n", sizeof(*b12));printf("%ld \n", sizeof(*(b12 1)));printf("%ld \n", sizeof(*(&am…...

起重机指挥人员在工作中需要注意哪些安全事项?

起重机指挥人员在作业中承担着协调设备运行、保障作业安全的关键职责&#xff0c;其安全操作直接关系到整个起重作业的安全性。以下从作业前、作业中、作业后的全流程&#xff0c;详细说明指挥人员需注意的安全事项&#xff1a; 一、作业前的安全准备 资质与状态检查&#xff…...

JVM内存区域与溢出异常详解

当然可以。以下是结合了程序计数器和Java内存区域以及内存溢出异常的详细解释&#xff1a; JVM内存区域与内存溢出异常 Java虚拟机&#xff08;JVM&#xff09;管理着不同类型的内存区域&#xff0c;每个区域都有其特定的功能和可能导致的内存溢出异常。 程序计数器&#xff…...

ES海量数据更新及导入导出备份

一、根据查询条件更新字段 from elasticsearch import Elasticsearch import redis import json# 替换下面的用户名、密码和Elasticsearch服务器地址 username elastic password password es_host https://127.0.0.2:30674# 使用Elasticsearch实例化时传递用户名和密码 es…...

Java线程池核心原理与最佳实践

Java 线程池详解 线程池是Java并发编程的核心组件&#xff0c;它能高效管理线程生命周期&#xff0c;避免频繁创建销毁线程的开销&#xff0c;提升系统性能和资源利用率。 一、线程池核心优势 降低资源消耗&#xff1a;复用已创建的线程&#xff0c;减少线程创建销毁开销提高…...

JAVA-springboot log日志

SpringBoot从入门到精通-第8章 日志的操作 一、Spring Boot默认的日志框架 SpringBoot支持很多种日志框架&#xff0c;通常情况下&#xff0c;这些日志框架都是由一个日志抽象层和一个日志实现层搭建而成的&#xff0c;日志抽象层是为记录日志提供的一套标准且规范的框架&…...

1.springmvc基础入门(一)

1.Spring MVC概念 Spring MVC 是 Spring Framework 提供的 Web 组件&#xff0c;全称是 Spring Web MVC&#xff0c;是⽬前主流的实现 MVC 设计模式的框架&#xff0c;提供前端路由映射、视图解析等功能。 Java Web 开发者必须要掌握的技术框架。 2.Spring MVC 功能 MVC&am…...

AI 时代下语音与视频伪造的网络安全危机

引言 在人工智能技术的推动下&#xff0c;语音合成、视频生成等技术取得了突破性进展&#xff0c;Deepfake、AI 语音克隆等工具让语音和视频伪造变得愈发简单且逼真。这些技术在娱乐、影视等领域带来便利的同时&#xff0c;也被不法分子利用&#xff0c;引发了一系列网络安全问…...

模块缝合-把A模块换成B模块(没写完)

把MLP Head替换为KAN 1.在model文件下新建一个python文件 2.把 模块文件里的整个KAN代码复制到新的python文件中 3.在开头导入 from model.KAN(新建文件名&#xff09; import KAN&#xff08;新建文件中的类名&#xff09; 4.sys.path.append(r"D: Icode(Kansformer"…...

从零开始学Flink:揭开实时计算的神秘面纱

一、为什么需要Flink&#xff1f; 当你在电商平台秒杀商品时&#xff0c;1毫秒的延迟可能导致交易失败&#xff1b;当自动驾驶汽车遇到障碍物时&#xff0c;10毫秒的计算延迟可能酿成事故。这些场景揭示了一个残酷事实&#xff1a;数据的价值随时间呈指数级衰减。 传统批处理…...

一、ES6-let声明变量【解刨分析最详细】

一、块级作用域 { let Tim"Tim是靓仔&#xff01;" } console.log("Tim:",Tim) 打印结果&#xff1a;Tim未进行任何定义&#xff01; 原因&#xff1a;因为Tim定义再块级{}里面&#xff0c;它的声音Tim只服务于该块级里面。而打印结果是再块级外面&#…...

Appium如何支持ios真机测试

ios模拟器上UI自动化测试 以appiumwebdriverio为例&#xff0c;详细介绍如何在模拟器上安装和测试app。在使用ios模拟器前&#xff0c;需要安装xcode&#xff0c;创建和启动一个simulator。simulator创建好后&#xff0c;就可以使用xcrun simctl命令安装被测应用并开始测试了。…...

JDK17 Http Request 异步处理 源码刨析

为什么可以异步&#xff1f; #调用起始源码 // 3. 发送异步请求并处理响应 CompletableFuture future client.sendAsync( request, HttpResponse.BodyHandlers.ofString() // 响应体转为字符串 ).thenApply(response -> { // 状态码检查&#xff08;非200系列抛出异常&…...

【Zephyr 系列 8】构建完整 BLE 产品架构:状态机 + AT 命令 + 双通道通信实战

🧠关键词:Zephyr、BLE、状态机、双向透传、AT 命令、Buffer、主从共存、系统架构 📌适合人群:希望开发 BLE 产品(模块/标签/终端)具备可控、可测、可维护架构的开发者 🧭 引言:从“点功能”到“系统架构” 前面几篇我们已经逐步构建了 BLE 广播、连接、数据透传系统…...