AstrBot 4.5.6__py3-none-any.whl → 4.5.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- astrbot/api/all.py +2 -1
- astrbot/api/provider/__init__.py +2 -1
- astrbot/core/agent/message.py +1 -1
- astrbot/core/agent/run_context.py +7 -2
- astrbot/core/agent/runners/base.py +7 -0
- astrbot/core/agent/runners/tool_loop_agent_runner.py +51 -3
- astrbot/core/agent/tool.py +5 -6
- astrbot/core/astr_agent_context.py +13 -8
- astrbot/core/astr_agent_hooks.py +36 -0
- astrbot/core/astr_agent_run_util.py +80 -0
- astrbot/core/astr_agent_tool_exec.py +246 -0
- astrbot/core/config/default.py +53 -7
- astrbot/core/exceptions.py +9 -0
- astrbot/core/pipeline/context.py +1 -2
- astrbot/core/pipeline/context_utils.py +0 -65
- astrbot/core/pipeline/process_stage/method/llm_request.py +239 -491
- astrbot/core/pipeline/respond/stage.py +21 -20
- astrbot/core/platform/platform_metadata.py +3 -0
- astrbot/core/platform/register.py +2 -0
- astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py +2 -0
- astrbot/core/platform/sources/dingtalk/dingtalk_adapter.py +16 -5
- astrbot/core/platform/sources/discord/discord_platform_adapter.py +4 -1
- astrbot/core/platform/sources/discord/discord_platform_event.py +16 -7
- astrbot/core/platform/sources/lark/lark_adapter.py +4 -1
- astrbot/core/platform/sources/misskey/misskey_adapter.py +4 -1
- astrbot/core/platform/sources/satori/satori_adapter.py +2 -2
- astrbot/core/platform/sources/slack/slack_adapter.py +2 -0
- astrbot/core/platform/sources/webchat/webchat_adapter.py +3 -0
- astrbot/core/platform/sources/webchat/webchat_event.py +8 -1
- astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py +4 -1
- astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py +16 -0
- astrbot/core/platform/sources/wecom/wecom_adapter.py +2 -1
- astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py +4 -1
- astrbot/core/provider/__init__.py +2 -2
- astrbot/core/provider/entities.py +40 -18
- astrbot/core/provider/func_tool_manager.py +15 -6
- astrbot/core/provider/manager.py +4 -1
- astrbot/core/provider/provider.py +7 -22
- astrbot/core/provider/register.py +2 -0
- astrbot/core/provider/sources/anthropic_source.py +0 -2
- astrbot/core/provider/sources/coze_source.py +0 -2
- astrbot/core/provider/sources/dashscope_source.py +1 -3
- astrbot/core/provider/sources/dify_source.py +0 -2
- astrbot/core/provider/sources/gemini_source.py +31 -3
- astrbot/core/provider/sources/groq_source.py +15 -0
- astrbot/core/provider/sources/openai_source.py +67 -21
- astrbot/core/provider/sources/zhipu_source.py +1 -6
- astrbot/core/star/context.py +197 -45
- astrbot/core/star/register/star_handler.py +30 -10
- astrbot/dashboard/routes/chat.py +5 -0
- {astrbot-4.5.6.dist-info → astrbot-4.5.8.dist-info}/METADATA +2 -2
- {astrbot-4.5.6.dist-info → astrbot-4.5.8.dist-info}/RECORD +55 -50
- {astrbot-4.5.6.dist-info → astrbot-4.5.8.dist-info}/WHEEL +0 -0
- {astrbot-4.5.6.dist-info → astrbot-4.5.8.dist-info}/entry_points.txt +0 -0
- {astrbot-4.5.6.dist-info → astrbot-4.5.8.dist-info}/licenses/LICENSE +0 -0
astrbot/core/star/context.py
CHANGED
|
@@ -5,6 +5,10 @@ from typing import Any
|
|
|
5
5
|
|
|
6
6
|
from deprecated import deprecated
|
|
7
7
|
|
|
8
|
+
from astrbot.core.agent.hooks import BaseAgentRunHooks
|
|
9
|
+
from astrbot.core.agent.message import Message
|
|
10
|
+
from astrbot.core.agent.runners.tool_loop_agent_runner import ToolLoopAgentRunner
|
|
11
|
+
from astrbot.core.agent.tool import ToolSet
|
|
8
12
|
from astrbot.core.astrbot_config_mgr import AstrBotConfigManager
|
|
9
13
|
from astrbot.core.config.astrbot_config import AstrBotConfig
|
|
10
14
|
from astrbot.core.conversation_mgr import ConversationManager
|
|
@@ -13,10 +17,10 @@ from astrbot.core.knowledge_base.kb_mgr import KnowledgeBaseManager
|
|
|
13
17
|
from astrbot.core.message.message_event_result import MessageChain
|
|
14
18
|
from astrbot.core.persona_mgr import PersonaManager
|
|
15
19
|
from astrbot.core.platform import Platform
|
|
16
|
-
from astrbot.core.platform.astr_message_event import MessageSesion
|
|
20
|
+
from astrbot.core.platform.astr_message_event import AstrMessageEvent, MessageSesion
|
|
17
21
|
from astrbot.core.platform.manager import PlatformManager
|
|
18
22
|
from astrbot.core.platform_message_history_mgr import PlatformMessageHistoryManager
|
|
19
|
-
from astrbot.core.provider.entities import ProviderType
|
|
23
|
+
from astrbot.core.provider.entities import LLMResponse, ProviderRequest, ProviderType
|
|
20
24
|
from astrbot.core.provider.func_tool_manager import FunctionTool, FunctionToolManager
|
|
21
25
|
from astrbot.core.provider.manager import ProviderManager
|
|
22
26
|
from astrbot.core.provider.provider import (
|
|
@@ -31,6 +35,7 @@ from astrbot.core.star.filter.platform_adapter_type import (
|
|
|
31
35
|
PlatformAdapterType,
|
|
32
36
|
)
|
|
33
37
|
|
|
38
|
+
from ..exceptions import ProviderNotFoundError
|
|
34
39
|
from .filter.command import CommandFilter
|
|
35
40
|
from .filter.regex import RegexFilter
|
|
36
41
|
from .star import StarMetadata, star_map, star_registry
|
|
@@ -75,6 +80,153 @@ class Context:
|
|
|
75
80
|
self.astrbot_config_mgr = astrbot_config_mgr
|
|
76
81
|
self.kb_manager = knowledge_base_manager
|
|
77
82
|
|
|
83
|
+
async def llm_generate(
|
|
84
|
+
self,
|
|
85
|
+
*,
|
|
86
|
+
chat_provider_id: str,
|
|
87
|
+
prompt: str | None = None,
|
|
88
|
+
image_urls: list[str] | None = None,
|
|
89
|
+
tools: ToolSet | None = None,
|
|
90
|
+
system_prompt: str | None = None,
|
|
91
|
+
contexts: list[Message] | None = None,
|
|
92
|
+
**kwargs: Any,
|
|
93
|
+
) -> LLMResponse:
|
|
94
|
+
"""Call the LLM to generate a response. The method will not automatically execute tool calls. If you want to use tool calls, please use `tool_loop_agent()`.
|
|
95
|
+
|
|
96
|
+
.. versionadded:: 4.5.7 (sdk)
|
|
97
|
+
|
|
98
|
+
Args:
|
|
99
|
+
chat_provider_id: The chat provider ID to use.
|
|
100
|
+
prompt: The prompt to send to the LLM, if `contexts` and `prompt` are both provided, `prompt` will be appended as the last user message
|
|
101
|
+
image_urls: List of image URLs to include in the prompt, if `contexts` and `prompt` are both provided, `image_urls` will be appended to the last user message
|
|
102
|
+
tools: ToolSet of tools available to the LLM
|
|
103
|
+
system_prompt: System prompt to guide the LLM's behavior, if provided, it will always insert as the first system message in the context
|
|
104
|
+
contexts: context messages for the LLM
|
|
105
|
+
**kwargs: Additional keyword arguments for LLM generation, OpenAI compatible
|
|
106
|
+
|
|
107
|
+
Raises:
|
|
108
|
+
ChatProviderNotFoundError: If the specified chat provider ID is not found
|
|
109
|
+
Exception: For other errors during LLM generation
|
|
110
|
+
"""
|
|
111
|
+
prov = await self.provider_manager.get_provider_by_id(chat_provider_id)
|
|
112
|
+
if not prov or not isinstance(prov, Provider):
|
|
113
|
+
raise ProviderNotFoundError(f"Provider {chat_provider_id} not found")
|
|
114
|
+
llm_resp = await prov.text_chat(
|
|
115
|
+
prompt=prompt,
|
|
116
|
+
image_urls=image_urls,
|
|
117
|
+
func_tool=tools,
|
|
118
|
+
contexts=contexts,
|
|
119
|
+
system_prompt=system_prompt,
|
|
120
|
+
**kwargs,
|
|
121
|
+
)
|
|
122
|
+
return llm_resp
|
|
123
|
+
|
|
124
|
+
async def tool_loop_agent(
|
|
125
|
+
self,
|
|
126
|
+
*,
|
|
127
|
+
event: AstrMessageEvent,
|
|
128
|
+
chat_provider_id: str,
|
|
129
|
+
prompt: str | None = None,
|
|
130
|
+
image_urls: list[str] | None = None,
|
|
131
|
+
tools: ToolSet | None = None,
|
|
132
|
+
system_prompt: str | None = None,
|
|
133
|
+
contexts: list[Message] | None = None,
|
|
134
|
+
max_steps: int = 30,
|
|
135
|
+
tool_call_timeout: int = 60,
|
|
136
|
+
**kwargs: Any,
|
|
137
|
+
) -> LLMResponse:
|
|
138
|
+
"""Run an agent loop that allows the LLM to call tools iteratively until a final answer is produced.
|
|
139
|
+
If you do not pass the agent_context parameter, the method will recreate a new agent context.
|
|
140
|
+
|
|
141
|
+
.. versionadded:: 4.5.7 (sdk)
|
|
142
|
+
|
|
143
|
+
Args:
|
|
144
|
+
chat_provider_id: The chat provider ID to use.
|
|
145
|
+
prompt: The prompt to send to the LLM, if `contexts` and `prompt` are both provided, `prompt` will be appended as the last user message
|
|
146
|
+
image_urls: List of image URLs to include in the prompt, if `contexts` and `prompt` are both provided, `image_urls` will be appended to the last user message
|
|
147
|
+
tools: ToolSet of tools available to the LLM
|
|
148
|
+
system_prompt: System prompt to guide the LLM's behavior, if provided, it will always insert as the first system message in the context
|
|
149
|
+
contexts: context messages for the LLM
|
|
150
|
+
max_steps: Maximum number of tool calls before stopping the loop
|
|
151
|
+
**kwargs: Additional keyword arguments. The kwargs will not be passed to the LLM directly for now, but can include:
|
|
152
|
+
agent_hooks: BaseAgentRunHooks[AstrAgentContext] - hooks to run during agent execution
|
|
153
|
+
agent_context: AstrAgentContext - context to use for the agent
|
|
154
|
+
|
|
155
|
+
Returns:
|
|
156
|
+
The final LLMResponse after tool calls are completed.
|
|
157
|
+
|
|
158
|
+
Raises:
|
|
159
|
+
ChatProviderNotFoundError: If the specified chat provider ID is not found
|
|
160
|
+
Exception: For other errors during LLM generation
|
|
161
|
+
"""
|
|
162
|
+
# Import here to avoid circular imports
|
|
163
|
+
from astrbot.core.astr_agent_context import (
|
|
164
|
+
AgentContextWrapper,
|
|
165
|
+
AstrAgentContext,
|
|
166
|
+
)
|
|
167
|
+
from astrbot.core.astr_agent_tool_exec import FunctionToolExecutor
|
|
168
|
+
|
|
169
|
+
prov = await self.provider_manager.get_provider_by_id(chat_provider_id)
|
|
170
|
+
if not prov or not isinstance(prov, Provider):
|
|
171
|
+
raise ProviderNotFoundError(f"Provider {chat_provider_id} not found")
|
|
172
|
+
|
|
173
|
+
agent_hooks = kwargs.get("agent_hooks") or BaseAgentRunHooks[AstrAgentContext]()
|
|
174
|
+
agent_context = kwargs.get("agent_context")
|
|
175
|
+
|
|
176
|
+
context_ = []
|
|
177
|
+
for msg in contexts or []:
|
|
178
|
+
if isinstance(msg, Message):
|
|
179
|
+
context_.append(msg.model_dump())
|
|
180
|
+
else:
|
|
181
|
+
context_.append(msg)
|
|
182
|
+
|
|
183
|
+
request = ProviderRequest(
|
|
184
|
+
prompt=prompt,
|
|
185
|
+
image_urls=image_urls or [],
|
|
186
|
+
func_tool=tools,
|
|
187
|
+
contexts=context_,
|
|
188
|
+
system_prompt=system_prompt or "",
|
|
189
|
+
)
|
|
190
|
+
if agent_context is None:
|
|
191
|
+
agent_context = AstrAgentContext(
|
|
192
|
+
context=self,
|
|
193
|
+
event=event,
|
|
194
|
+
)
|
|
195
|
+
agent_runner = ToolLoopAgentRunner()
|
|
196
|
+
tool_executor = FunctionToolExecutor()
|
|
197
|
+
await agent_runner.reset(
|
|
198
|
+
provider=prov,
|
|
199
|
+
request=request,
|
|
200
|
+
run_context=AgentContextWrapper(
|
|
201
|
+
context=agent_context,
|
|
202
|
+
tool_call_timeout=tool_call_timeout,
|
|
203
|
+
),
|
|
204
|
+
tool_executor=tool_executor,
|
|
205
|
+
agent_hooks=agent_hooks,
|
|
206
|
+
streaming=kwargs.get("stream", False),
|
|
207
|
+
)
|
|
208
|
+
async for _ in agent_runner.step_until_done(max_steps):
|
|
209
|
+
pass
|
|
210
|
+
llm_resp = agent_runner.get_final_llm_resp()
|
|
211
|
+
if not llm_resp:
|
|
212
|
+
raise Exception("Agent did not produce a final LLM response")
|
|
213
|
+
return llm_resp
|
|
214
|
+
|
|
215
|
+
async def get_current_chat_provider_id(self, umo: str) -> str:
|
|
216
|
+
"""Get the ID of the currently used chat provider.
|
|
217
|
+
|
|
218
|
+
Args:
|
|
219
|
+
umo(str): unified_message_origin value, if provided and user has enabled provider session isolation, the provider preferred by that session will be used.
|
|
220
|
+
|
|
221
|
+
Raises:
|
|
222
|
+
ProviderNotFoundError: If the specified chat provider is not found
|
|
223
|
+
|
|
224
|
+
"""
|
|
225
|
+
prov = self.get_using_provider(umo)
|
|
226
|
+
if not prov:
|
|
227
|
+
raise ProviderNotFoundError("Provider not found")
|
|
228
|
+
return prov.meta().id
|
|
229
|
+
|
|
78
230
|
def get_registered_star(self, star_name: str) -> StarMetadata | None:
|
|
79
231
|
"""根据插件名获取插件的 Metadata"""
|
|
80
232
|
for star in star_registry:
|
|
@@ -107,10 +259,6 @@ class Context:
|
|
|
107
259
|
"""
|
|
108
260
|
return self.provider_manager.llm_tools.deactivate_llm_tool(name)
|
|
109
261
|
|
|
110
|
-
def register_provider(self, provider: Provider):
|
|
111
|
-
"""注册一个 LLM Provider(Chat_Completion 类型)。"""
|
|
112
|
-
self.provider_manager.provider_insts.append(provider)
|
|
113
|
-
|
|
114
262
|
def get_provider_by_id(
|
|
115
263
|
self,
|
|
116
264
|
provider_id: str,
|
|
@@ -189,45 +337,6 @@ class Context:
|
|
|
189
337
|
return self._config
|
|
190
338
|
return self.astrbot_config_mgr.get_conf(umo)
|
|
191
339
|
|
|
192
|
-
def get_db(self) -> BaseDatabase:
|
|
193
|
-
"""获取 AstrBot 数据库。"""
|
|
194
|
-
return self._db
|
|
195
|
-
|
|
196
|
-
def get_event_queue(self) -> Queue:
|
|
197
|
-
"""获取事件队列。"""
|
|
198
|
-
return self._event_queue
|
|
199
|
-
|
|
200
|
-
@deprecated(version="4.0.0", reason="Use get_platform_inst instead")
|
|
201
|
-
def get_platform(self, platform_type: PlatformAdapterType | str) -> Platform | None:
|
|
202
|
-
"""获取指定类型的平台适配器。
|
|
203
|
-
|
|
204
|
-
该方法已经过时,请使用 get_platform_inst 方法。(>= AstrBot v4.0.0)
|
|
205
|
-
"""
|
|
206
|
-
for platform in self.platform_manager.platform_insts:
|
|
207
|
-
name = platform.meta().name
|
|
208
|
-
if isinstance(platform_type, str):
|
|
209
|
-
if name == platform_type:
|
|
210
|
-
return platform
|
|
211
|
-
elif (
|
|
212
|
-
name in ADAPTER_NAME_2_TYPE
|
|
213
|
-
and ADAPTER_NAME_2_TYPE[name] & platform_type
|
|
214
|
-
):
|
|
215
|
-
return platform
|
|
216
|
-
|
|
217
|
-
def get_platform_inst(self, platform_id: str) -> Platform | None:
|
|
218
|
-
"""获取指定 ID 的平台适配器实例。
|
|
219
|
-
|
|
220
|
-
Args:
|
|
221
|
-
platform_id (str): 平台适配器的唯一标识符。你可以通过 event.get_platform_id() 获取。
|
|
222
|
-
|
|
223
|
-
Returns:
|
|
224
|
-
Platform: 平台适配器实例,如果未找到则返回 None。
|
|
225
|
-
|
|
226
|
-
"""
|
|
227
|
-
for platform in self.platform_manager.platform_insts:
|
|
228
|
-
if platform.meta().id == platform_id:
|
|
229
|
-
return platform
|
|
230
|
-
|
|
231
340
|
async def send_message(
|
|
232
341
|
self,
|
|
233
342
|
session: str | MessageSesion,
|
|
@@ -300,6 +409,49 @@ class Context:
|
|
|
300
409
|
以下的方法已经不推荐使用。请从 AstrBot 文档查看更好的注册方式。
|
|
301
410
|
"""
|
|
302
411
|
|
|
412
|
+
def get_event_queue(self) -> Queue:
|
|
413
|
+
"""获取事件队列。"""
|
|
414
|
+
return self._event_queue
|
|
415
|
+
|
|
416
|
+
@deprecated(version="4.0.0", reason="Use get_platform_inst instead")
|
|
417
|
+
def get_platform(self, platform_type: PlatformAdapterType | str) -> Platform | None:
|
|
418
|
+
"""获取指定类型的平台适配器。
|
|
419
|
+
|
|
420
|
+
该方法已经过时,请使用 get_platform_inst 方法。(>= AstrBot v4.0.0)
|
|
421
|
+
"""
|
|
422
|
+
for platform in self.platform_manager.platform_insts:
|
|
423
|
+
name = platform.meta().name
|
|
424
|
+
if isinstance(platform_type, str):
|
|
425
|
+
if name == platform_type:
|
|
426
|
+
return platform
|
|
427
|
+
elif (
|
|
428
|
+
name in ADAPTER_NAME_2_TYPE
|
|
429
|
+
and ADAPTER_NAME_2_TYPE[name] & platform_type
|
|
430
|
+
):
|
|
431
|
+
return platform
|
|
432
|
+
|
|
433
|
+
def get_platform_inst(self, platform_id: str) -> Platform | None:
|
|
434
|
+
"""获取指定 ID 的平台适配器实例。
|
|
435
|
+
|
|
436
|
+
Args:
|
|
437
|
+
platform_id (str): 平台适配器的唯一标识符。你可以通过 event.get_platform_id() 获取。
|
|
438
|
+
|
|
439
|
+
Returns:
|
|
440
|
+
Platform: 平台适配器实例,如果未找到则返回 None。
|
|
441
|
+
|
|
442
|
+
"""
|
|
443
|
+
for platform in self.platform_manager.platform_insts:
|
|
444
|
+
if platform.meta().id == platform_id:
|
|
445
|
+
return platform
|
|
446
|
+
|
|
447
|
+
def get_db(self) -> BaseDatabase:
|
|
448
|
+
"""获取 AstrBot 数据库。"""
|
|
449
|
+
return self._db
|
|
450
|
+
|
|
451
|
+
def register_provider(self, provider: Provider):
|
|
452
|
+
"""注册一个 LLM Provider(Chat_Completion 类型)。"""
|
|
453
|
+
self.provider_manager.provider_insts.append(provider)
|
|
454
|
+
|
|
303
455
|
def register_llm_tool(
|
|
304
456
|
self,
|
|
305
457
|
name: str,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import re
|
|
3
4
|
from collections.abc import Awaitable, Callable
|
|
4
5
|
from typing import Any
|
|
5
6
|
|
|
@@ -11,7 +12,7 @@ from astrbot.core.agent.handoff import HandoffTool
|
|
|
11
12
|
from astrbot.core.agent.hooks import BaseAgentRunHooks
|
|
12
13
|
from astrbot.core.agent.tool import FunctionTool
|
|
13
14
|
from astrbot.core.astr_agent_context import AstrAgentContext
|
|
14
|
-
from astrbot.core.provider.func_tool_manager import SUPPORTED_TYPES
|
|
15
|
+
from astrbot.core.provider.func_tool_manager import PY_TO_JSON_TYPE, SUPPORTED_TYPES
|
|
15
16
|
from astrbot.core.provider.register import llm_tools
|
|
16
17
|
|
|
17
18
|
from ..filter.command import CommandFilter
|
|
@@ -417,18 +418,37 @@ def register_llm_tool(name: str | None = None, **kwargs):
|
|
|
417
418
|
docstring = docstring_parser.parse(func_doc)
|
|
418
419
|
args = []
|
|
419
420
|
for arg in docstring.params:
|
|
420
|
-
|
|
421
|
+
sub_type_name = None
|
|
422
|
+
type_name = arg.type_name
|
|
423
|
+
if not type_name:
|
|
424
|
+
raise ValueError(
|
|
425
|
+
f"LLM 函数工具 {awaitable.__module__}_{llm_tool_name} 的参数 {arg.arg_name} 缺少类型注释。",
|
|
426
|
+
)
|
|
427
|
+
# parse type_name to handle cases like "list[string]"
|
|
428
|
+
match = re.match(r"(\w+)\[(\w+)\]", type_name)
|
|
429
|
+
if match:
|
|
430
|
+
type_name = match.group(1)
|
|
431
|
+
sub_type_name = match.group(2)
|
|
432
|
+
type_name = PY_TO_JSON_TYPE.get(type_name, type_name)
|
|
433
|
+
if sub_type_name:
|
|
434
|
+
sub_type_name = PY_TO_JSON_TYPE.get(sub_type_name, sub_type_name)
|
|
435
|
+
if type_name not in SUPPORTED_TYPES or (
|
|
436
|
+
sub_type_name and sub_type_name not in SUPPORTED_TYPES
|
|
437
|
+
):
|
|
421
438
|
raise ValueError(
|
|
422
439
|
f"LLM 函数工具 {awaitable.__module__}_{llm_tool_name} 不支持的参数类型:{arg.type_name}",
|
|
423
440
|
)
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
441
|
+
|
|
442
|
+
arg_json_schema = {
|
|
443
|
+
"type": type_name,
|
|
444
|
+
"name": arg.arg_name,
|
|
445
|
+
"description": arg.description,
|
|
446
|
+
}
|
|
447
|
+
if sub_type_name:
|
|
448
|
+
if type_name == "array":
|
|
449
|
+
arg_json_schema["items"] = {"type": sub_type_name}
|
|
450
|
+
args.append(arg_json_schema)
|
|
451
|
+
|
|
432
452
|
if not registering_agent:
|
|
433
453
|
doc_desc = docstring.description.strip() if docstring.description else ""
|
|
434
454
|
md = get_handler_or_create(awaitable, EventType.OnCallingFuncToolEvent)
|
astrbot/dashboard/routes/chat.py
CHANGED
|
@@ -125,6 +125,8 @@ class ChatRoute(Route):
|
|
|
125
125
|
audio_url = post_data.get("audio_url")
|
|
126
126
|
selected_provider = post_data.get("selected_provider")
|
|
127
127
|
selected_model = post_data.get("selected_model")
|
|
128
|
+
enable_streaming = post_data.get("enable_streaming", True) # 默认为 True
|
|
129
|
+
|
|
128
130
|
if not message and not image_url and not audio_url:
|
|
129
131
|
return (
|
|
130
132
|
Response()
|
|
@@ -202,6 +204,8 @@ class ChatRoute(Route):
|
|
|
202
204
|
):
|
|
203
205
|
# 追加机器人消息
|
|
204
206
|
new_his = {"type": "bot", "message": result_text}
|
|
207
|
+
if "reasoning" in result:
|
|
208
|
+
new_his["reasoning"] = result["reasoning"]
|
|
205
209
|
await self.platform_history_mgr.insert(
|
|
206
210
|
platform_id="webchat",
|
|
207
211
|
user_id=webchat_conv_id,
|
|
@@ -224,6 +228,7 @@ class ChatRoute(Route):
|
|
|
224
228
|
"audio_url": audio_url,
|
|
225
229
|
"selected_provider": selected_provider,
|
|
226
230
|
"selected_model": selected_model,
|
|
231
|
+
"enable_streaming": enable_streaming,
|
|
227
232
|
},
|
|
228
233
|
),
|
|
229
234
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: AstrBot
|
|
3
|
-
Version: 4.5.
|
|
3
|
+
Version: 4.5.8
|
|
4
4
|
Summary: Easy-to-use multi-platform LLM chatbot and development framework
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Keywords: Astrbot,Astrbot Module,Astrbot Plugin
|
|
@@ -68,7 +68,7 @@ Description-Content-Type: text/markdown
|
|
|
68
68
|
|
|
69
69
|
<div>
|
|
70
70
|
<a href="https://trendshift.io/repositories/12875" target="_blank"><img src="https://trendshift.io/api/badge/repositories/12875" alt="Soulter%2FAstrBot | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
|
71
|
-
<a href="https://hellogithub.com/repository/AstrBotDevs/AstrBot" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=d127d50cd5e54c5382328acc3bb25483&claim_uid=ZO9by7qCXgSd6Lp&t=
|
|
71
|
+
<a href="https://hellogithub.com/repository/AstrBotDevs/AstrBot" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=d127d50cd5e54c5382328acc3bb25483&claim_uid=ZO9by7qCXgSd6Lp&t=2" alt="Featured|HelloGitHub" style="width: 250px; height: 54px;" width="250" height="54" /></a>
|
|
72
72
|
</div>
|
|
73
73
|
|
|
74
74
|
<br>
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
astrbot/__init__.py,sha256=QZZ0-g1T26mH28hIq98lEHh29pW1c1GqQUyY-lBRUKI,84
|
|
2
2
|
astrbot/api/__init__.py,sha256=ec-txHoj5ytUG85VkDf5sW6eH6Wkd068-anFwO1Xaf4,568
|
|
3
|
-
astrbot/api/all.py,sha256=
|
|
3
|
+
astrbot/api/all.py,sha256=nqGqsrbRPOHWTIkyUfo61gLl10c1xWnR006d0RNB4Rc,1476
|
|
4
4
|
astrbot/api/message_components.py,sha256=4x2LXczK598y9dVbfvfQJR8-UwhPRjQ99kYw_F7ZGms,46
|
|
5
5
|
astrbot/api/event/__init__.py,sha256=w2pZepTsWEGvuBYWggdxoqx2Y3k3R5haCeuUgizs0Wk,368
|
|
6
6
|
astrbot/api/event/filter/__init__.py,sha256=OTGVKQWw2FtPULMTgukw5ZkpliNr4sNf-QfRpsKrZyA,2055
|
|
7
7
|
astrbot/api/platform/__init__.py,sha256=HXvAy_KLtOJspoGVgDtLa7VjIZoF6WK3Puww55yy89M,465
|
|
8
|
-
astrbot/api/provider/__init__.py,sha256=
|
|
8
|
+
astrbot/api/provider/__init__.py,sha256=mJVcon0snjn_xYirk2hntwba6ymIYYC-ZKKmxvx-jok,379
|
|
9
9
|
astrbot/api/star/__init__.py,sha256=OxgHGtWn3lEQGjb4twbpbWnRepUevPu7gxtDAkAsfhQ,250
|
|
10
10
|
astrbot/api/util/__init__.py,sha256=L1O_mFEUDk8V4lEPsT5iiNbIiOVh7HbrNmitqzUWMZg,180
|
|
11
11
|
astrbot/cli/__init__.py,sha256=b5kXc-KWXgh_CEs-Gwrxdta2EjaWkLB9RgvwamG7L4g,23
|
|
@@ -20,11 +20,15 @@ astrbot/cli/utils/basic.py,sha256=-sjbBl0YfF-gt1jvkVyddBk-OWXIVpfG6JcF0DqOLZA,26
|
|
|
20
20
|
astrbot/cli/utils/plugin.py,sha256=FdLVcDHH5dBpoBhLC6iWriUomp_5ONGlWNJnOG4ZOnM,8666
|
|
21
21
|
astrbot/cli/utils/version_comparator.py,sha256=NVUmshfb5LU4a-S453rI7opqo0QtIHvlT1KUD3pdoVM,3462
|
|
22
22
|
astrbot/core/__init__.py,sha256=zsaF9IeON4NaHk_Ktr0eB7xQEFC5tUZ4UJCesC3-KHM,1220
|
|
23
|
-
astrbot/core/astr_agent_context.py,sha256=
|
|
23
|
+
astrbot/core/astr_agent_context.py,sha256=bgSbB-JgK_ncK-H2cxj-Ox0Gt_D8X4QmrgbalL9Hgzs,618
|
|
24
|
+
astrbot/core/astr_agent_hooks.py,sha256=QOMtBaamDRiylGIby5D5ApThk94Y_Dcy4gDnhPBHXKo,1073
|
|
25
|
+
astrbot/core/astr_agent_run_util.py,sha256=QQyyy649GgdcRHkdGg0N1U2yACn5O5kMj_pX2034U5U,3295
|
|
26
|
+
astrbot/core/astr_agent_tool_exec.py,sha256=jNaUEYJHJ42BT8DveBQ1YZ3lbcpq1LH3eGM6l-Lde60,8847
|
|
24
27
|
astrbot/core/astrbot_config_mgr.py,sha256=SUvusfo8Qk89eNpEmduWcXuczJ9g5TBH-VOV69ax28g,8950
|
|
25
28
|
astrbot/core/conversation_mgr.py,sha256=GsirCeMBmgxyaOb3hYNleF_11yyFyAER5PtpM3IUvIQ,15765
|
|
26
29
|
astrbot/core/core_lifecycle.py,sha256=uoRlYqg33g3XgHDXFq9uOUSOEjomezidwqiA1r8z7-Q,12603
|
|
27
30
|
astrbot/core/event_bus.py,sha256=0rABGmFd01B5q972HS_2LQ5OFxd6iPLSyM9FbPKIgcg,2540
|
|
31
|
+
astrbot/core/exceptions.py,sha256=GVCUgAjpvUHLL59MkJalFrSp_HbtliChu7XII_Px2WM,219
|
|
28
32
|
astrbot/core/file_token_service.py,sha256=8X0Qyo-NPGhtxy6IcRsJg7Z2tx_ULPf_7OKvw-KBk6o,3317
|
|
29
33
|
astrbot/core/initial_loader.py,sha256=q798G8wEti7-p3UC0y1GB3MOK-kO6z1Nt826iO5nJVA,1802
|
|
30
34
|
astrbot/core/log.py,sha256=768CcnBvuL1vTWUw9sevqvuFm3nmogJjL2kCQMLo0xE,8523
|
|
@@ -37,17 +41,17 @@ astrbot/core/agent/agent.py,sha256=wquvKo18JcsJM56dwKyFFAoGhc5qLyQaeqdZ-LlZsWQ,3
|
|
|
37
41
|
astrbot/core/agent/handoff.py,sha256=AxO0yx4Uscy0CO-3Q3fvDOfpfr3gUscLRplH7gH7-Lc,1194
|
|
38
42
|
astrbot/core/agent/hooks.py,sha256=ooe9uUz7czlVt2W7jTDwkRbI-qDrOOXWjCaXtiAkrvE,830
|
|
39
43
|
astrbot/core/agent/mcp_client.py,sha256=3N52RRlbscgLZbKwhH-lutO_cOo6ygK5cvcOQ07WGzM,9548
|
|
40
|
-
astrbot/core/agent/message.py,sha256=
|
|
44
|
+
astrbot/core/agent/message.py,sha256=YuINBqzUEHMexwiDNbZwBn7VDOUnUpITqcjmwNhtLGE,5032
|
|
41
45
|
astrbot/core/agent/response.py,sha256=ddJABXu03Uw3b-YGTvRafFLJEGa40o93pIEz_CRTb4g,261
|
|
42
|
-
astrbot/core/agent/run_context.py,sha256=
|
|
43
|
-
astrbot/core/agent/tool.py,sha256=
|
|
46
|
+
astrbot/core/agent/run_context.py,sha256=h-teucYKYi5o4oTbAsIlkaa04yn2OSNC-ahIF2n6cwE,719
|
|
47
|
+
astrbot/core/agent/tool.py,sha256=3F-zcADIJkACNljrlDJBZZCJwqhxFkfpgoKvg5v0TQM,9276
|
|
44
48
|
astrbot/core/agent/tool_executor.py,sha256=8GGgVB_JaKGVLQUG1epeL-lvKMqgfQ7mJaOPnVytnXo,438
|
|
45
49
|
astrbot/core/agent/runners/__init__.py,sha256=KwR34OKGVSQpJ_MaGVP_MX5L1SZ4oU-lv4GuMbSF5Ys,65
|
|
46
|
-
astrbot/core/agent/runners/base.py,sha256=
|
|
47
|
-
astrbot/core/agent/runners/tool_loop_agent_runner.py,sha256=
|
|
50
|
+
astrbot/core/agent/runners/base.py,sha256=5vDPiI_65ZlmVpuak-A4K2NW4uVhVD6wYRERKb81t18,1779
|
|
51
|
+
astrbot/core/agent/runners/tool_loop_agent_runner.py,sha256=1bbuYHBz7A3U68Rl-ubG_-u_l4qjVTufkotQdBrIO8M,16781
|
|
48
52
|
astrbot/core/config/__init__.py,sha256=vZjtpC7vr-IvBgSUtbS04C0wpulmCG5tPmcEP1WYE_4,172
|
|
49
53
|
astrbot/core/config/astrbot_config.py,sha256=nGyvHyR9VJH9Pk0XKYyeDFVxjwbyVb9u0lIsuvpe3fg,6276
|
|
50
|
-
astrbot/core/config/default.py,sha256
|
|
54
|
+
astrbot/core/config/default.py,sha256=RdaNP0ECr86PC4HfgJNToZ_ccNZjh1YnkCULvqS567c,135898
|
|
51
55
|
astrbot/core/db/__init__.py,sha256=XA1ootJl_SoMHG6sNUWNR5nj663JHvNF--WEM-hfd1o,8965
|
|
52
56
|
astrbot/core/db/po.py,sha256=jLrmhbtqbnjZ1r7sS0WO6SZIubZr1FH04qmD64N4Y50,7845
|
|
53
57
|
astrbot/core/db/sqlite.py,sha256=H7DOQDktJ3gRFwK0H9TFb3miJqnpx5pRFjwdTETWhWo,26520
|
|
@@ -84,8 +88,8 @@ astrbot/core/knowledge_base/retrieval/sparse_retriever.py,sha256=sOCZ9I636j3P5WG
|
|
|
84
88
|
astrbot/core/message/components.py,sha256=lQhxsfRPVMFFDdpCbyWjVN-uXyHIzDOc-3WLWoBAoL8,25526
|
|
85
89
|
astrbot/core/message/message_event_result.py,sha256=1jC6NLeO7lzcTCi2NO28057sWpTsDabICkmGsiggyhk,7204
|
|
86
90
|
astrbot/core/pipeline/__init__.py,sha256=nEepE3tnYYo0EYnzdLLyrp_k7XYg0LpQ3W6QuEeGL6k,1461
|
|
87
|
-
astrbot/core/pipeline/context.py,sha256=
|
|
88
|
-
astrbot/core/pipeline/context_utils.py,sha256=
|
|
91
|
+
astrbot/core/pipeline/context.py,sha256=jfEyX9i34XM7uqeqqK6rKRDgBXfsV9UHgRpf9Wj_hnI,505
|
|
92
|
+
astrbot/core/pipeline/context_utils.py,sha256=3kos5YRBzHnOjr_ASw-rkYVpusCa2V9tlWvnw5tqoXM,3567
|
|
89
93
|
astrbot/core/pipeline/scheduler.py,sha256=u96IOXoSpTOMj_X5z5Hnaz4Fwa8Nyl-P3qJauuqcQR0,3305
|
|
90
94
|
astrbot/core/pipeline/stage.py,sha256=hpzghbberezaBJtb2cwhY8x0xi6lZrgWfD2BYv-te1g,1350
|
|
91
95
|
astrbot/core/pipeline/content_safety_check/stage.py,sha256=4C3k9wMXirIbyDNvUazPnbMKo6u0PZqnaDX9LKVdCiU,1396
|
|
@@ -96,10 +100,10 @@ astrbot/core/pipeline/content_safety_check/strategies/strategy.py,sha256=XM2c-6a
|
|
|
96
100
|
astrbot/core/pipeline/preprocess_stage/stage.py,sha256=BFaON3u4MrQUXp0ZXETU5MIvN_w0p0KJDNc9D7Y3qsY,4202
|
|
97
101
|
astrbot/core/pipeline/process_stage/stage.py,sha256=yd1CpHbGzmLn-2C2QwvyAHa9WhsF7QKEqb_ojl6HJ6I,2679
|
|
98
102
|
astrbot/core/pipeline/process_stage/utils.py,sha256=EPooTG8hs4uB8I8lMtRi23BkDjMu-7eM07v3O305po4,2593
|
|
99
|
-
astrbot/core/pipeline/process_stage/method/llm_request.py,sha256=
|
|
103
|
+
astrbot/core/pipeline/process_stage/method/llm_request.py,sha256=9H4cBgYCPDEqCNHPWVI8AHUd7WJnmSh-16-uY4-TH0w,18985
|
|
100
104
|
astrbot/core/pipeline/process_stage/method/star_request.py,sha256=cbZO2bcS3LIsk21DLO-V7rRrZed3fOjholafAVKDrvI,2515
|
|
101
105
|
astrbot/core/pipeline/rate_limit_check/stage.py,sha256=9EVJ0zYtxATFsj7ADyWDYcSGBRqmrMiKWp1kkD9LONI,3962
|
|
102
|
-
astrbot/core/pipeline/respond/stage.py,sha256
|
|
106
|
+
astrbot/core/pipeline/respond/stage.py,sha256=im_UrME-g-YOk9TnrDFzFeYIvzZsGBy9BDCAp5PXuNM,10738
|
|
103
107
|
astrbot/core/pipeline/result_decorate/stage.py,sha256=t_UJ4uC3GQtgbO6MUkDClfLJcU5Z_8oe1hDjGHrTQUM,14053
|
|
104
108
|
astrbot/core/pipeline/session_status_check/stage.py,sha256=cFp6MMdFzeURjmW5LCrzsTGD_hnJN5jhDh_zoPbnFAw,1291
|
|
105
109
|
astrbot/core/pipeline/waking_check/stage.py,sha256=V1xr7aGcYh8JoSNnR86_YAA2XZTJfjp2HKmYVM4tCLs,8280
|
|
@@ -111,19 +115,19 @@ astrbot/core/platform/manager.py,sha256=BMIVCP9Ymz4tpxiyTHia4JNQIuJvjyFsgMMWxmKF
|
|
|
111
115
|
astrbot/core/platform/message_session.py,sha256=AGI-fAyish5VYfIQf0dg2J3HZbiYPzpPMdAwBODzc1M,1089
|
|
112
116
|
astrbot/core/platform/message_type.py,sha256=uGn5KN8B_7b9F5nFTpvLAXRlXx2VFHP3JmJjN8cC7fg,261
|
|
113
117
|
astrbot/core/platform/platform.py,sha256=UETCazEPfEfQq0utZSMOIKcgIvQ3XbKv2yldwvte0IA,1694
|
|
114
|
-
astrbot/core/platform/platform_metadata.py,sha256=
|
|
115
|
-
astrbot/core/platform/register.py,sha256=
|
|
118
|
+
astrbot/core/platform/platform_metadata.py,sha256=b10aFNvC9HFYBJbedlaUxerLUyeVAOqvVksh2yE-s-M,707
|
|
119
|
+
astrbot/core/platform/register.py,sha256=KiAMpiuEP6H5RwR9ItOgQEth02urvasKhObjiy5X-Hc,1956
|
|
116
120
|
astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py,sha256=wuHJZu_Q86KQ83vaj_V-t3u5P7JIBURNtnFmYfCU4wM,8080
|
|
117
|
-
astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py,sha256=
|
|
118
|
-
astrbot/core/platform/sources/dingtalk/dingtalk_adapter.py,sha256=
|
|
121
|
+
astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py,sha256=jfvff0MhNcBgOJ6tlGMV7unxWzteFMwpVVKFAG72cjQ,17054
|
|
122
|
+
astrbot/core/platform/sources/dingtalk/dingtalk_adapter.py,sha256=70JxfF4IlUosYB9Y7Vg1s4-6-oAju9Z-daidByduI_8,9190
|
|
119
123
|
astrbot/core/platform/sources/dingtalk/dingtalk_event.py,sha256=Ph8AP03qct0dFDHKB1be0VY8Slxe9yiwqMsd7Zhpvas,2696
|
|
120
124
|
astrbot/core/platform/sources/discord/client.py,sha256=dYu9ANCMeI9nY1K2FRquPOwTe1xLWHuVYslSLXoXNkY,4622
|
|
121
125
|
astrbot/core/platform/sources/discord/components.py,sha256=sh0vvqKcO1a293XNApcA-olunPTHbVWFauq-Nwvj-o4,3957
|
|
122
|
-
astrbot/core/platform/sources/discord/discord_platform_adapter.py,sha256=
|
|
123
|
-
astrbot/core/platform/sources/discord/discord_platform_event.py,sha256=
|
|
124
|
-
astrbot/core/platform/sources/lark/lark_adapter.py,sha256=
|
|
126
|
+
astrbot/core/platform/sources/discord/discord_platform_adapter.py,sha256=RrubMAyNLG-ee3yBnByW-DDx029keHGsB52gl7plysg,18594
|
|
127
|
+
astrbot/core/platform/sources/discord/discord_platform_event.py,sha256=u6OE7TTW1VTqaWcd0t7uvwwttZk1qWkGGU9ycftu-UQ,12594
|
|
128
|
+
astrbot/core/platform/sources/lark/lark_adapter.py,sha256=UX9zPLHfKqwPDYtj0tuWFtUe0rKazF3qyQYwki2q3vE,8336
|
|
125
129
|
astrbot/core/platform/sources/lark/lark_event.py,sha256=bK6575i7SnkkKeYfegcod3Z_eo0fLoOzFzi53UbSDww,5198
|
|
126
|
-
astrbot/core/platform/sources/misskey/misskey_adapter.py,sha256=
|
|
130
|
+
astrbot/core/platform/sources/misskey/misskey_adapter.py,sha256=Z6L2VdOytdH-UPUWuNPnjhOsGzEGmY7_xGwQF-EcN0c,29669
|
|
127
131
|
astrbot/core/platform/sources/misskey/misskey_api.py,sha256=YlE1zxHs0dPWJVuVsWR0Lr0d9TPQmnTwsLCQKI4p6Gk,35905
|
|
128
132
|
astrbot/core/platform/sources/misskey/misskey_event.py,sha256=2PYSU9arxzbS71jz5D__3maFFNKqxYZiGmXtLuC_aAc,6550
|
|
129
133
|
astrbot/core/platform/sources/misskey/misskey_utils.py,sha256=KEzX-_5-EfzKmLdcrZyQiUR09NHXDT0A6v3DrDp3fyk,17859
|
|
@@ -132,20 +136,20 @@ astrbot/core/platform/sources/qqofficial/qqofficial_platform_adapter.py,sha256=i
|
|
|
132
136
|
astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_adapter.py,sha256=ZUb5Td6kaaxCwrnBikZE_pjBU1vMvJE7JH8AKqtZMlQ,4507
|
|
133
137
|
astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_event.py,sha256=vqifw9itvrcr7sV9cL0T19qLZ7I9CWORi4oUBgZrOqc,501
|
|
134
138
|
astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py,sha256=dYhnveFWSIpFsphS7Hec70pOenPBVMJOFDTzQXK1NFw,3853
|
|
135
|
-
astrbot/core/platform/sources/satori/satori_adapter.py,sha256=
|
|
139
|
+
astrbot/core/platform/sources/satori/satori_adapter.py,sha256=iNSDAas3ektZBDqy6tc212Ve50RjdWlSNNb0gQKKhU0,28064
|
|
136
140
|
astrbot/core/platform/sources/satori/satori_event.py,sha256=agI9FYUwBZM2CnxPANxDOw9vnRqPQSCGZi6UK5UVrdA,16183
|
|
137
141
|
astrbot/core/platform/sources/slack/client.py,sha256=opkwKKwgaLxw3EpYILLAf7gzzC6KwpiUoq3TOewolh4,5633
|
|
138
|
-
astrbot/core/platform/sources/slack/slack_adapter.py,sha256=
|
|
142
|
+
astrbot/core/platform/sources/slack/slack_adapter.py,sha256=LUZY-A-fVD8y5mG_86nQJjgKZ2j8k5uiue1B5vqjBhg,16134
|
|
139
143
|
astrbot/core/platform/sources/slack/slack_event.py,sha256=qtd7AkYDrX5-rcf6-N3QX6Lm3YzvO8ipsUL8iFF6T_U,8926
|
|
140
144
|
astrbot/core/platform/sources/telegram/tg_adapter.py,sha256=5eGR5PK1wUSDIBZQw7IW7JpfNfjSB3zldpVDpMs7zUo,16076
|
|
141
145
|
astrbot/core/platform/sources/telegram/tg_event.py,sha256=Xh8IDfSLtjJqzyiZVX05LKT8adm7Q2YPUHHKIZ-rpI4,11641
|
|
142
|
-
astrbot/core/platform/sources/webchat/webchat_adapter.py,sha256=
|
|
143
|
-
astrbot/core/platform/sources/webchat/webchat_event.py,sha256=
|
|
146
|
+
astrbot/core/platform/sources/webchat/webchat_adapter.py,sha256=cQAkwFWyVsk5BLdQ7d82APfSea2q-6AZWldq9Q2FayU,6163
|
|
147
|
+
astrbot/core/platform/sources/webchat/webchat_event.py,sha256=iXkHFugb0ecwWjuKgoiiqjFA7nM8iWgVwbb7HWlLKcY,5720
|
|
144
148
|
astrbot/core/platform/sources/webchat/webchat_queue_mgr.py,sha256=2P0hQRNn7tMs9O6MLQ1GkJSSKz7R5Q8k_0JxEltSKLM,1364
|
|
145
|
-
astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py,sha256=
|
|
146
|
-
astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py,sha256=
|
|
149
|
+
astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py,sha256=O4qgp41_tfSCvNh7O1jxbvEAKMScxbREcSn5qxRsthk,40708
|
|
150
|
+
astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py,sha256=pdvKtziixnvNrrk3fhJtUZrfX33LY0X9bV5GPmn4ITA,6574
|
|
147
151
|
astrbot/core/platform/sources/wechatpadpro/xml_data_parser.py,sha256=n1PZRcNjGN_w1-z2CXcIMZL7oSTprteQpPbJ992Lsu4,6306
|
|
148
|
-
astrbot/core/platform/sources/wecom/wecom_adapter.py,sha256=
|
|
152
|
+
astrbot/core/platform/sources/wecom/wecom_adapter.py,sha256=aZf5bh78lXuC5fRQk27lzHxlvHRAYceyA-Cqbm3L2wo,13898
|
|
149
153
|
astrbot/core/platform/sources/wecom/wecom_event.py,sha256=sH_6Ix6mtW9ePkk3SqMDlM7Y8Q2SrjV4IIZPkJfK10k,9175
|
|
150
154
|
astrbot/core/platform/sources/wecom/wecom_kf.py,sha256=eenwV2hmH0j70OfYFsnAw9vukwHYmfF-YTzCym-6JE0,10820
|
|
151
155
|
astrbot/core/platform/sources/wecom/wecom_kf_message.py,sha256=__9zR3FCgggRDDwaEUsgfUgvhCtkUE5Uoi4jAuJrVUo,5934
|
|
@@ -158,32 +162,33 @@ astrbot/core/platform/sources/wecom_ai_bot/wecomai_event.py,sha256=Bd3-dRPKBOTA2
|
|
|
158
162
|
astrbot/core/platform/sources/wecom_ai_bot/wecomai_queue_mgr.py,sha256=fv06hqscDE5EQvXl8P3aAORppZ8RL4XcAouxmJz8o-g,4658
|
|
159
163
|
astrbot/core/platform/sources/wecom_ai_bot/wecomai_server.py,sha256=hLhWV26Wa2HGBtw-eSKGq0LAeCS7HNNDnSRm7OuHJSQ,5280
|
|
160
164
|
astrbot/core/platform/sources/wecom_ai_bot/wecomai_utils.py,sha256=6vTeKwrt-zXsA0Lt_7GFk7_J0IXWX-ErVvwK9VC0EDM,5427
|
|
161
|
-
astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py,sha256=
|
|
165
|
+
astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py,sha256=IbOUuf9BnFjG8Dt18xNB3jKXxg09QspDBRThBHtQxtY,10659
|
|
162
166
|
astrbot/core/platform/sources/weixin_official_account/weixin_offacc_event.py,sha256=_DYWTs5u3MoOKt-7eIH7fGHIpvxae2qckkceH9X9DCQ,7100
|
|
163
|
-
astrbot/core/provider/__init__.py,sha256=
|
|
167
|
+
astrbot/core/provider/__init__.py,sha256=0NVyKtTapnrUy0lkXVYWyM5KetwtDwXmTwBzqLG0MA4,142
|
|
164
168
|
astrbot/core/provider/entites.py,sha256=0eYiQ-xttqFTb3WZR2b1oemdZy3d5sevELvj9FixJtE,388
|
|
165
|
-
astrbot/core/provider/entities.py,sha256=
|
|
166
|
-
astrbot/core/provider/func_tool_manager.py,sha256=
|
|
167
|
-
astrbot/core/provider/manager.py,sha256=
|
|
168
|
-
astrbot/core/provider/provider.py,sha256=
|
|
169
|
-
astrbot/core/provider/register.py,sha256=
|
|
170
|
-
astrbot/core/provider/sources/anthropic_source.py,sha256=
|
|
169
|
+
astrbot/core/provider/entities.py,sha256=LY0VxEXuLDwUxWJb8Gae2qjmT3UCUKNduE0qoM3ZboU,11718
|
|
170
|
+
astrbot/core/provider/func_tool_manager.py,sha256=wJ0wFMofTV8atFKe9kGwJYlxFpAhY-g8rdsC1fa-Vrg,21014
|
|
171
|
+
astrbot/core/provider/manager.py,sha256=OzoEniML-bxbIO1GG2IMnzVDZ-IlVGQCbBFB0MB4zZw,22592
|
|
172
|
+
astrbot/core/provider/provider.py,sha256=bMJBBZzNwHhVv8dEiO1tNUclzxS78Yb01vUbceHZXKA,10680
|
|
173
|
+
astrbot/core/provider/register.py,sha256=0WMYrT9vbRjeq-72HD0oRT45kJmeKA96UgSItpTJbX8,1904
|
|
174
|
+
astrbot/core/provider/sources/anthropic_source.py,sha256=kRbJk0K-li84mWwapxYezGlkEF03Lg1brZDZnjmGrQ8,15584
|
|
171
175
|
astrbot/core/provider/sources/azure_tts_source.py,sha256=uhPr4Dja6XANesAmrfZiuINNIlXej0NV7Goo8ahMm14,9387
|
|
172
176
|
astrbot/core/provider/sources/coze_api_client.py,sha256=0k8pQsFsbjKdF-jkY91qZWsC8YSaSmwC98TMTK-zqw0,10853
|
|
173
|
-
astrbot/core/provider/sources/coze_source.py,sha256=
|
|
174
|
-
astrbot/core/provider/sources/dashscope_source.py,sha256=
|
|
177
|
+
astrbot/core/provider/sources/coze_source.py,sha256=FXqhRUOjKXwBsUBfVXBlLm5pM--IQpzzFViIUFltX1M,25341
|
|
178
|
+
astrbot/core/provider/sources/dashscope_source.py,sha256=DlvP4tkBLZGHl77LvWbjdtfNO0spr6y0nypPzwKN-n8,7369
|
|
175
179
|
astrbot/core/provider/sources/dashscope_tts.py,sha256=GMslnWn9e30c78qHhnMioJrG60nAwSWo3nXsQmISJno,5603
|
|
176
|
-
astrbot/core/provider/sources/dify_source.py,sha256=
|
|
180
|
+
astrbot/core/provider/sources/dify_source.py,sha256=w6xG9oUlhlMivYjfAufRxIj8xijman3SRyk74VdwPxE,11341
|
|
177
181
|
astrbot/core/provider/sources/edge_tts_source.py,sha256=7C04B0voPmQdeaB4u-U5Lip6qN3UAyB_yNPBYHLaxo8,4680
|
|
178
182
|
astrbot/core/provider/sources/fishaudio_tts_api_source.py,sha256=P2N_dkwxx3Kk1uWae1TT4yJShj6i0Q_jTpWT1V_dLQ0,5484
|
|
179
183
|
astrbot/core/provider/sources/gemini_embedding_source.py,sha256=XpTqb5rlI5z34FmrdFkpvwkk9BiuyFKcpWm6xQEHpNE,2248
|
|
180
|
-
astrbot/core/provider/sources/gemini_source.py,sha256=
|
|
184
|
+
astrbot/core/provider/sources/gemini_source.py,sha256=A1VBbHFd8UFk21smt8Y2eUa35HT7dw2Fu9Ts_i-YrcU,30238
|
|
181
185
|
astrbot/core/provider/sources/gemini_tts_source.py,sha256=6LJIT2aTjoZaMszjYRzDu38prsO9G5Xg7SzJmQb2TzE,2880
|
|
186
|
+
astrbot/core/provider/sources/groq_source.py,sha256=NqmiQn37mrMsaTyGX25eNzMpIgkCifY-5TJO8DFzHaA,456
|
|
182
187
|
astrbot/core/provider/sources/gsv_selfhosted_source.py,sha256=RYQgwCc67N7RWPaODN4sSLJZn6o5gpgk_jF_KaRnD0M,5942
|
|
183
188
|
astrbot/core/provider/sources/gsvi_tts_source.py,sha256=nGGctfkzrAeTofAvB2b_VNTYHW44SzyO12B-mBWb1rY,2011
|
|
184
189
|
astrbot/core/provider/sources/minimax_tts_api_source.py,sha256=qMN6iBR2V145d5BAIkjAa2pVrH5eZOHeWnd8yhemOCY,5837
|
|
185
190
|
astrbot/core/provider/sources/openai_embedding_source.py,sha256=26hjOYrQ8eHHPi8wybCubtsY-UOOfGx0qcCxQ3BvjIE,1616
|
|
186
|
-
astrbot/core/provider/sources/openai_source.py,sha256=
|
|
191
|
+
astrbot/core/provider/sources/openai_source.py,sha256=4GvBLMv5aBzn0hBZCjORLCDROsV4PcwCK0K5XLBITik,24654
|
|
187
192
|
astrbot/core/provider/sources/openai_tts_api_source.py,sha256=DVviGQdBpCk6lW3LjnJHzwZr9wGkXRDNwfoQ3FYFVcs,1667
|
|
188
193
|
astrbot/core/provider/sources/sensevoice_selfhosted_source.py,sha256=aG7m3HvqSdcTRJcncqFNhyz9D-TVIdjiCbGFQPhDcdM,3819
|
|
189
194
|
astrbot/core/provider/sources/vllm_rerank_source.py,sha256=5mZwtOUG1w7AfqQR7AYznxL_L0HVOKq6_T2G0CrNkZg,2316
|
|
@@ -192,11 +197,11 @@ astrbot/core/provider/sources/whisper_api_source.py,sha256=elK7TIdq55qixf6hmwj8Q
|
|
|
192
197
|
astrbot/core/provider/sources/whisper_selfhosted_source.py,sha256=5R7Xwg3gZF6TW-D8WSivd4ZCG6RcLlv7gcHYqxzojEw,2640
|
|
193
198
|
astrbot/core/provider/sources/xinference_rerank_source.py,sha256=X3Jm3zB7cGUedsYasDJjiNpOAVleB-5LR4j4DqALd1A,4428
|
|
194
199
|
astrbot/core/provider/sources/xinference_stt_provider.py,sha256=DPEc7cVo2KXKGIgb8IXKagPH9qpNAdp5gx5PAink0j4,7731
|
|
195
|
-
astrbot/core/provider/sources/zhipu_source.py,sha256=
|
|
200
|
+
astrbot/core/provider/sources/zhipu_source.py,sha256=oOCPXGsR9PLWOuu3h8RSVNRw1Qy2Se6dwmeFR3zk3GM,612
|
|
196
201
|
astrbot/core/star/README.md,sha256=LXxqxp3xv_oejO8ocBPOrbmLe0WB4feu43fYDNddHTQ,161
|
|
197
202
|
astrbot/core/star/__init__.py,sha256=ccAN4tGmHjKmMIuL4L0KTFpPz6_uf26yhCj0XQBf2do,2112
|
|
198
203
|
astrbot/core/star/config.py,sha256=FgrBz_fUrBU0-9BxD8enX-xGNGVbFxst3UT10sboYNA,3531
|
|
199
|
-
astrbot/core/star/context.py,sha256=
|
|
204
|
+
astrbot/core/star/context.py,sha256=a4jeHhQSx5NpzOmO1kPR5QxeOJEoivx9bsncou_-Wn4,21036
|
|
200
205
|
astrbot/core/star/session_llm_manager.py,sha256=S6vYYgW8Y3igIvrqYJZhFlzFcsFKXMehSmwEmgLG9mk,8776
|
|
201
206
|
astrbot/core/star/session_plugin_manager.py,sha256=bu_YeO-YldfribTz987ZBR-0NAhVT1nqlQE1ExX5vwg,5423
|
|
202
207
|
astrbot/core/star/star.py,sha256=Wkf81teNZ27JE_JrENuP0SrpFc2uFYRxHQsWo8R9-No,1826
|
|
@@ -214,7 +219,7 @@ astrbot/core/star/filter/platform_adapter_type.py,sha256=90h4g9xB1IfC8ws53M-pjeP
|
|
|
214
219
|
astrbot/core/star/filter/regex.py,sha256=GHB5YvBMLFbOOiFVUnEHaqHTER7sU1pAVrAcXdwBtkQ,545
|
|
215
220
|
astrbot/core/star/register/__init__.py,sha256=Z2dbNKCsh5wzh9a6XFvb_x-9wO5SvowynJAd8kpWEJU,992
|
|
216
221
|
astrbot/core/star/register/star.py,sha256=Eto7nD_HFuCNt-VJnXUXKv2D7a5TQ6qkhzLJ_itXo_8,1920
|
|
217
|
-
astrbot/core/star/register/star_handler.py,sha256=
|
|
222
|
+
astrbot/core/star/register/star_handler.py,sha256=kCIQVzI5EBWVAugkEsXHLTOoOQp3r5uTLYc4sPfdZls,17483
|
|
218
223
|
astrbot/core/utils/astrbot_path.py,sha256=tQFD55EFwGbpR1tpoJADpdElPS5iTFAZVLIxCVvKypY,1213
|
|
219
224
|
astrbot/core/utils/command_parser.py,sha256=Cwd4zzyKEoC-er0a-9WZ5n2g4F8eH9p6BHxD96gjaVM,617
|
|
220
225
|
astrbot/core/utils/dify_api_client.py,sha256=nQRgDv40rNxzIzOJdURHRHOjfIvXQJxw89OHRK8lPug,5067
|
|
@@ -239,7 +244,7 @@ astrbot/dashboard/server.py,sha256=HiuqrnMKWOER8j6h1ZAIAONUb3DwJCEjXl7LkLFXMiI,9
|
|
|
239
244
|
astrbot/dashboard/utils.py,sha256=KrAv0lnPaVR0bx8yevT1CLGbSNsJizlfkKkPEtVVANI,5355
|
|
240
245
|
astrbot/dashboard/routes/__init__.py,sha256=IKg0EzasXsd-OleSixE54Ul5wQcBeMHzVwhhjMFZ2dE,783
|
|
241
246
|
astrbot/dashboard/routes/auth.py,sha256=rYkvt3MpCY9BhWjG0DUoX3YaBkJT1Id7M2pKqTmXbvo,2946
|
|
242
|
-
astrbot/dashboard/routes/chat.py,sha256=
|
|
247
|
+
astrbot/dashboard/routes/chat.py,sha256=ME9CjZ1tKGfGYyQ719sP0hQFVcLkCJHAYDrKjonhPcU,13563
|
|
243
248
|
astrbot/dashboard/routes/config.py,sha256=DHWd56JZrtXdxuf80DIfmyFYmeOcZ6mC8aCKZc6QacA,40070
|
|
244
249
|
astrbot/dashboard/routes/conversation.py,sha256=sFHgkpNDdTR9qkSOC_JfSjzkfTuv63iaMxvh52wQUzM,10773
|
|
245
250
|
astrbot/dashboard/routes/file.py,sha256=gULvXP9PnVOQlyv_PCEzZQE5ptnGQEjFPvwOLxdVgb4,708
|
|
@@ -254,8 +259,8 @@ astrbot/dashboard/routes/static_file.py,sha256=7KnNcOb1BVqSTft114LhGsDkfg69X2jHE
|
|
|
254
259
|
astrbot/dashboard/routes/t2i.py,sha256=F6smxdL99MF7cRw3hqS6-2GErw8Zhsv0V0mfBUeEk-c,8931
|
|
255
260
|
astrbot/dashboard/routes/tools.py,sha256=YsVFrwVIhxAI-Ikme7YPrHVnPVTkJ1IaH7n6ciREjdE,14663
|
|
256
261
|
astrbot/dashboard/routes/update.py,sha256=qXiqQ_dbqRVftOzGgCQrvK8-qopVK6zKhhVVJ9SK26U,6648
|
|
257
|
-
astrbot-4.5.
|
|
258
|
-
astrbot-4.5.
|
|
259
|
-
astrbot-4.5.
|
|
260
|
-
astrbot-4.5.
|
|
261
|
-
astrbot-4.5.
|
|
262
|
+
astrbot-4.5.8.dist-info/METADATA,sha256=tNASBEgbAu1-hgtG2NFcsbaLS9vqHYv_GS8a6rU4p3Q,10029
|
|
263
|
+
astrbot-4.5.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
264
|
+
astrbot-4.5.8.dist-info/entry_points.txt,sha256=OEF09YmhBWYuViXrvTLLpstF4ccmNwDL8r7nnFD0pfI,53
|
|
265
|
+
astrbot-4.5.8.dist-info/licenses/LICENSE,sha256=zPfQj5Mq8-gThIiBcxETr7t8gND9bZWOjTGQAr80TQI,34500
|
|
266
|
+
astrbot-4.5.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|