xunxiing
a4fc92e803
feat: add file upload to plugin config ( #4539 )
...
Co-authored-by: Soulter <905617992@qq.com >
2026-01-27 14:56:19 +08:00
Soulter
8a0f865af1
feat: enhance tool call handling and agent stats tracking and UI integration for tool calls render ( #4101 )
...
* feat: enhance tool call handling and UI integration for tool calls render
- Added support for tool call messages in the agent runner and webchat event handling.
- Implemented JSON message component for structured tool call data.
- Updated chat route to save tool call information in message history.
- Enhanced frontend to display tool call details in a collapsible format, including status and results.
- Introduced elapsed time tracking for ongoing tool calls in the chat interface.
* fix: improve message handling in agent run utility and tool loop runner
- Refactored message sending logic in `astr_agent_run_util.py` to use `msg_chain` directly for better clarity.
- Added a check in `tool_loop_agent_runner.py` to ensure `tool_call_result_blocks` is not empty before yielding the last tool call result, preventing potential errors.
* refactor: enhance message structure and UI for chat components
- Updated message handling in `MessageList.vue` to support structured message parts, including plain text, images, audio, and files.
- Improved the `Chat.vue` component styles for better visual consistency.
- Refactored message parsing logic in `useMessages.ts` to accommodate new message formats and ensure proper rendering of embedded content.
- Removed deprecated tool call handling from the message structure, streamlining the message display process.
* chore: ruff format
* feat: implement agent statistics tracking and display in chat
- Added `AgentStats` and `TokenUsage` data classes to track agent performance metrics.
- Enhanced `ToolLoopAgentRunner` to collect and update agent statistics during execution.
- Integrated agent statistics sending to webchat for real-time updates.
- Updated chat route to save and display agent statistics in message history.
- Improved frontend components to visualize agent statistics, including token usage and duration metrics.
* fix: improve message handling in Telegram event and agent run utility
- Updated message sending logic in `astr_agent_run_util.py` to send the correct message chain for tool calls.
- Enhanced `tg_event.py` to edit messages during streaming breaks, improving message management and user experience.
- Added error handling for message editing failures to ensure robustness.
* chore: ruff format
2025-12-18 17:11:09 +08:00
Dt8333
f624971613
chore: fix bunches of type checking errors ( #3213 )
...
* chore(core.utils): 🚨 修正错误Lint
* chore(core.provider): 🚨 修复基类错误Lint
* chore(core.utils): 补全session_get()的重载
* chore(core.provider): 🚨 修正实现错误Lint
* chore(core.platform): 🚨 修正platform基类和webchat的错误Lint
* chore(core.platform): 修正错误实现Lint
* fix(core.provider): 修复循环调用和错误assert
* chore(core.platform): 修复部分实现Lint
* chore(core.provider): 补充Dify.text_chat_stream的参数类型
* chore(core.pipeline): 🚨 修复错误Lint
* fix(core.slack): 补充遗漏导入
* chore(core.utils): 修复错误的session_get声明
* chore(core.platform): 移除Lark adapter import中的wildcard
* chore(core.db): 修复声明和部分逻辑
* chore(core.db): 添加typings,使faiss参数能被正确识别。
* chore(core): 修复声明
* chore(core): 修改声明
* chore: 补充faiss声明
* chore(dashboard): 修改实现,减少报错
* chore(package): 修改部分声明与实现,减少报错
* chore(core): 添加Handler的overload,以去除部分assert同时通过类型检查
* chore(core.pipeline): 修改Pipeline Scheduler的execute,将判断属性改为判断类型,通过静态类型检查
* chore(core.config): 添加类型标注,通过类型检查
* chore(core.message): 为File._download_file添加检查,通过类型检查
* fix: 将断言改为条件判断以实现优雅关闭的容错性
* refactor: 移除 discord 客户端中的 assert,改用 if None 判断并抛出异常
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: DiscordPlatformAdapter 对 self.client.user 为 None 做日志并返回,移除断言
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 增强 Lark 相关空值/异常检查并完善日志输出
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 将断言替换为条件检查并加入日志与错误处理
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* chore: 移除LLM生成的无用注释
* refactor: 使用 File.get_file 替换下载逻辑并移除 assert,提供默认 filename
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: Slack Socket 未初始化抛出运行时异常,图片 URL 判空改为非空判断
* refactor: 将 WeChatPadProAdapter 的断言改为空值判断并添加日志
* refactor: 使用 isinstance 替代断言实现类型判断,便于静态检查
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 去除cast,直接使用字段与字典访问,修正端口解析
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 使用 match-case 重构 ProviderManager 加载并通过类型检查抛出 TypeError
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: group_name_display 时若 group 对象为空则记录错误并返回
* fix: 将 _get_current_persona_id 的 assert 替换成 if guard 并返回 None
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 优化插件目录存在性检查及图片URL非空验证,更新JSON排序配置
* fix: 将 datetime_str 的 assert 替换为显式检查并抛出异常
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除 cast,改为运行时检查并在找不到调度器时跳过
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除 cast,改用 isinstance 检查 FaissVecDB 并警告
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 删除 typing.cast 导入,并在获取文件绝对路径前校验 file_
* refactor: 移除 typing.cast,简化内容安全检查调用
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 将 PlatformMetadata.id 设为必填并在注册时传入 id,移除 cast
* refactor: 移除 cast,改用 HasInitialize 与 isinstance 进行初始化
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 为 ProviderManager.initialize 增加ID类型判断,避免 None 导致 get 失败
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 为 OTTSProvider 与 AzureNativeProvider 引入 _client 与 client 属性改进上下文管理
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 为 Whisper 自托管源添加模型未初始化校验并直接调用 transcribe
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除未使用的 cast 导入并简化 platform_name 赋值
* refactor: 引入 cast 并对 id 使用 cast(str, ...) 提升类型安全
* fix: 将 _id_to_sid 返回改为 str,空值返回空串;对 id 与 message_id 使用 cast
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 重构 Discord 处理逻辑:强制 类型转换、优先斜杠指令并优化提及判断
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 统一对 id 获取执行 cast,并在微信消息解析失败时抛错
* Revert "fix: 去除cast,直接使用字段与字典访问,修正端口解析"
This reverts commit 1cbfdf9d1b .
* fix: 百炼 Rerank 会话关闭时返回空结果;初始化 request.prompt 避免空值拼接
* fix: 统一处理搜索结果链接为字符串,新增 _get_url 助手并适配 Bing/Sogo
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 调整 call_handler 泛型、Discord 通道注解及 FishAudioTTS API 请求类型
* refactor: 使用 col(...) 替代列引用并对结果进行 CursorResult 强转
* chore: ruff format
---------
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
Co-authored-by: Soulter <905617992@qq.com >
2025-12-09 14:13:47 +08:00
Soulter
2ba0460f19
feat: introduce file extract capability ( #3870 )
...
* feat: introduce file extract capability
powered by MoonshotAI
* fix: correct indentation in default configuration file
* fix: add error handling for file extract application in InternalAgentSubStage
* fix: update file name handling in InternalAgentSubStage to correctly associate file names with extracted content
* feat: add condition settings for local agent runner in default configuration
* fix: enhance file naming logic in File component and update prompt handling in InternalAgentSubStage
2025-12-01 18:12:39 +08:00
Soulter
630df3e76e
refactor: reorganize ComponentType definitions and remove unused classes
2025-11-01 23:18:40 +08:00
LIghtJUNction
0b7fc29ac4
style: add ruff lint module of isort and pyupgrade, and some ruff check fix ( #3214 )
...
Co-authored-by: Dt8333 <25431943+Dt8333@users.noreply.github.com >
Co-authored-by: Soulter <905617992@qq.com >
2025-11-01 13:26:19 +08:00
shangxue
17aee086a3
feat: 添加 Satori 协议适配器支持 ( #2633 )
...
* Create satori_adapter.py
* Add files via upload
* Update default.py
* Update manager.py
* Update platform_adapter_type.py
* Update PlatformPage.vue
* Add files via upload
* Update default.py
* Update manager.py
* Update platform_adapter_type.py
* Update PlatformPage.vue
* Add files via upload
* Update default.py
* chore: format code
* feat: 修复 Image, Audio 的解析,修复 message_str 的解析
* perf: 增强鲁棒性
* feat: 添加 Satori 配置项描述,移除适配器默认配置
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-09-06 23:52:00 +08:00
Zhalslar
c1756e5767
fix: 修复组件 type 属性为枚举值 ( #2628 )
...
当前components.py中每个组件的type属性都是直接字符串赋值,IDE会爆红。
修正为使用本就定义好的ComponentType枚举类
用时修正多个组件中当url为空时convert_to_base64检查路径导致的报错
2025-09-06 19:22:49 +08:00
Soulter
2f941de65b
feat: 支持展示工具使用过程
2025-06-29 21:19:40 +08:00
Soulter
94ee8ea297
feat: 支持多轮次工具调用并且存储到数据库
...
移除了 llm tuner 适配器
2025-06-29 14:27:00 +08:00
邹永赫
a47121b849
使用定义的Plain类型代替原始基础类型str,保持代码统一性
2025-06-23 18:49:47 +09:00
邹永赫
ed4609ebe5
修复代码重构造成的无法向前兼容在node中发送简单文本信息的问题
2025-06-23 18:17:37 +09:00
Soulter
12c4ae4b10
perf: to_dict in the base class
2025-05-28 03:26:42 -04:00
Soulter
4e1bef414a
perf: empty array
2025-05-28 03:25:19 -04:00
Soulter
e896c18644
perf: video
2025-05-28 15:12:21 +08:00
Soulter
c852685e74
fix: typeerror
2025-05-28 01:18:45 -04:00
Soulter
1e99797df8
refactor: improve message segment handle
2025-05-28 12:53:00 +08:00
Raven95676
c5ccc1a084
feat(Video): 增加视频消息组件的文件转换和注册功能
2025-05-15 09:50:27 +08:00
Raven95676
b87061c18c
feat: add file registration methods for audio, image, and file components
2025-05-11 10:08:55 +08:00
Raven95676
b858401098
chore: format code
2025-05-10 18:47:56 +08:00
渡鸦95676
e1a20d3c22
Merge branch 'master' into feature/cli
2025-05-09 20:22:33 +08:00
anka
7fd765421f
fix: [File] remove unused tags "_downloaded"
2025-05-09 09:58:37 +00:00
Soulter
790b924e57
refactor: QQ 采用 http 回调的方式上报文件消息段中的文件信息。
...
fix: 修复 Lagrange 下合并转发消息失败的问题
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2025-05-09 03:47:19 -04:00
Soulter
4a62f877df
🐛 fix: 修复单独文件发送时被认为是空消息导致文件无法发送的问题
2025-05-09 10:45:50 +08:00
Raven95676
ccdbb01513
perf: 修改move为copy,clean code
2025-05-06 18:39:11 +08:00
Raven95676
c111da4681
refactor: 修改框架路径获取方式,规范化路径拼接
2025-05-06 17:30:34 +08:00
anka
321b04772c
refactor: 🍩 将本地路径和url分离, 需要本地文件时提供下载接口, 同时向前兼容
2025-05-01 01:16:30 +08:00
Soulter
31c7768ca0
🎈 perf: 优化 QQ 下自动下载文件的问题
2025-04-30 21:47:14 +08:00
Soulter
d921b0f6bd
🎈 perf: 优化 gewechat 的引用消息解析
2025-04-20 16:00:59 +08:00
Soulter
83745f83a5
🐛 fix: 对飞书适配器 base64 格式数据先保存到本地
2025-04-13 15:29:56 +08:00
Raven95676
cfd3f4b199
流式输出完成后,将完整的LLM响应设置为事件结果
2025-04-07 00:17:53 +08:00
Raven95676
0490758820
替换原地修改和删除索引的旧逻辑
2025-04-06 15:36:05 +08:00
Soulter
9b36a5c8a6
✨ feat: 增加全平台对流式输出的处理逻辑
2025-04-06 13:43:23 +08:00
Soulter
109650faf3
✨ feat: 支持流式输出
2025-04-06 00:56:33 +08:00
anka
3f568bf136
Merge remote-tracking branch 'origin/HEAD' into anka-dev
2025-03-31 22:32:40 +08:00
anka
5484b421ce
perf: 增加部分注释
2025-03-31 22:30:43 +08:00
pre-commit-ci[bot]
33f86f3bde
🎈 auto fixes by pre-commit hooks
2025-03-27 02:56:55 +00:00
left666
b74b5933b8
feat(core): 在 MessageChain 类中添加 at 和 at_all 方法
...
- 新增 at 方法,用于添加 At 消息到消息链中
- 新增 at_all 方法,用于添加 AtAll 消息到消息链中
2025-03-27 10:30:19 +08:00
NiceAir
f959ed71aa
✨ feat: Gewechat 支持表情包、引用消息、视频
...
Co-authored-by: Soulter <905617992@qq.com >
2025-03-25 21:00:12 +08:00
pre-commit-ci[bot]
13a95e1f2b
🎈 auto fixes by pre-commit hooks
2025-03-20 08:42:40 +00:00
Soulter
cbba81e54d
🐛 fix: 无法接收图片 aiocqhttp
2025-03-20 16:03:41 +08:00
Soulter
ebcc717c19
🎈 perf: Dify 下支持更多类型的图片输入及提高代码复用性 #893
...
🐛 fix: 修复飞书下无法进行图片输入的问题
2025-03-20 11:21:45 +08:00
Soulter
e2283d1453
🐛 fix: 修复 dify 下某些修改了 LLM 响应的插件可能不生效的问题 #876
2025-03-19 01:05:28 +08:00
邹永赫
122fccc041
修复无法发送非嵌套的转发消息的问题
2025-03-13 17:02:58 +08:00
邹永赫
9d0ad35403
支持嵌套转发,里层包含多条信息
2025-03-13 17:02:58 +08:00
邹永赫
f9ec97e026
支持嵌套转发
2025-03-13 17:02:58 +08:00
Soulter
a1172c9a82
✨ feat: 支持解析回复消息 #783
2025-03-11 23:27:10 +08:00
Soulter
5252870733
style: cleanup
2025-03-03 15:17:42 +08:00
Soulter
49bba9bf98
style: format codes
2025-03-03 13:30:55 +08:00
Soulter
b199bddb0b
✨ feat: 适配多节点的转发消息(OneBot V11)
2025-02-22 21:07:57 +08:00