From 821c10d176caccbf37aed70c653fbe5b2b13e562 Mon Sep 17 00:00:00 2001 From: whatevertogo Date: Tue, 17 Mar 2026 13:47:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=BC=BA=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E5=99=A8=E7=B1=BB=E5=9E=8B=E5=92=8C=E8=83=BD=E5=8A=9B=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E6=96=87=E6=A1=A3=EF=BC=8C=E6=B7=BB=E5=8A=A0=20Provid?= =?UTF-8?q?er=20=E5=92=8C=E4=BC=9A=E8=AF=9D=E7=AE=A1=E7=90=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-new/astrbot_sdk/filters.py | 6 ++-- .../astrbot_sdk/runtime/capability_router.py | 35 +++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src-new/astrbot_sdk/filters.py b/src-new/astrbot_sdk/filters.py index e0635adf3..e0f36e7fc 100644 --- a/src-new/astrbot_sdk/filters.py +++ b/src-new/astrbot_sdk/filters.py @@ -20,7 +20,7 @@ from __future__ import annotations import inspect from collections.abc import Callable from dataclasses import dataclass, field -from typing import Any +from typing import Any, Literal, TypeAlias from .decorators import append_filter_meta from .protocol.descriptors import ( @@ -31,6 +31,8 @@ from .protocol.descriptors import ( PlatformFilterSpec, ) +FilterOperator: TypeAlias = Literal["and", "or"] + @dataclass(slots=True) class LocalFilterBinding: @@ -98,7 +100,7 @@ class CustomFilter(FilterBinding): @dataclass(slots=True) class CompositeFilter(FilterBinding): - operator: str + operator: FilterOperator children: list[FilterBinding] def compile(self) -> tuple[FilterSpec, list[LocalFilterBinding]]: diff --git a/src-new/astrbot_sdk/runtime/capability_router.py b/src-new/astrbot_sdk/runtime/capability_router.py index f7f450a02..eef9946a9 100644 --- a/src-new/astrbot_sdk/runtime/capability_router.py +++ b/src-new/astrbot_sdk/runtime/capability_router.py @@ -65,6 +65,19 @@ provider.embedding.get_embeddings: 批量获取向量 provider.embedding.get_dim: 获取向量维度 provider.rerank.rerank: 文档重排序 + provider.manager.set: 设置当前 Provider + provider.manager.get_by_id: 按 ID 获取 Provider 管理记录 + provider.manager.load: 运行时加载 Provider + provider.manager.terminate: 终止已加载的 Provider + provider.manager.create: 创建 Provider + provider.manager.update: 更新 Provider + provider.manager.delete: 删除 Provider + provider.manager.get_insts: 列出已加载聊天 Provider + provider.manager.watch_changes: 订阅 Provider 变更(流式) + Platform Manager: + platform.manager.get_by_id: 按 ID 获取平台管理快照 + platform.manager.clear_errors: 清除平台错误 + platform.manager.get_stats: 获取平台统计信息 LLM Tool: llm_tool.manager.get: 获取 LLM 工具状态 llm_tool.manager.activate: 激活 LLM 工具 @@ -78,11 +91,33 @@ Registry: registry.get_handlers_by_event_type: 按事件类型列出 handler 元数据 registry.get_handler_by_full_name: 按 full name 查询 handler 元数据 + Session: + session.plugin.is_enabled: 获取会话级插件开关 + session.plugin.filter_handlers: 按会话过滤 handler 元数据 + session.service.is_llm_enabled: 获取会话级 LLM 开关 + session.service.set_llm_status: 写入会话级 LLM 开关 + session.service.is_tts_enabled: 获取会话级 TTS 开关 + session.service.set_tts_status: 写入会话级 TTS 开关 Managers: persona.get / persona.list / persona.create / persona.update / persona.delete conversation.new / conversation.switch / conversation.delete conversation.get / conversation.list / conversation.update kb.get / kb.create / kb.delete + System (内部使用): + system.get_data_dir: 获取插件数据目录 + system.text_to_image: 文本转图片 + system.html_render: 渲染 HTML 模板 + system.file.register: 注册文件令牌 + system.file.handle: 解析文件令牌 + system.session_waiter.register: 注册会话等待器 + system.session_waiter.unregister: 注销会话等待器 + system.event.react: 发送事件表情回应 + system.event.send_typing: 发送输入中状态 + system.event.send_streaming: 发送事件流式消息 + system.event.send_streaming_chunk: 推送事件流式消息分片 + system.dynamic_command.register: 注册动态命令路由 + system.dynamic_command.list: 列出动态命令路由 + system.dynamic_command.remove: 移除动态命令路由 能力命名规范: - 格式: {namespace}.{action} 或 {namespace}.{sub_namespace}.{action}