AstrBot 4.9.0__py3-none-any.whl → 4.9.2__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/cli/__init__.py +1 -1
- astrbot/core/config/default.py +14 -1
- astrbot/core/config/i18n_utils.py +1 -0
- astrbot/core/pipeline/respond/stage.py +4 -0
- astrbot/core/pipeline/result_decorate/stage.py +21 -1
- astrbot/core/platform/sources/lark/lark_adapter.py +6 -1
- astrbot/core/star/__init__.py +5 -1
- astrbot/core/star/star_manager.py +12 -0
- astrbot/core/utils/plugin_kv_store.py +28 -0
- astrbot/dashboard/routes/conversation.py +91 -1
- astrbot/dashboard/routes/plugin.py +5 -1
- {astrbot-4.9.0.dist-info → astrbot-4.9.2.dist-info}/METADATA +7 -1
- {astrbot-4.9.0.dist-info → astrbot-4.9.2.dist-info}/RECORD +16 -15
- {astrbot-4.9.0.dist-info → astrbot-4.9.2.dist-info}/WHEEL +0 -0
- {astrbot-4.9.0.dist-info → astrbot-4.9.2.dist-info}/entry_points.txt +0 -0
- {astrbot-4.9.0.dist-info → astrbot-4.9.2.dist-info}/licenses/LICENSE +0 -0
astrbot/cli/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "4.9.
|
|
1
|
+
__version__ = "4.9.2"
|
astrbot/core/config/default.py
CHANGED
|
@@ -4,7 +4,7 @@ import os
|
|
|
4
4
|
|
|
5
5
|
from astrbot.core.utils.astrbot_path import get_astrbot_data_path
|
|
6
6
|
|
|
7
|
-
VERSION = "4.9.
|
|
7
|
+
VERSION = "4.9.2"
|
|
8
8
|
DB_PATH = os.path.join(get_astrbot_data_path(), "data_v4.db")
|
|
9
9
|
|
|
10
10
|
WEBHOOK_SUPPORTED_PLATFORMS = [
|
|
@@ -108,6 +108,7 @@ DEFAULT_CONFIG = {
|
|
|
108
108
|
"provider_id": "",
|
|
109
109
|
"dual_output": False,
|
|
110
110
|
"use_file_service": False,
|
|
111
|
+
"trigger_probability": 1.0,
|
|
111
112
|
},
|
|
112
113
|
"provider_ltm_settings": {
|
|
113
114
|
"group_icl_enable": False,
|
|
@@ -2209,6 +2210,9 @@ CONFIG_METADATA_2 = {
|
|
|
2209
2210
|
"use_file_service": {
|
|
2210
2211
|
"type": "bool",
|
|
2211
2212
|
},
|
|
2213
|
+
"trigger_probability": {
|
|
2214
|
+
"type": "float",
|
|
2215
|
+
},
|
|
2212
2216
|
},
|
|
2213
2217
|
},
|
|
2214
2218
|
"provider_ltm_settings": {
|
|
@@ -2419,6 +2423,14 @@ CONFIG_METADATA_3 = {
|
|
|
2419
2423
|
"provider_tts_settings.enable": True,
|
|
2420
2424
|
},
|
|
2421
2425
|
},
|
|
2426
|
+
"provider_tts_settings.trigger_probability": {
|
|
2427
|
+
"description": "TTS 触发概率",
|
|
2428
|
+
"type": "float",
|
|
2429
|
+
"slider": {"min": 0, "max": 1, "step": 0.05},
|
|
2430
|
+
"condition": {
|
|
2431
|
+
"provider_tts_settings.enable": True,
|
|
2432
|
+
},
|
|
2433
|
+
},
|
|
2422
2434
|
"provider_settings.image_caption_prompt": {
|
|
2423
2435
|
"description": "图片转述提示词",
|
|
2424
2436
|
"type": "text",
|
|
@@ -2986,6 +2998,7 @@ CONFIG_METADATA_3 = {
|
|
|
2986
2998
|
"description": "回复概率",
|
|
2987
2999
|
"type": "float",
|
|
2988
3000
|
"hint": "0.0-1.0 之间的数值",
|
|
3001
|
+
"slider": {"min": 0, "max": 1, "step": 0.05},
|
|
2989
3002
|
"condition": {
|
|
2990
3003
|
"provider_ltm_settings.active_reply.enable": True,
|
|
2991
3004
|
},
|
|
@@ -158,7 +158,11 @@ class RespondStage(Stage):
|
|
|
158
158
|
result = event.get_result()
|
|
159
159
|
if result is None:
|
|
160
160
|
return
|
|
161
|
+
if event.get_extra("_streaming_finished", False):
|
|
162
|
+
# prevent some plugin make result content type to LLM_RESULT after streaming finished, lead to send again
|
|
163
|
+
return
|
|
161
164
|
if result.result_content_type == ResultContentType.STREAMING_FINISH:
|
|
165
|
+
event.set_extra("_streaming_finished", True)
|
|
162
166
|
return
|
|
163
167
|
|
|
164
168
|
logger.info(
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import random
|
|
1
2
|
import re
|
|
2
3
|
import time
|
|
3
4
|
import traceback
|
|
@@ -42,6 +43,18 @@ class ResultDecorateStage(Stage):
|
|
|
42
43
|
"forward_threshold"
|
|
43
44
|
]
|
|
44
45
|
|
|
46
|
+
trigger_probability = ctx.astrbot_config["provider_tts_settings"].get(
|
|
47
|
+
"trigger_probability",
|
|
48
|
+
1,
|
|
49
|
+
)
|
|
50
|
+
try:
|
|
51
|
+
self.tts_trigger_probability = max(
|
|
52
|
+
0.0,
|
|
53
|
+
min(float(trigger_probability), 1.0),
|
|
54
|
+
)
|
|
55
|
+
except (TypeError, ValueError):
|
|
56
|
+
self.tts_trigger_probability = 1.0
|
|
57
|
+
|
|
45
58
|
# 分段回复
|
|
46
59
|
self.words_count_threshold = int(
|
|
47
60
|
ctx.astrbot_config["platform_settings"]["segmented_reply"][
|
|
@@ -246,7 +259,14 @@ class ResultDecorateStage(Stage):
|
|
|
246
259
|
and result.is_llm_result()
|
|
247
260
|
and SessionServiceManager.should_process_tts_request(event)
|
|
248
261
|
):
|
|
249
|
-
|
|
262
|
+
should_tts = self.tts_trigger_probability >= 1.0 or (
|
|
263
|
+
self.tts_trigger_probability > 0.0
|
|
264
|
+
and random.random() <= self.tts_trigger_probability
|
|
265
|
+
)
|
|
266
|
+
|
|
267
|
+
if not should_tts:
|
|
268
|
+
logger.debug("跳过 TTS:触发概率未命中。")
|
|
269
|
+
elif not tts_provider:
|
|
250
270
|
logger.warning(
|
|
251
271
|
f"会话 {event.unified_msg_origin} 未配置文本转语音模型。",
|
|
252
272
|
)
|
|
@@ -81,7 +81,12 @@ class LarkPlatformAdapter(Platform):
|
|
|
81
81
|
)
|
|
82
82
|
|
|
83
83
|
self.lark_api = (
|
|
84
|
-
lark.Client.builder()
|
|
84
|
+
lark.Client.builder()
|
|
85
|
+
.app_id(self.appid)
|
|
86
|
+
.app_secret(self.appsecret)
|
|
87
|
+
.log_level(lark.LogLevel.ERROR)
|
|
88
|
+
.domain(self.domain)
|
|
89
|
+
.build()
|
|
85
90
|
)
|
|
86
91
|
|
|
87
92
|
self.webhook_server = None
|
astrbot/core/star/__init__.py
CHANGED
|
@@ -2,15 +2,19 @@ from astrbot.core import html_renderer
|
|
|
2
2
|
from astrbot.core.provider import Provider
|
|
3
3
|
from astrbot.core.star.star_tools import StarTools
|
|
4
4
|
from astrbot.core.utils.command_parser import CommandParserMixin
|
|
5
|
+
from astrbot.core.utils.plugin_kv_store import PluginKVStoreMixin
|
|
5
6
|
|
|
6
7
|
from .context import Context
|
|
7
8
|
from .star import StarMetadata, star_map, star_registry
|
|
8
9
|
from .star_manager import PluginManager
|
|
9
10
|
|
|
10
11
|
|
|
11
|
-
class Star(CommandParserMixin):
|
|
12
|
+
class Star(CommandParserMixin, PluginKVStoreMixin):
|
|
12
13
|
"""所有插件(Star)的父类,所有插件都应该继承于这个类"""
|
|
13
14
|
|
|
15
|
+
author: str
|
|
16
|
+
name: str
|
|
17
|
+
|
|
14
18
|
def __init__(self, context: Context, config: dict | None = None):
|
|
15
19
|
StarTools.initialize(context)
|
|
16
20
|
self.context = context
|
|
@@ -467,6 +467,18 @@ class PluginManager:
|
|
|
467
467
|
metadata.star_cls = metadata.star_cls_type(
|
|
468
468
|
context=self.context,
|
|
469
469
|
)
|
|
470
|
+
|
|
471
|
+
p_name = (metadata.name or "unknown").lower().replace("/", "_")
|
|
472
|
+
p_author = (
|
|
473
|
+
(metadata.author or "unknown").lower().replace("/", "_")
|
|
474
|
+
)
|
|
475
|
+
setattr(metadata.star_cls, "name", p_name)
|
|
476
|
+
setattr(metadata.star_cls, "author", p_author)
|
|
477
|
+
setattr(
|
|
478
|
+
metadata.star_cls,
|
|
479
|
+
"plugin_id",
|
|
480
|
+
f"{p_author}/{p_name}",
|
|
481
|
+
)
|
|
470
482
|
else:
|
|
471
483
|
logger.info(f"插件 {metadata.name} 已被禁用。")
|
|
472
484
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from typing import TypeVar
|
|
2
|
+
|
|
3
|
+
from astrbot.core import sp
|
|
4
|
+
|
|
5
|
+
SUPPORTED_VALUE_TYPES = int | float | str | bytes | bool | dict | list | None
|
|
6
|
+
_VT = TypeVar("_VT")
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class PluginKVStoreMixin:
|
|
10
|
+
"""为插件提供键值存储功能的 Mixin 类"""
|
|
11
|
+
|
|
12
|
+
plugin_id: str
|
|
13
|
+
|
|
14
|
+
async def put_kv_data(
|
|
15
|
+
self,
|
|
16
|
+
key: str,
|
|
17
|
+
value: SUPPORTED_VALUE_TYPES,
|
|
18
|
+
) -> None:
|
|
19
|
+
"""为指定插件存储一个键值对"""
|
|
20
|
+
await sp.put_async("plugin", self.plugin_id, key, value)
|
|
21
|
+
|
|
22
|
+
async def get_kv_data(self, key: str, default: _VT) -> _VT | None:
|
|
23
|
+
"""获取指定插件存储的键值对"""
|
|
24
|
+
return await sp.get_async("plugin", self.plugin_id, key, default)
|
|
25
|
+
|
|
26
|
+
async def delete_kv_data(self, key: str) -> None:
|
|
27
|
+
"""删除指定插件存储的键值对"""
|
|
28
|
+
await sp.remove_async("plugin", self.plugin_id, key)
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import traceback
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
from io import BytesIO
|
|
3
5
|
|
|
4
|
-
from quart import request
|
|
6
|
+
from quart import request, send_file
|
|
5
7
|
|
|
6
8
|
from astrbot.core import logger
|
|
7
9
|
from astrbot.core.core_lifecycle import AstrBotCoreLifecycle
|
|
@@ -30,6 +32,7 @@ class ConversationRoute(Route):
|
|
|
30
32
|
"POST",
|
|
31
33
|
self.update_history,
|
|
32
34
|
),
|
|
35
|
+
"/conversation/export": ("POST", self.export_conversations),
|
|
33
36
|
}
|
|
34
37
|
self.db_helper = db_helper
|
|
35
38
|
self.conv_mgr = core_lifecycle.conversation_manager
|
|
@@ -283,3 +286,90 @@ class ConversationRoute(Route):
|
|
|
283
286
|
except Exception as e:
|
|
284
287
|
logger.error(f"更新对话历史失败: {e!s}\n{traceback.format_exc()}")
|
|
285
288
|
return Response().error(f"更新对话历史失败: {e!s}").__dict__
|
|
289
|
+
|
|
290
|
+
async def export_conversations(self):
|
|
291
|
+
"""批量导出对话为 JSONL 格式"""
|
|
292
|
+
try:
|
|
293
|
+
data = await request.get_json()
|
|
294
|
+
conversations_to_export = data.get("conversations", [])
|
|
295
|
+
|
|
296
|
+
if not conversations_to_export:
|
|
297
|
+
return Response().error("导出列表不能为空").__dict__
|
|
298
|
+
|
|
299
|
+
# 收集所有对话的内容
|
|
300
|
+
jsonl_lines = []
|
|
301
|
+
exported_count = 0
|
|
302
|
+
failed_items = []
|
|
303
|
+
|
|
304
|
+
for conv_info in conversations_to_export:
|
|
305
|
+
user_id = conv_info.get("user_id")
|
|
306
|
+
cid = conv_info.get("cid")
|
|
307
|
+
|
|
308
|
+
if not user_id or not cid:
|
|
309
|
+
failed_items.append(
|
|
310
|
+
f"user_id:{user_id}, cid:{cid} - 缺少必要参数",
|
|
311
|
+
)
|
|
312
|
+
continue
|
|
313
|
+
|
|
314
|
+
try:
|
|
315
|
+
conversation = await self.conv_mgr.get_conversation(
|
|
316
|
+
unified_msg_origin=user_id,
|
|
317
|
+
conversation_id=cid,
|
|
318
|
+
)
|
|
319
|
+
|
|
320
|
+
if not conversation:
|
|
321
|
+
failed_items.append(
|
|
322
|
+
f"user_id:{user_id}, cid:{cid} - 对话不存在"
|
|
323
|
+
)
|
|
324
|
+
continue
|
|
325
|
+
|
|
326
|
+
# 解析对话内容 (history is always a JSON string from _convert_conv_from_v2_to_v1)
|
|
327
|
+
content = json.loads(conversation.history)
|
|
328
|
+
|
|
329
|
+
# 创建导出记录
|
|
330
|
+
export_record = {
|
|
331
|
+
"cid": cid,
|
|
332
|
+
"user_id": user_id,
|
|
333
|
+
"platform_id": conversation.platform_id,
|
|
334
|
+
"title": conversation.title,
|
|
335
|
+
"persona_id": conversation.persona_id,
|
|
336
|
+
"created_at": conversation.created_at,
|
|
337
|
+
"updated_at": conversation.updated_at,
|
|
338
|
+
"content": content,
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
# 将记录转换为 JSON 字符串并添加到 JSONL
|
|
342
|
+
jsonl_lines.append(json.dumps(export_record, ensure_ascii=False))
|
|
343
|
+
exported_count += 1
|
|
344
|
+
|
|
345
|
+
except Exception as e:
|
|
346
|
+
failed_items.append(f"user_id:{user_id}, cid:{cid} - {e!s}")
|
|
347
|
+
logger.error(
|
|
348
|
+
f"导出对话失败: user_id={user_id}, cid={cid}, error={e!s}"
|
|
349
|
+
)
|
|
350
|
+
|
|
351
|
+
if exported_count == 0:
|
|
352
|
+
return Response().error("没有成功导出任何对话").__dict__
|
|
353
|
+
|
|
354
|
+
# 创建 JSONL 内容
|
|
355
|
+
jsonl_content = "\n".join(jsonl_lines)
|
|
356
|
+
|
|
357
|
+
# 创建一个内存文件对象
|
|
358
|
+
file_obj = BytesIO(jsonl_content.encode("utf-8"))
|
|
359
|
+
file_obj.seek(0)
|
|
360
|
+
|
|
361
|
+
# 生成文件名
|
|
362
|
+
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
363
|
+
filename = f"astrbot_conversations_export_{timestamp}.jsonl"
|
|
364
|
+
|
|
365
|
+
# 返回文件流
|
|
366
|
+
return await send_file(
|
|
367
|
+
file_obj,
|
|
368
|
+
mimetype="application/jsonl",
|
|
369
|
+
as_attachment=True,
|
|
370
|
+
attachment_filename=filename,
|
|
371
|
+
)
|
|
372
|
+
|
|
373
|
+
except Exception as e:
|
|
374
|
+
logger.error(f"批量导出对话失败: {e!s}\n{traceback.format_exc()}")
|
|
375
|
+
return Response().error(f"批量导出对话失败: {e!s}").__dict__
|
|
@@ -124,7 +124,11 @@ class PluginRoute(Route):
|
|
|
124
124
|
session.get(url) as response,
|
|
125
125
|
):
|
|
126
126
|
if response.status == 200:
|
|
127
|
-
|
|
127
|
+
try:
|
|
128
|
+
remote_data = await response.json()
|
|
129
|
+
except aiohttp.ContentTypeError:
|
|
130
|
+
remote_text = await response.text()
|
|
131
|
+
remote_data = json.loads(remote_text)
|
|
128
132
|
|
|
129
133
|
# 检查远程数据是否为空
|
|
130
134
|
if not remote_data or (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: AstrBot
|
|
3
|
-
Version: 4.9.
|
|
3
|
+
Version: 4.9.2
|
|
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
|
|
@@ -304,4 +304,10 @@ pre-commit install
|
|
|
304
304
|
|
|
305
305
|
</details>
|
|
306
306
|
|
|
307
|
+
<div align="center">
|
|
308
|
+
|
|
307
309
|
_私は、高性能ですから!_
|
|
310
|
+
|
|
311
|
+
<img src="https://files.astrbot.app/watashiwa-koseino-desukara.gif" width="100"/>
|
|
312
|
+
</div
|
|
313
|
+
|
|
@@ -8,7 +8,7 @@ astrbot/api/platform/__init__.py,sha256=HXvAy_KLtOJspoGVgDtLa7VjIZoF6WK3Puww55yy
|
|
|
8
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
|
-
astrbot/cli/__init__.py,sha256=
|
|
11
|
+
astrbot/cli/__init__.py,sha256=9IzaVQP787fNLdw2IGD5hgGMK5Qp0cYcqMPlh3LI8Jk,22
|
|
12
12
|
astrbot/cli/__main__.py,sha256=QobgMyFoLNTgI_OYddhGOZ9ZvQeBVjjz79mA2cC2OEU,1758
|
|
13
13
|
astrbot/cli/commands/__init__.py,sha256=eAgppZQIqFO1ylQJFABeYrzQ0oZqPWjtE80aKIPB3ks,149
|
|
14
14
|
astrbot/cli/commands/cmd_conf.py,sha256=6-YLicBt_zjWTzaVLUJ1VQLQPbDEPYACB9IVnN8Zvng,6330
|
|
@@ -56,8 +56,8 @@ astrbot/core/agent/runners/dify/dify_agent_runner.py,sha256=LYwpjOcBWf3XlwNVzrDv
|
|
|
56
56
|
astrbot/core/agent/runners/dify/dify_api_client.py,sha256=OXukDVgNx3VmYw6OCzjXyP8JmDWEFuy81sD9XnC4VRo,6530
|
|
57
57
|
astrbot/core/config/__init__.py,sha256=vZjtpC7vr-IvBgSUtbS04C0wpulmCG5tPmcEP1WYE_4,172
|
|
58
58
|
astrbot/core/config/astrbot_config.py,sha256=6bUTnMCOyaS8s6ELsWctDfUFTB53fKJQNu272dZXkdU,6347
|
|
59
|
-
astrbot/core/config/default.py,sha256=
|
|
60
|
-
astrbot/core/config/i18n_utils.py,sha256=
|
|
59
|
+
astrbot/core/config/default.py,sha256=NQMP2wFXyfRxyN_1JO5CQGPMQmywrX3SbSg_p1wso4k,152197
|
|
60
|
+
astrbot/core/config/i18n_utils.py,sha256=HJn_0XeeVS9ryCBelYfnc0nEn10LlX702fcSSFrF1J8,3879
|
|
61
61
|
astrbot/core/db/__init__.py,sha256=Z3NMgMbxvxZyf5hroO9Kvn2TPKEoL2X21CTW96gzGLE,11200
|
|
62
62
|
astrbot/core/db/po.py,sha256=KIvtPCjf1i9IGOWXyhNKvxzEXmsfopfa7G0UaG98Ams,9313
|
|
63
63
|
astrbot/core/db/sqlite.py,sha256=bXXyA0RwgZTlwEZ6Uh4KSGMUyA3jamvkLVVcbF5K_ow,32274
|
|
@@ -114,8 +114,8 @@ astrbot/core/pipeline/process_stage/method/star_request.py,sha256=C-PTq_Wpq4QMS2
|
|
|
114
114
|
astrbot/core/pipeline/process_stage/method/agent_sub_stages/internal.py,sha256=sDU4b85nV7LswGngFeYOG9VUv-BRR7gufy00ptU_Utg,21175
|
|
115
115
|
astrbot/core/pipeline/process_stage/method/agent_sub_stages/third_party.py,sha256=LNBRItSpZn0MLP4fyHQ_3gUJ8lnmCwuPlqnZDVFLI6Q,7332
|
|
116
116
|
astrbot/core/pipeline/rate_limit_check/stage.py,sha256=9EVJ0zYtxATFsj7ADyWDYcSGBRqmrMiKWp1kkD9LONI,3962
|
|
117
|
-
astrbot/core/pipeline/respond/stage.py,sha256=
|
|
118
|
-
astrbot/core/pipeline/result_decorate/stage.py,sha256=
|
|
117
|
+
astrbot/core/pipeline/respond/stage.py,sha256=G3GgABvDmN-ClrDbFVOFsaeENWnptOr0xzX0NxmXbjY,11038
|
|
118
|
+
astrbot/core/pipeline/result_decorate/stage.py,sha256=Ml7_E5P2YpGLHRc9aIBbL2gylLNsRuQqwxejEgPaIoo,17318
|
|
119
119
|
astrbot/core/pipeline/session_status_check/stage.py,sha256=cFp6MMdFzeURjmW5LCrzsTGD_hnJN5jhDh_zoPbnFAw,1291
|
|
120
120
|
astrbot/core/pipeline/waking_check/stage.py,sha256=u4s-UACcyFhydAbFKutvh1T4Aw6wdUyI_OU2hgCLiao,8650
|
|
121
121
|
astrbot/core/pipeline/whitelist_check/stage.py,sha256=x6o4oswIvVtHFRbuKuLFoyFEgx-gSo3IMGYvopu8d9A,2411
|
|
@@ -136,7 +136,7 @@ astrbot/core/platform/sources/discord/client.py,sha256=YGrUSopQKDRFfzjCdcBQm-EcN
|
|
|
136
136
|
astrbot/core/platform/sources/discord/components.py,sha256=qKcGssKA3vBLHpad0g96KMD722Ng5jYKgpQBGQFOPX8,3971
|
|
137
137
|
astrbot/core/platform/sources/discord/discord_platform_adapter.py,sha256=rnHqOrCGCeZ0JzCKj335zjuWMqDNAJ0k8jnpjWqWmoo,19554
|
|
138
138
|
astrbot/core/platform/sources/discord/discord_platform_event.py,sha256=nVuqZtoF2Vl3Bo5-rik1YFJZz892qkj30T0qCdVSB9c,13332
|
|
139
|
-
astrbot/core/platform/sources/lark/lark_adapter.py,sha256=
|
|
139
|
+
astrbot/core/platform/sources/lark/lark_adapter.py,sha256=9rDfS_zcsdCODa43WJNiHByPYC_SoVBOjKxhV-viY3Q,14079
|
|
140
140
|
astrbot/core/platform/sources/lark/lark_event.py,sha256=0H1TR-ajktyRhjLxY6-Xf8x7Zkc-2wfz4c-EeBEEOrc,6422
|
|
141
141
|
astrbot/core/platform/sources/lark/server.py,sha256=athZuUArNqlpCV6_KDkv7AQrYbh7Z99gThN1ZsCvMeg,6385
|
|
142
142
|
astrbot/core/platform/sources/misskey/misskey_adapter.py,sha256=JTPcBhCtray4rCk924X8ruy6mL7jPzUsVX0f3vzoO0E,29614
|
|
@@ -208,14 +208,14 @@ astrbot/core/provider/sources/xinference_rerank_source.py,sha256=DsF4JVlXGeeqqyc
|
|
|
208
208
|
astrbot/core/provider/sources/xinference_stt_provider.py,sha256=DPEc7cVo2KXKGIgb8IXKagPH9qpNAdp5gx5PAink0j4,7731
|
|
209
209
|
astrbot/core/provider/sources/zhipu_source.py,sha256=oOCPXGsR9PLWOuu3h8RSVNRw1Qy2Se6dwmeFR3zk3GM,612
|
|
210
210
|
astrbot/core/star/README.md,sha256=LXxqxp3xv_oejO8ocBPOrbmLe0WB4feu43fYDNddHTQ,161
|
|
211
|
-
astrbot/core/star/__init__.py,sha256=
|
|
211
|
+
astrbot/core/star/__init__.py,sha256=iTlnjfEGJGy--78PhG7F1cKj9VwJVcDNFtGomX8hRO0,2229
|
|
212
212
|
astrbot/core/star/config.py,sha256=FgrBz_fUrBU0-9BxD8enX-xGNGVbFxst3UT10sboYNA,3531
|
|
213
213
|
astrbot/core/star/context.py,sha256=voL-U8XAm-yfQWW_62L5BE1wOn3qaCDstGqvpnWTk9g,21020
|
|
214
214
|
astrbot/core/star/session_llm_manager.py,sha256=W_ZgNDyUPjMQGccqnK83hFjZvSCv5BLQeyv5fHvRLUw,5307
|
|
215
215
|
astrbot/core/star/session_plugin_manager.py,sha256=8sEzOxf_Gq-dwK_S-4rwocAFsYzx7Yi4FJuMRttPTac,2830
|
|
216
216
|
astrbot/core/star/star.py,sha256=Wkf81teNZ27JE_JrENuP0SrpFc2uFYRxHQsWo8R9-No,1826
|
|
217
217
|
astrbot/core/star/star_handler.py,sha256=LQqM6szmedro_TtAMJRFt3vn8uQtiOM25Af5PmlOHKs,7529
|
|
218
|
-
astrbot/core/star/star_manager.py,sha256=
|
|
218
|
+
astrbot/core/star/star_manager.py,sha256=kOxdlxRoMtQRSL_tTtiViOdLYFbKc92UAUWRQtFh-qI,40917
|
|
219
219
|
astrbot/core/star/star_tools.py,sha256=4q8emjyTbyIsVXHmzT88kX9uK28rIhlHc0re40Xm6m0,10847
|
|
220
220
|
astrbot/core/star/updator.py,sha256=4pl42Ks_yjJ3kydx3BwOqocAczhhFBrRnxhBKh4_0Eo,3106
|
|
221
221
|
astrbot/core/star/filter/__init__.py,sha256=bC6eHXh0CjzHmn-LTvsanWReoGIPhhMnBSrMLh97hZQ,470
|
|
@@ -238,6 +238,7 @@ astrbot/core/utils/metrics.py,sha256=CxEkdV2gJai0mw1IbL4DJ81WiQ5mY7v9M_-T6UtRJDs
|
|
|
238
238
|
astrbot/core/utils/migra_helper.py,sha256=pnv3VvDD_9gj1nKjroVQYUeePpvyd0DXJz9CoJvG_Og,2763
|
|
239
239
|
astrbot/core/utils/path_util.py,sha256=FXx9oBrsL-dcq-6OlmiSwk2ygqJ9vMmkCBEi2sL50f8,3050
|
|
240
240
|
astrbot/core/utils/pip_installer.py,sha256=H8Bk5QKh-GBBRvGp7sDKDkh6A1UDy4xU9AtUL10B6Jg,1969
|
|
241
|
+
astrbot/core/utils/plugin_kv_store.py,sha256=L_XGux1K2a3fSxqukTg1XN0pq7AosZNeXPpXlAk5eWE,854
|
|
241
242
|
astrbot/core/utils/session_lock.py,sha256=fZDIbyy1nYfgsQSGUc_pWHZp4Kv6inXjENP8ay2bKGI,913
|
|
242
243
|
astrbot/core/utils/session_waiter.py,sha256=Q4zdrvxs-cLLopLCQES6bYZ6MQrajl4fzqZjmmXX170,7073
|
|
243
244
|
astrbot/core/utils/shared_preferences.py,sha256=1dod97F8dT3itDi_APZXqWNdiB57FRhbWlMyyYTbogA,6755
|
|
@@ -257,13 +258,13 @@ astrbot/dashboard/routes/__init__.py,sha256=MAQlYoPi-AwUftdp1Ixg9E6im6Af5eruuZ52
|
|
|
257
258
|
astrbot/dashboard/routes/auth.py,sha256=rYkvt3MpCY9BhWjG0DUoX3YaBkJT1Id7M2pKqTmXbvo,2946
|
|
258
259
|
astrbot/dashboard/routes/chat.py,sha256=XcXuGfLZvjUeYCFPosoMpIAaecuvq48s8aFHrT9P2qc,24822
|
|
259
260
|
astrbot/dashboard/routes/config.py,sha256=jwrlP23zbTpnrMhQKrTfBjb1NLEln4tDYNExRP0BQeM,33438
|
|
260
|
-
astrbot/dashboard/routes/conversation.py,sha256=
|
|
261
|
+
astrbot/dashboard/routes/conversation.py,sha256=TWGY7BJ9QfmbxurAieBrbMmCi4_Ua2klxsAUlSRXbng,14302
|
|
261
262
|
astrbot/dashboard/routes/file.py,sha256=gULvXP9PnVOQlyv_PCEzZQE5ptnGQEjFPvwOLxdVgb4,708
|
|
262
263
|
astrbot/dashboard/routes/knowledge_base.py,sha256=GZ_iDYV2uXXzvGMF-4VJ8hZxLdHIWSSfg_3wlWwsizA,46081
|
|
263
264
|
astrbot/dashboard/routes/log.py,sha256=YJWj1982YUSzja_MZQS5UoKf6pImQoeP0zaS0AGp0nY,2299
|
|
264
265
|
astrbot/dashboard/routes/persona.py,sha256=MEcNHMxJmyvZ3ZhytI5IP7L3FSlMr1JDvdd5efN9Q-M,7833
|
|
265
266
|
astrbot/dashboard/routes/platform.py,sha256=JfQzzmWSnahKjke3lBUeXo7Auzz_nTB0mUv0fIf_Nag,3392
|
|
266
|
-
astrbot/dashboard/routes/plugin.py,sha256=
|
|
267
|
+
astrbot/dashboard/routes/plugin.py,sha256=CvTUNOaBBjgk7q58bJ4El7BxkUopzPEdqxFnE2LC2UY,25436
|
|
267
268
|
astrbot/dashboard/routes/route.py,sha256=vhNIWFhic1eVHRx7ej8OUmmcNDA3FPaRPdXO_-SS4K4,1572
|
|
268
269
|
astrbot/dashboard/routes/session_management.py,sha256=3h-zlkiAN4MQQLETGORNoWDtnGCSbqxnK2mTu6jMeCY,14998
|
|
269
270
|
astrbot/dashboard/routes/stat.py,sha256=OgNM491WFuDSAQbbJUGl4_UsqrQNefOGMMRIPLLoVBQ,6780
|
|
@@ -271,8 +272,8 @@ astrbot/dashboard/routes/static_file.py,sha256=7KnNcOb1BVqSTft114LhGsDkfg69X2jHE
|
|
|
271
272
|
astrbot/dashboard/routes/t2i.py,sha256=F6smxdL99MF7cRw3hqS6-2GErw8Zhsv0V0mfBUeEk-c,8931
|
|
272
273
|
astrbot/dashboard/routes/tools.py,sha256=YsVFrwVIhxAI-Ikme7YPrHVnPVTkJ1IaH7n6ciREjdE,14663
|
|
273
274
|
astrbot/dashboard/routes/update.py,sha256=qXiqQ_dbqRVftOzGgCQrvK8-qopVK6zKhhVVJ9SK26U,6648
|
|
274
|
-
astrbot-4.9.
|
|
275
|
-
astrbot-4.9.
|
|
276
|
-
astrbot-4.9.
|
|
277
|
-
astrbot-4.9.
|
|
278
|
-
astrbot-4.9.
|
|
275
|
+
astrbot-4.9.2.dist-info/METADATA,sha256=ak-jLSJ2et3ozqBoBddq815p72DS512c83VQHSmR94E,11932
|
|
276
|
+
astrbot-4.9.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
277
|
+
astrbot-4.9.2.dist-info/entry_points.txt,sha256=OEF09YmhBWYuViXrvTLLpstF4ccmNwDL8r7nnFD0pfI,53
|
|
278
|
+
astrbot-4.9.2.dist-info/licenses/LICENSE,sha256=zPfQj5Mq8-gThIiBcxETr7t8gND9bZWOjTGQAr80TQI,34500
|
|
279
|
+
astrbot-4.9.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|