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
ba39c393a0
perf: enhance provider management with reload locking and logging ( #3793 )
...
- Introduced a reload lock to prevent concurrent reloads of providers.
- Added logging to indicate when a provider is disabled and when providers are being synchronized with the configuration.
- Refactored the reload method to improve clarity and maintainability.
Co-authored-by: anka <1350989414@qq.com >
2025-11-27 16:25:31 +08:00
Soulter
91f8a0ae09
fix(provider_manager): use get method for provider_type check in load_provider
2025-11-24 10:57:13 +08:00
Soulter
910ec6c695
feat: implement third party agent sub stage and refactor provider management
...
- Added `ThirdPartyAgentSubStage` to handle interactions with third-party agent runners (Dify, Coze, Dashscope).
- Refactored `star_request.py` to ensure consistent return types in the `process` method.
- Updated `stage.py` to initialize and utilize the new `AgentRequestSubStage`.
- Modified `ProviderManager` to skip loading agent runner providers.
- Removed `Dify` source implementation as it is now handled by the new agent runner structure.
- Enhanced `DifyAPIClient` to support file uploads via both file path and file data.
- Cleaned up shared preferences handling to simplify session preference retrieval.
- Updated dashboard configuration to reflect changes in agent runner provider selection.
- Refactored conversation commands to accommodate the new agent runner structure and remove direct dependencies on Dify.
- Adjusted main application logic to ensure compatibility with the new conversation management approach.
2025-11-23 20:18:51 +08:00
piexian
788ceb9721
添加阿里百炼重排序模型
2025-11-20 08:05:42 +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
Soulter
c77256ee0e
feat: add id field to ProviderMetaData and update provider manager to set provider ID
2025-11-14 12:35:30 +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
RC-CHN
bc7f01ba36
feat: add Xinference STT provider ( #3197 )
...
* feat: add Xinference STT provider
* chore:update comment in xinference_stt_provider
* style: ruff format xinference_stt_provider
* chore: remove unused import of base64 in xinference_stt_provider
* fix: enhance model initialization check in get_text method
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-10-31 01:49:35 +08:00
RC-CHN
90a65c35c1
feat: add Xinference rerank provider ( #3162 )
...
* feat:add Xinference rerank provider
* feat:add default rerank_api_key option for Xinference provider
* style: format code
* fix: refactor XinferenceRerankProvider initialization for better error handling
* fix: update XinferenceRerankProvider to use async client methods for initialization and reranking
* feat: add launch_model_if_not_running option to XinferenceRerankProvider for better control over model initialization
* chore: remove unused asyncio import from xinference_rerank_source.py
2025-10-28 18:23:55 +08:00
Soulter
33618c4a6b
feat: add dynamic embedding dimension retrieval for providers and enhance error handling
2025-10-25 16:39:11 +08:00
anka
ccb380ce06
feat: 支持接入 Coze ( #2858 )
...
* feat: 适配 coze 供应商
1. 支持文件上传
2. 支持多模态
3. 支持流式传输
4. 支持 API 端的上下文保存历史记录
5. 支持类似 dify 的 forget 接口
* style: format code
* fix: type checking error
* fix: 修复:
1. 使用coze api端的上下文时, 现在不会重复传递上下文
2. 使用 AstrBot 的上下文时, 正确处理其中的图片信息
3. 上传图片时, 提供一个非持久化的缓存避免重复上传(在解析上下文并将文件转化为file_id传递给coze api时, 如果没有缓存会导致很多的网络资源浪费)
4. 修复reset等指令不能正确重置上下文的问题
* fix: 移除某些地方多余的针对 dify 的断言, 以兼容 Coze
* style: 修改配置项显示/webchat平台对于非预期的类型的处理
* fix: 让conversation_id放到请求中正确的位置
* refactor: extract coze api client
* refactor: improve image processing logic in ProviderCoze
* chore: remove file ext guessing
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-09-27 14:23:29 +08:00
Soulter
1542ea3e03
fix: context.get_provider_by_id issue
2025-09-22 17:22:50 +08:00
Soulter
80a86f5b1b
fix: 修复 astrbot.core.star 等包下的 type checking error ( #2787 )
...
* fix: 修复 astrbot.core.star 等包下的 type checking error
* refactor: improve type checking and annotations
* chore: ruff format
2025-09-21 18:10:04 +08:00
Soulter
9ec8839efa
perf: 检查服务提供商可用性时跳过未启用的提供商
2025-09-14 21:01:32 +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
9903b028a3
Feature: 支持配置重排序模型(vLLM API 格式)用于 score 任务 ( #2496 )
...
* feat: 支持添加重排序模型(vLLM API 格式)用于 score 任务
* fix: update rerank API base URL to use localhost
2025-08-19 16:15:31 +08:00
Soulter
64bcbc9fc0
refactor: 重构 SharedPreference 类并采用数据库存储替换 json 存储 ( #2482 )
2025-08-18 19:12:26 +08:00
Soulter
0759a11a85
fix: 修复 stage 在不同 pipeline 中被重复使用的问题和 persona 相关问题
2025-08-13 13:13:04 +08:00
Soulter
cb749a38ab
chore: remove status checking in chat page
2025-08-13 10:45:50 +08:00
Soulter
369eab18ab
Refactor: 重构配置文件管理,以支持更灵活的、会话粒度的(基于 umo part)配置文件隔离 ( #2328 )
...
* refactor: 重构配置文件管理,以支持更灵活的、基于 umo part 的配置文件隔离
* Refactor: 重构配置前端页面,新增数个配置项 (#2331 )
* refactor: 重构配置前端页面,新增数个配置项
* feat: 完善多配置文件结构
* perf: 系统配置入口
* fix: normal config item list not display
* fix: 修复 axios 请求中的上下文引用问题
2025-08-13 09:18:49 +08:00
Soulter
b1e3018b6b
Improve: 引入全新的人格管理模式以及重构函数工具管理器 ( #2305 )
...
* feat: add persona management
* refactor: 重构函数工具管理器,引入 ToolSet,并让 Persona 支持绑定 Tools
* feat: 更新 Persona 工具选择逻辑,支持全选和指定工具的切换
* feat: 更新 BaseDatabase 中的 persona 方法返回类型,支持返回 None
2025-08-04 00:56:26 +08:00
Soulter
17d62a9af7
refactor: mcp server reload mechanism ( #2161 )
...
* refactor: mcp server reload mechanism
* fix: wait for client events
* fix: all other mcp servers are terminated when disable selected server
* fix: resolve type hinting issues in MCPClient and FuncCall methods
* perf: optimize mcp server loaders
* perf: improve MCP client connection testing
* perf: improve error message
* perf: clean code
* perf: increase default timeout for MCP connection and reset dialog message on close
---------
Co-authored-by: Raven95676 <Raven95676@gmail.com >
2025-07-20 15:53:13 +08:00
sheffey
7cbaed8c6c
fix: add status checking for embedding model providers
2025-07-11 18:36:40 +08:00
Soulter
622dcf8fd5
fix: 通过指令选择提供商重启后失效
2025-07-08 01:24:19 +08:00
Soulter
a55a07c5ff
remove: useless provider init params
2025-06-29 14:43:36 +08:00
Soulter
94ee8ea297
feat: 支持多轮次工具调用并且存储到数据库
...
移除了 llm tuner 适配器
2025-06-29 14:27:00 +08:00
Raven95676
c0810a674f
feat: 增加Gemini TTS API实现
2025-06-25 10:50:04 +08:00
Zhalslar
9405ba7871
feat:新增GPT_SoVIS适配器
2025-06-16 13:45:50 +08:00
Soulter
124eb04807
Merge pull request #1773 from AstrBotDevs/feat-seperate-provider
...
Feature: 支持对提供商会话隔离
2025-06-10 12:59:42 +08:00
Soulter
98800d3426
fix(typo): "seperate_provider" -> "separate_provider"
2025-06-09 23:50:31 +08:00
Soulter
a616adaac4
fix: update provider manager set_provider()
2025-06-09 23:46:44 +08:00
Soulter
ffb5605c99
fix: default tts provider selection
...
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2025-06-09 23:38:15 +08:00
Soulter
621b556856
✨ feat: 支持对提供商会话隔离
...
fixes : #1762 #602 #479
2025-06-09 23:33:00 +08:00
Soulter
a3ffecbb2a
feat: add support for gemini_embedding provider
2025-06-09 14:43:05 +08:00
Soulter
98d2e9bd27
chore: stage
2025-06-05 23:30:18 +08:00
Soulter
8288d5e51f
feat: embedding provider
2025-05-30 18:07:52 +08:00
Soulter
ca50618af6
perf: load providers when llm config is off and rebooting astrbot
...
fixes : #1466
2025-05-27 15:01:58 +08:00
YOO_koishi
0002e49bb5
Merge branch 'master' of https://github.com/AstrBotDevs/AstrBot into feat-add-volcengine-support
2025-05-18 03:20:05 +08:00
YOO_koishi
db13a60274
✨ feat: add-volcengine-tts-support
2025-05-18 03:18:36 +08:00
Li Haoyuan
3923b87f08
feat: Add MiniMax TTS API provider
2025-05-14 13:02:31 +08:00
NanoRocky
da4cd7fb65
Add Support for Azure TTS
2025-05-11 01:20:17 +08:00
anka
ba252c5356
fix: 修正一个偶然发现的命名错误()
2025-04-06 08:12:00 +00:00
Soulter
9ad4e18ac5
✨ feat: 支持阿里云百炼 TTS
2025-04-04 00:32:37 +08:00
Raven95676
fe76c41ed8
perf: 若禁用提供商,自动切换到另一个可用的提供商
2025-03-30 15:18:48 +08:00
pre-commit-ci[bot]
98e7ed6920
🎈 auto fixes by pre-commit hooks
2025-03-23 08:34:05 +00:00
Soulter
046f5e645e
✨ feat: 完善 MCP 管理和实现 WebUI MCP 相关的页面
2025-03-23 16:33:44 +08:00
Alero
d4d9a1df4c
feat:新增MCP服务支持并优化工具调用逻辑
...
引入MCP客户端支持,增加mcp_server.json配置样例,完善工具描述生成及调用逻辑以支持MCP服务工具功能。同时调整相关逻辑以区分本地工具与MCP工具的调用方式,提升扩展性和灵活性。
2025-03-15 19:47:06 +08:00
Soulter
7eea4615b6
perf: 优化了日志显示
2025-03-08 15:22:22 +08:00
Soulter
49bba9bf98
style: format codes
2025-03-03 13:30:55 +08:00