ageerle
6c383dd9f5
fix: 修复智能体编辑时关联工具加载失败 ( #320 )
2026-08-04 15:38:25 +08:00
ageerle
3c175ba28d
chore: sync pending project changes
2026-08-04 15:23:19 +08:00
ageerle
6e264ad500
feat: streamline workflow orchestration and chat routing
...
Add Zhipu web search integration, remove obsolete workflow nodes and resume handling, and separate model, agent, and workflow chat execution.
2026-07-30 00:15:44 +08:00
ageerle
83fd1ee983
fix: 移除FastJson 1.2.83严重安全漏洞,替换为Jackson
...
- 移除FastJson 1.2.83依赖(存在严重RCE漏洞CVE-2022-25845等)
- 替换为Spring Boot内置的Jackson 2.18.2
- 修改6个Java文件的JSON处理逻辑
- 所有模块编译验证通过
修改文件:
1. pom.xml - 移除fastjson依赖定义
2. ruoyi-common-chat/pom.xml - 替换为jackson-databind
3. QwenFileUploadUtils.java - 千问文件上传JSON解析
4. ChatRequest.java - 移除FastJson注解
5. MailSendNode.java - 邮件节点JSON处理
6. SwitcherNode.java - 条件分支JSON处理
7. AbstractAuthWeChatEnterpriseRequest.java - 企业微信登录
8. AuthDingTalkV2Request.java - 钉钉登录
安全提升:消除FastJson反序列化RCE漏洞攻击面
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-29 14:59:20 +08:00
ageerle
77846601ee
test(retrieval): 适配 KnowledgeRetrievalServiceImpl 新增 trace 依赖
...
构造测试实例时补上 TraceRecordService 与 TraceProperties 两个新参数,
修复编译/构造失败。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-28 11:22:26 +08:00
ageerle
b80dc6e23f
fix(shortdrama): 流式生成增加首 token 90 秒超时兜底
...
部分聚合站对 stream=true 既不返回内容也不报错,外层 30 分钟总超时
才会失败,前端会长时间卡死。90 秒内未收到任何 token 时快速失败,
提示更换模型或使用同步生成。收到首 token 后取消兜底计时。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-28 11:22:19 +08:00
ageerle
176cc67a5c
feat(register): 新用户注册成功后绑定默认角色并补齐缺失菜单权限
...
- SysRegisterService: 注册成功后读取 sys.register.defaultRoleId 配置,
为新用户绑定默认角色;未配置则静默跳过,不影响注册流程
- SysUserServiceImpl.registerUser: insert 后回写 userId 主键,
供调用方绑定默认角色或登录使用
- SQL: 修正 知识管理 父菜单 perms(knowledge:info:list -> system:info:list),
新增 system:session:* / system:attach:* / system:fragment:* 菜单,
新建 普通用户 角色(租户 000000,data_scope=5 仅本人)及角色-菜单关联,
写入 sys.register.defaultRoleId 配置项
解决注册用户无默认角色导致无权限访问 AI 对话界面、以及菜单权限标识
与控制器不一致无法授权的问题。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-28 11:22:12 +08:00
ageerle
d1a820728f
fix(sse): SSE 改为按会话隔离 + 修 trace 租户 bug + 清理冗余
...
SSE 串台修复:
- SseEmitterManager 新增按 sessionId 维度的 connect/sendEvent/disconnect,
每个会话一个 SSE 连接,替代原 userId+token 维度(同用户多会话串台)
- SseMessageDto 增加 sessionId + eventDto 字段,跨实例按会话路由
- SseTopicListener 优先按 sessionId 路由,回退原 userId/群发逻辑
- SseMessageUtils 增加 sessionId 重载,对话链路全部切换
- ChatServiceFacade / MyMcpClientListener / WorkflowStarter 切到 sessionId
- 通知/全局 /sse 端点保留 userId 模式(通知按用户)
trace 租户 bug 修复:
- trace_run / trace_node 加入 tenant.excludes,监控表跨租户全局可见,
绕过异步线程租户上下文不传播导致 node 查不到的问题
冗余清理:
- 删除零使用的 @TraceNode 注解 + TraceNodeAspect 切面 + 对应单测
- TraceProperties 删除 recordDetail/maxInputLength/maxOutputLength
(仅对已删切面生效,编程式埋点用 RagTracePayloadBuilder 不受影响)
- TracePayloadUtils 删除 input/output/asString 方法
- TraceConstants 删除无引用的 NODE_METHOD/HTTP/DB/CACHE/TASK/STREAM
- TraceContext 删除预留的 copyNodeStack
- TraceNodeVo 删除未用的 children 字段
- TraceRecordServiceImpl.getDetail 删除重复 enrich
- application.yml 删除 trace.payload 无效配置项
- RagTraceNodeTypes 删除无引用的 NODE_STREAM
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-23 15:35:10 +08:00
Obltv
345d2819d8
fix: 修复链路追踪输出记录及关闭追踪时的额外开销
2026-07-23 14:52:19 +08:00
Obltv
36e3cf8c52
fix: 修复链路追踪输出记录及关闭追踪时的额外开销
2026-07-23 14:45:43 +08:00
Obltv
06ff95cdc3
Merge upstream/main into feature/common-trace-rag-chat
2026-07-23 14:30:38 +08:00
ageerle
9adeee6c83
fix(short-drama): 修复角色形象跨分镜不一致
...
1. findRefImageIndex 补上 appearance 参数,与 findStoryboardReferenceImages
的调用对齐。之前多形象角色(换装/青年老年)的 @imageN 绑定查的是
默认形象 URL,和实际参考图列表对不上,导致 prompt 里没有 @imageN 标记
2. buildEnrichedVideoPrompt 角色段追加 visualDescription,
文字 prompt 也承载外貌信息(发型/服装/体态),不能全靠参考图
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-21 16:06:06 +08:00
ageerle
e42d35f3bf
fix: 工作流实体保留字转义 + 千问向量模型厂商映射
...
1. WorkflowRuntimeNode/WorkflowRuntime: input/output/status 字段加反引号,
修复 MySQL 8.0 保留字导致 MyBatis-Plus SQL 解析异常 (#307 )
2. EmbeddingModelFactory: 新增 providerCode→BeanName 映射,
qianwen→alibailian,修复千问向量模型找不到 Bean 的问题 (#301 )
Closes #307 #301
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-21 15:43:36 +08:00
ageerle
a69d1f51b9
feat: 打通 thinking 流式链路 + SqlAgent 表白名单校验
...
1. OllamaServiceImpl 补 .think() + .returnThinking(),对齐其他 provider (#306 )
2. ChatServiceFacade.createCombinedHandler 新增 onPartialThinking,
reasoning 内容经 SseMessageUtils.sendReasoning 流式推到前端 (#303 )
3. SqlAgent 系统提示词追加无表时禁止执行 SQL 的规则 (#279 )
4. ExecuteSqlQueryTool 代码层硬拦截:空白名单直接拒绝,
有白名单则校验 SQL 中 FROM/JOIN 引用的表名 (#279 )
Closes #303 #306 #279
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-21 15:31:32 +08:00
ageerle
911ae6cb1f
fix: 修复 issue IJX5VV/IJPYWL/IHPUDA
...
- IJX5VV: 补全工作流 9 个节点消息模板 sys_config 配置(SQL 脚本合并重命名时遗失),
附幂等增量脚本;此前节点执行会抛「请先配置该节点的响应模板」
- IJPYWL: 向量模型未配置维度时,Milvus/Qdrant 回退默认 1024,避免 Integer 拆箱 NPE
- IHPUDA: chat_provider.provider_icon 由 varchar(255) 加宽至 varchar(1000),
容纳 minio 私有桶签名 URL,附增量脚本
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-21 15:28:28 +08:00
ageerle
9a2f326e42
fix(rag): 合并后修正-升级脚本兼容 MySQL 8、重解析按 docId 清理旧向量
...
1. 升级脚本 2026-07-20-knowledge-fragment-fid.sql 使用了 MySQL 8 不支持的
ADD COLUMN IF NOT EXISTS(MariaDB 语法),在存量库执行会直接语法报错。
改为与脚本内索引守卫一致的 information_schema 判断 + PREPARE 方式,保持幂等。
2. parse() 重新解析时按 fragment.fid 删除旧向量:存量数据的 fid 为迁移脚本
回填的 MD5 值,与向量库中实际存储的随机 fid 不一致,首次重解析无法命中
旧向量,导致新旧向量重复累积。改为写入新向量前先按 docId 清理(三种
向量库策略均支持),写入失败时仍补偿删除新 fid。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-21 14:33:28 +08:00
ageerle@163.com
46a8d6b552
Merge pull request #315 from MuSan-Li/update/2026-07-19-fixes
...
修复RAG相关逻辑优化:统一文档切割配置、向量数据生命周期、
统一检索服务(阈值/重排/缓存)、按知识库路由向量库、重新解析支持
2026-07-21 14:33:11 +08:00
evo
cf5423f69f
fix(rag): 统一文档切割配置并支持重新解析
2026-07-21 12:18:19 +08:00
evo
016bdbdd94
test(rag): 增加三向量库 Docker 生命周期测试
2026-07-21 09:35:56 +08:00
evo
787e447d09
fix(aiflow): 接入统一知识库检索服务
2026-07-21 09:35:33 +08:00
evo
9c092ae3bb
fix(chat): 统一单轮检索并完善多库上下文
2026-07-21 09:35:26 +08:00
evo
42bc8fea95
fix(rag): 完善向量路由批量写入与数据生命周期
2026-07-21 09:35:18 +08:00
evo
c4fc1e6fcf
fix(rag): 隔离模型实例并修正缓存刷新
2026-07-21 09:35:07 +08:00
evo
6f6d0893ec
fix(rag): 统一检索阈值重排降级与缓存语义
2026-07-21 09:34:56 +08:00
evo
a6a55202a3
fix(rag): 修复文本分片边界与字面量分隔符
2026-07-21 09:34:47 +08:00
ageerle@163.com
24bee53f9e
feat: 新增 ChitChatAgent 闲聊兜底子 Agent 并接入 supervisor
...
简单任务无专业子 Agent 可用时由闲聊 Agent 兜底,避免 supervisor 空转返回空内容;通过 supervisorContext 约束仅在问候/闲聊场景路由到该 Agent。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-20 16:08:48 +08:00
evo
afc9d3d17d
fix: 修复本地启动、数据库初始化与构建问题 ( #314 )
...
* fix: 修复本地启动、数据库初始化与构建问题
* fix: 修复pr的一些问题提交
2026-07-19 13:42:43 +08:00
evo
879fe48945
fix: 修复本地启动、数据库初始化与构建问题
2026-07-19 12:20:22 +08:00
ageerle@163.com
5d834d924a
feat: 编程助手按聊天模型过滤并补充 MCP 工具 thinking 事件,README 补充 copilot/uniapp 仓库
...
- CodingController.models 按 category=chat 过滤,编程对话只展示聊天模型
- 各 MCP 文件/命令工具在执行前推送 thinking 提示事件
- README/README_EN 项目源码表新增 ruoyi-copilot、ruoyi-uniapp 三端链接
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-17 14:47:18 +08:00
ageerle@163.com
fece90b307
feat: 新增短剧音频/编码模块、MCP 文件工具与 WebSocket 支持
...
- 短剧: 新增 ShortDramaAudio 实体/Mapper/BO/VO,扩展 ShortDramaServiceImpl
合成逻辑与 FfmpegFilterGraphBuilder 滤镜图
- MCP: 新增 WriteFileTool/DeleteFileTool/ExecuteCommandTool,重构
EditFileTool/ReadFileTool/ListDirectoryTool
- 编码: 新增 coding 模块(CodingAgent/WorkspaceService/SSE 事件通道)
- Atlas: 新增音频生成实现,扩展音视频/媒体实体与预测服务
- WebSocket: 新增公众号聊天 WebSocket 处理器与握手拦截
- 忽略 logs/ 目录,避免合成产物入库
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-17 11:52:53 +08:00
ageerle@163.com
dfcadda2bb
@style: 修正 QdrantVectorStoreStrategy 缩进为空格
...
createSchema 调用与文件其余代码保持 4 空格缩进统一,避免 checkstyle/spotless 报错。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-15 18:00:07 +08:00
Jack Jiang
3c9546ded9
fix: 修复 Qdrant 初始化创建集合问题 ( #298 )
2026-07-15 17:58:12 +08:00
Octopus
a3d82e092e
Refresh MiniMax models and protocol support ( #313 )
...
Co-authored-by: octo-patch <266937838+octo-patch@users.noreply.github.com >
2026-07-15 17:43:51 +08:00
ageerle@163.com
96a1b741df
fix: 兼容 Atlas 预测结果查询 404,避免前端轮询刷屏
...
Atlas /model/prediction/{id} 对已过期或不存在的任务返回 404
(常见于更换 API Key 后残留的旧任务)。原实现直接抛异常,前端
轮询反复触发错误提示。改为 404 时返回 status=failed 的响应,
让上层走正常失败分支落库,前端识别后终止轮询。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-15 11:17:20 +08:00
ageerle@163.com
e7b7d1d084
更新README.md
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-15 10:52:15 +08:00
ageerle@163.com
2ae13aafd4
feat: 新增短剧/媒体生成能力并脱敏数据库脚本
...
- 新增音频/视频/图片生成服务与 Atlas、OpenAI 实现
- 新增短剧脚本生成、分镜与 ffmpeg 合成模块
- 新增 Coze/Dify 聊天 provider 及 Agent 配置
- 脱敏 SQL 脚本:移除真实 DeepSeek API Key,掩码 COS 桶名
- 清理过期的 SQL update 脚本与 chat 文档
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-14 21:49:03 +08:00
Obltv
e925050207
feat: 新增通用链路追踪模块与 RAG 对话全链路埋点
...
- 新增 ruoyi-common-trace 模块:TraceContext 上下文、TraceNodeAspect 注解切面、数据库双表持久化
- ChatServiceFacade / KnowledgeRetrievalServiceImpl 完成 RAG 对话 retrieval → rerank → llm-call 全链路采集
- 新增 TraceController 提供列表/详情/节点查询 API 及数据统计
- 支持 trace.enabled 开关、payload 长度截断、错误安全降级
- TraceNodeTemplate 模板封装标准节点生命周期,减少重复样板代码
2026-06-16 10:14:35 +08:00
ageerle@163.com
c79848c654
feat: 替换 PPIO 为 Atlas Cloud 并增强知识库功能
...
- 将 PPIO 服务提供商替换为 Atlas Cloud
- 更新 README 赞助商信息
- 删除 PPIOEmbeddingProvider 和相关测试
- 知识库新增重排序、混合检索、相似度阈值等字段
- 更新 SQL 初始化脚本
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-21 11:18:59 +08:00
RobustH
b8d16b7669
feat(rag): 对接用户端用户知识库对话,集成知识库配置应用
2026-04-23 00:52:53 +08:00
RobustH
058a4aee2a
feat(rag): 新增测试配置应用的功能
2026-04-21 22:54:11 +08:00
RobustH
1b50c7f9f1
fix(rag): 修复合并重复,重排模型新增硅基流动供应商
2026-04-21 22:41:00 +08:00
RobustH
e7f53fd55f
Merge remote-tracking branch 'origin/main'
...
# Conflicts:
# ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/domain/bo/knowledge/KnowledgeInfoBo.java
# ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/domain/entity/knowledge/KnowledgeInfo.java
# ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/domain/vo/knowledge/KnowledgeInfoVo.java
# ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/service/chat/impl/ChatServiceFacade.java
2026-04-21 21:41:51 +08:00
yangzhen
e1b8a5f011
新增千问3重排序模型,并附带新增sql文件
2026-04-20 16:07:02 +08:00
杨振
80ca76ea37
添加重排序功能
2026-04-20 01:02:09 +08:00
wangle
4f79a66559
feat: 添加小米MiMo、DeepSeek、自定义厂商等provider支持
...
- 新增小米MiMo服务实现类(MiMoServiceImpl)
- ChatModeType添加XIAOMI枚举
- 更新SQL初始化脚本,新增多家厂商(provider)和模型数据
- 添加2026-04-19数据库更新脚本
- application.yml演示模式排除路径增加attach/fragment/info接口
- 删除独立的minimax_provider.sql(数据已合并到主SQL)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-19 13:42:05 +08:00
wangle
22883b4334
Merge branch pr-280: 添加MiniMax作为LLM提供商
...
解决冲突:
- README: 保留Qdrant向量库信息 + 合并MiniMax模型接入
- pom.xml: 保留spring-boot-starter-test + 添加MiniMax测试依赖
- ChatModeType: 保留CUSTOM_API + 新增MINIMAX枚举
- MinimaxServiceImpl: 保留MyChatModelListener监听器
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-19 11:47:04 +08:00
wangle
081da6d18d
feat: 添加MiniMax作为LLM提供商,合并PR#280并补充监听
...
合并PR#280的MiniMax provider实现,解决与main分支的冲突,
并在MinimaxServiceImpl中补充MyChatModelListener监听,
与其他provider保持一致。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-17 18:31:53 +08:00
ageerle
74eb5b2530
Merge pull request #290 from yangzhen233/feature/zhipu-embedding
...
添加智谱向量模型实现
2026-04-17 18:24:24 +08:00
Administrator
2ee0aae57e
fate:增加自定义模型,调整前端模型选择下拉框
2026-04-17 08:31:40 +08:00
杨振
d9c3de660a
添加智谱向量模型实现
2026-04-16 21:18:11 +08:00