Dt8333
8488c9aeab
fix(core.platform): 修复启用多个企业微信智能机器人适配器时消息混乱的问题 ( #3693 )
...
* fix(core.platform): 修复启用多个企业微信智能机器人适配器时消息混乱的问题
移除了全局的消息队列,改为每个适配器处理自己的队列。修改相关方法适应该更改。
#3673
* chore: apply suggestions from code review
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
---------
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2025-11-19 21:44:38 +08:00
Soulter
6849af2bad
refactor: LLM response handling with reasoning content ( #3632 )
...
* refactor: LLM response handling with reasoning content
- Added a `show_reasoning` parameter to `run_agent` to control the display of reasoning content.
- Updated `LLMResponse` to include a `reasoning_content` field for storing reasoning text.
- Modified `WebChatMessageEvent` to handle and send reasoning content in streaming responses.
- Implemented reasoning extraction in various provider sources (e.g., OpenAI, Gemini).
- Updated the chat interface to display reasoning content in a collapsible format.
- Removed the deprecated `thinking_filter` package and its associated logic.
- Updated localization files to include new reasoning-related strings.
* feat: add Groq chat completion provider and associated configurations
* Update astrbot/core/provider/sources/gemini_source.py
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
---------
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2025-11-15 18:59:17 +08:00
Dt8333
2c8470e8ac
fix(core.platform): make DingTalk user-ID compliant with UMO ( #3634 )
2025-11-15 17:31:03 +08:00
Dt8333
6ac43c600e
perf: improve streaming fallback strategy for streaming-unsupported platform ( #3547 )
...
* feat: 修改tool_loop_agent_runner,新增stream_to_general属性。
Co-authored-by: aider (openai/gemini-2.5-flash-preview) <aider@aider.chat >
* refactor: 优化text_chat_stream,直接yield完整信息
Co-authored-by: aider (openai/gemini-2.5-flash-preview) <aider@aider.chat >
* feat(core): ✨ 添加streaming_fallback选项,允许进行流式请求和非流式输出
添加了streaming_fallback配置,默认为false。在PlatformMetadata中新增字段用于标识是否支持真流式输出。在LLMRequest中添加判断是否启用Fallback。
#3431 #2793 #3014
* refactor(core): 将stream_to_general移出toolLoopAgentRunner
* refactor(core.platform): 修改metadata中的属性名称
* fix: update streaming provider settings descriptions and add conditions
* fix: update streaming configuration to use unsupported_streaming_strategy and adjust related logic
* fix: remove support_streaming_message flag from WecomAIBotAdapter registration
* fix: update hint for non-streaming platform handling in configuration
* fix(core.pipeline): Update astrbot/core/pipeline/process_stage/method/llm_request.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fix(core.pipeline): Update astrbot/core/pipeline/process_stage/method/llm_request.py
---------
Co-authored-by: aider (openai/gemini-2.5-flash-preview) <aider@aider.chat >
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
Co-authored-by: Soulter <905617992@qq.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-11-12 18:01:20 +08:00
Soulter
6d00717655
feat: add streaming support with toggle in chat interface and adjust layout for mobile
2025-11-09 21:57:30 +08:00
Dt8333
aca5743ab6
feat: 为部分适配器添加缺失的 send_streaming 方法 ( #3545 )
...
为Wechatpadpro和discord添加缺失的方法。
2025-11-09 16:00:24 +08:00
Dt8333
c51609b261
fix: typing error ( #3267 )
...
* fix: 修复一些小错误。
修复aiocqhttp和slack中部分逻辑缺失的await。修复discord中错误的异常捕获类型。
* fix(core.platform): 修复discord适配器中错误的message_chain赋值
* fix(aiocqhttp): 更新convert_message方法的返回类型为AstrBotMessage | None
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-11-03 23:38:52 +08:00
Copilot
a04993a2bb
Replace insecure random with secrets module in cryptographic contexts ( #3248 )
...
* Initial plan
* Security fixes: Replace insecure random with secrets module and improve SSL context
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Address code review feedback: fix POST method and add named constants
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Improve documentation for random number generation constants
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Update astrbot/core/utils/io.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/platform/sources/wecom_ai_bot/WXBizJsonMsgCrypt.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update tests/test_security_fixes.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/utils/io.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/utils/io.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Fix: Handle path parameter in SSL fallback for download_image_by_url
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
Co-authored-by: LIghtJUNction <lightjunction.me@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-11-03 02:43:00 +08:00
Copilot
94bf3b8195
Fix incorrect type annotations and errors ( #3250 )
...
* Initial plan
* Fix type annotation errors in cmd_conf, cmd_init, and version_comparator
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Changes before error encountered
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Fix more type annotation errors: change `= None` to `| None = None`
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Fix final batch of type annotation errors
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
Co-authored-by: LIghtJUNction <lightjunction.me@gmail.com >
2025-11-02 17:02:56 +08:00
Copilot
e190bbeeed
Optimize string concatenation in loops: replace += with list.join() ( #3246 )
...
* Initial plan
* Fix string concatenation performance issues in loops
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Address code review feedback: Fix plugin list logic and add comment
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Improve comment clarity for at_parts accumulation
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
2025-11-02 13:00:59 +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
再吃颗电池吧
2ce653caad
perf: modify the at logic in the DingTalk adapter ( #3186 )
...
* feat 初次提交
* fix: Modify the At logic in the DingTalk adapter.
* del uv.lock
* 添加at_users为空判断
* 优化钉钉at的处理逻辑,不用重复判断机器人是否is_in_at_list
* fix: refine handling of mentioned users in group messages
---------
Co-authored-by: linyiming <linyiming@example.com >
Co-authored-by: Soulter <905617992@qq.com >
2025-10-30 14:15:01 +08:00
a490077
3550103e45
feat: QQ 官方机器人增加沙盒模式选项,让本地部署能跳过 IP 白名单验证 ( #3087 )
...
* QQ官方机器人增加沙箱模式选项,让本地部署能跳过IP白名单验证
* chore: ruff format
---------
Co-authored-by: 郭鹏 <gp@pp052.top >
Co-authored-by: Soulter <905617992@qq.com >
2025-10-19 20:09:08 +08:00
PaloMiku
8b0d4d4de4
feat: 优化 Misskey 适配器的通知和聊天消息处理,改进 @用户提及逻辑 ( #3075 )
2025-10-19 20:05:55 +08:00
shangxue
dc71c04b67
feat(satori): 添加对合并转发消息功能的支持 ( #3050 )
...
* Update satori_event.py
* Update satori_event.py
* Update satori_event.py
* Update satori_adapter.py
* style: format code for better readability in satori_adapter.py and satori_event.py
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-10-19 20:05:03 +08:00
PaloMiku
23f13ef05f
feat:Misskey 适配器支持文件上传、投票内容感知功能和重构部分代码 ( #2986 )
...
* feat: 为 Misskey 适配器修正一些问题,添加投票信息读取支持
* feat: 增强 Misskey 平台适配器,添加随机重连延迟和通道重新订阅功能
* feat: 添加文件上传功能并优化消息发送接口,支持同时发送文件和文本
* feat: 增强文件上传功能,支持 MIME 类型检测和外部 URL 回退
* feat: 增加 Misskey 文件上传功能开关,支持配置文件上传启用与并发限制
* feat: 添加 Misskey 文件上传目标文件夹配置,支持将文件上传到指定文件夹
* feat: 优化 Misskey 平台适配器,增强文件上传和消息发送功能,支持更多可选字段
* feat: 代码优化结构与功能
* feat(misskey): 增强消息发送逻辑和工具函数
- 重构了 `misskey_event.py` 中的 `send` 方法,使用新的适配器方法 `send_by_session`,以改进消息处理(包括文件上传)。
- 添加了详细的日志记录,以提高消息发送过程的可追溯性。
- 在 `misskey_utils.py` 中引入了 `FileIDExtractor` 和 `MessagePayloadBuilder` 类,以简化文件 ID 提取和消息载荷构建。
- 在 `misskey_utils.py` 中实现了 MIME 类型检测和文件扩展名解析,以支持多种文件上传。
- 增强了 `resolve_component_url_or_path`,以更好地处理不同类型的组件上传文件。
- 在 `upload_local_with_retries` 中添加了重试逻辑,以优雅地处理不允许的文件类型。
* feat(misskey): 限制文件上传并发数,优化消息处理逻辑
* feat(misskey): ruff formatted
* feat: 大幅优化 misskey 文件上传逻辑,简化上传流程并增强可见性解析
* feat(misskey): 移除 Url上传方式,精简日志
* fix(misskey): 修复错把URL文件当本地文件上传的问题,明确处理 URL 和本地文件的方式
* fix(misskey): 修复 session_id 解析逻辑,确保与 user_cache 键格式匹配
* perf: streaming the file with a file object in FormData to reduce peak memory usage.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* style: format debug log message for local file upload in MisskeyAPI
* refactor: remove unnecessary thread executor for reading file bytes in MisskeyAPI
---------
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Soulter <905617992@qq.com >
2025-10-16 10:27:04 +08:00
shangxue
9119f7166f
feat: satori 适配器支持 video、reply 消息类型 ( #3035 )
...
* Update satori_event.py
* style: format
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-10-15 10:45:35 +08:00
Soulter
80fccc90b7
feat: 支持接入企业微信智能机器人平台 ( #3034 )
...
* stage
* stage
* feat: 支持图片收发
* feat: add support for wecom_ai_bot in getPlatformIcon function
2025-10-14 23:20:56 +08:00
u0_ani-nya.com
5eaf03e227
perf: 对于 Telegram 群聊,将回复机器人的消息视为唤醒机器人 ( #2926 )
...
* reply as at for tg
Add handling for bot replies in group messages.
* style: type checking and ruff format
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-10-01 19:04:37 +08:00
Seayon
a8437d9331
feat: 支持在 Telegram 和飞书下请求 LLM 前预表态功能 ( #2737 )
...
* ✨ feat(platform): 为 Telegram 和飞书添加消息表情回应功能
支持在收到命令时自动添加表情回应,提升用户交互体验
新增平台特异配置项,允许自定义启用状态和表情列表
* Update astrbot/core/platform/astr_message_event.py
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* style: ruff format
* fix: 优化平台特异配置的预回应表情处理逻辑
---------
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: Soulter <905617992@qq.com >
2025-09-30 17:29:34 +08:00
Raven95676
d10b542797
chore: format
2025-09-26 11:05:32 +08:00
Raven95676
ce4e4fb8dd
fix: add missing id field
2025-09-26 10:59:11 +08:00
shangxue
fc76665615
feat: Satori适配器引用消息无法正确识别 ( #2686 )
...
* Update PlatformPage.vue
* Update PlatformPage.vue
* Update PlatformPage.vue
* Update satori_adapter.py
* Update satori_event.py
* Update default.py
* Update satori_adapter.py
* Update satori_adapter.py
* style: format code
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-09-21 21:45:35 +08:00
Soulter
3a044bb71a
fix: 修复 Telegram 下流式传输时,第一次输出的内容会被覆盖掉的问题 ( #2838 )
...
fixes : #2481
2025-09-21 21:24:47 +08:00
anka
a4b43b884a
fix: 修复aiocqhttp适配器at会获取群昵称而消息不会获取的逻辑不一致 ( #2769 )
...
* fix: 修复at会获取群昵称而消息不会获取的逻辑不一致
* style: format code
2025-09-19 13:04:51 +08:00
PaloMiku
824c0f6667
feat: 新增 Misskey 平台适配器 ( #2774 )
...
* feat: add Misskey platform adapter
* fix: 修复 Misskey 配置项的大小写问题
* feat: 添加消息链序列化功能和可见性解析逻辑
* chore: 删除损坏的 Misskey 平台适配器工具函数文件
* docs: 更新 Misskey 消息适配器设置描述信息
* feat: Misskey 单用户连续上下文对话支持
* feat: 为 Astrbot 添加 Misskey 平台适配器的 ID 配置
* feat: 重构 Misskey 平台适配器,提取通用工具函数并优化消息处理逻辑
* refactor: 清理 Misskey 平台适配器和 API 代码,移除冗余注释
* fix: 修复了使用中和使用者反馈的多个问题
* fix: 修改提及格式,确保提及在新行开始,提升帖子美观和易读性。
* feat: 添加默认可见性和本地仅限设置,优化 Misskey 平台适配器的配置
* fix: 更新 Misskey 平台适配器配置,使用前缀以防止和其他适配器未来可能的冲突问题
* chore: rename 'misskey' to 'Misskey' in config
* feat: Misskey 适配器添加聊天消息响应功能,重构接收和发送逻辑为 Websockets 处理
* fix: 增强 Misskey WebSocket 消息日志输出
* refactor: 优化 Misskey 适配器的消息处理和日志输出
* fix: 增强 Misskey WebSocket 重连接逻辑
* feat: 增强 Misskey 适配器的消息处理,支持房间消息和相关功能,重构通用函数,清理代码重复冗余
* fix: 不屏蔽唤醒前缀对默认 LLM 的唤醒
* fix: 透传所有的群聊消息事件
* fix: 修复 message_type
* perf: 实现 send_streaming 以支援流式请求
* docs(README): update README.md
* fix: super().send(message) 被忽略
* fix: 修正 session 结构
: 作为分隔符可能会导致 umo 组装出现问题
---------
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
Co-authored-by: Soulter <905617992@qq.com >
2025-09-18 23:34:41 +08:00
anka
9d9917e45b
feat: 增加群名称识别到 system prompt, 并提供相应的配置 ( #2770 )
...
* feat🤖 : 增加群名称识别到system prompt, 并提供相应的配置
* feat: 优化实现方式, 重构AstrBotMessage, 向后兼容
* style: format
2025-09-16 10:23:08 +08:00
Soulter
7740e1e131
ci: add ci stage of code format checking ( #2750 )
...
* style: ruff format
* ci(dashboard-ci): ensure GitHub Release action only runs on push events
* ci(code-format): ruff format and ruff check
2025-09-14 18:05:58 +08:00
Soulter
2c3c3ae546
fix: 移除无用的调试日志以简化命令注册逻辑
2025-09-07 11:37:34 +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
anka
2920279c64
Fix: 修正 QQ 群成员昵称获取 ( #2626 )
...
* feat: 修正群昵称获取
* fix: 增加兜底机制
2025-09-06 19:16:57 +08:00
Zhalslar
0f8b550d68
fix: aiocqhttp优先使用session_id发送消息 ( #2623 )
...
* fix: aiocqhttp优先使用session_id发送消息
当前aiocqhttp依赖raw_message来发送消息,raw_message为空时也无法有效回退到用group_id或user_id来发送,更符合逻辑的应该:优先使用session_id(group_id or user_id),raw_message兜底
* Update aiocqhttp_message_event.py
* fix: validate session_id as integer and improve send_message docstring
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-09-04 11:34:40 +08:00
Soulter
8f4625f53b
Merge remote-tracking branch 'origin/master' into releases/4.0.0
2025-08-31 20:37:53 +08:00
xiewoc
5872f1e017
feat: 支持官方 QQ 接口发送语音 ( #2525 )
...
* Update dingtalk_event.py
* Add files via upload
* Add files via upload
* Update qqofficial_platform_adapter.py
* Add files via upload
* chore: clean comments
* chore: clean code
---------
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
2025-08-26 20:40:59 +08:00
Soulter
64bcbc9fc0
refactor: 重构 SharedPreference 类并采用数据库存储替换 json 存储 ( #2482 )
2025-08-18 19:12:26 +08:00
Soulter
f0359467f1
chore: remove adapters of wechat personal account
2025-07-23 10:50:43 +08:00
Soulter
bd270aed68
fix: handle event construction errors in message reply processing
2025-07-20 22:52:14 +08:00
Soulter
5c60dbe2b1
fix: 修复 WebChat 下可能消息错位的问题
2025-07-10 16:52:16 +08:00
Soulter
88f130014c
perf: streamline message dispatching logic in AiocqhttpMessageEvent
2025-07-09 12:10:18 +08:00
Soulter
6f6a5b565c
fix: active message cannot handle forward type message properly in aiocqhttp adapter
2025-07-09 11:19:32 +08:00
Zhenyi Wang
3e4917f0a1
refactor: 重构 wechatpadpro 授权码生成并增强安全性
...
- 将 generate_auth_key 方法中的授权码提取逻辑重构为新的辅助方法 _extract_auth_key ,以提高代码的可读性和可测试性。
- 在访问 data.get('authKeys') 之前添加 isinstance(data, dict) 检查,以防止潜在的 AttributeError 。
- 移除了 auth_key 的明文日志记录,以避免敏感信息泄露。
- 在生成新密钥之前,将 self.auth_key 初始化为 None ,以避免在失败时保留旧值。
2025-07-06 16:34:55 +08:00
Zhenyi Wang
1674653a42
fix(wechatpadpro): 修复授权码提取逻辑以兼容新旧接口格式
...
新接口返回多了一层authKeys字段,同时兼容二者
2025-07-06 16:18:31 +08:00
Soulter
5f0d601baa
feat: add support for selecting provider and models in webchat
2025-07-03 10:42:20 +08:00
Soulter
6a503b82c3
refactor: web chat queue management and streamline chat route handling
2025-07-01 22:34:17 +08:00
Soulter
714d4af63d
Merge pull request #1963 from AstrBotDevs/refactor-llm-request
...
Refactor: 将 LLM Request 部分抽象为 AgentRunner 并优化多轮工具调用
2025-06-29 21:38:43 +08:00
Soulter
8203fdb4f0
fix: webchat show tool call
2025-06-29 21:35:39 +08:00
Soulter
2f941de65b
feat: 支持展示工具使用过程
2025-06-29 21:19:40 +08:00
Soulter
010f082fbb
Merge pull request #1914 from HakimYu/master
...
fix(AiocqhttpAdapter): 修复at_info.get("nick", "")的错误
2025-06-28 21:52:01 +08:00
Soulter
073cdf6d51
perf: also consider nick
2025-06-28 21:51:10 +08:00
Soulter
863a1ba8ef
Merge pull request #1922 from SXP-Simon/master
...
[feat] (discord_platform_adapter) 增加了对机器人 Role Mention 方法的响应,并且修复了控制面板上 Discord 平台无法优雅重载的 Bug
2025-06-27 14:59:37 +08:00