AstrBot 4.1.5__py3-none-any.whl → 4.1.7__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/core/config/default.py +1 -1
- astrbot/core/db/sqlite.py +1 -0
- astrbot/core/pipeline/process_stage/method/llm_request.py +5 -5
- astrbot/core/provider/manager.py +19 -6
- astrbot/core/star/context.py +7 -4
- astrbot/core/utils/io.py +6 -18
- astrbot/dashboard/routes/config.py +7 -24
- astrbot/dashboard/routes/conversation.py +58 -8
- {astrbot-4.1.5.dist-info → astrbot-4.1.7.dist-info}/METADATA +3 -2
- {astrbot-4.1.5.dist-info → astrbot-4.1.7.dist-info}/RECORD +13 -13
- {astrbot-4.1.5.dist-info → astrbot-4.1.7.dist-info}/WHEEL +0 -0
- {astrbot-4.1.5.dist-info → astrbot-4.1.7.dist-info}/entry_points.txt +0 -0
- {astrbot-4.1.5.dist-info → astrbot-4.1.7.dist-info}/licenses/LICENSE +0 -0
astrbot/core/config/default.py
CHANGED
astrbot/core/db/sqlite.py
CHANGED
|
@@ -159,6 +159,7 @@ class SQLiteDatabase(BaseDatabase):
|
|
|
159
159
|
or_(
|
|
160
160
|
ConversationV2.title.ilike(f"%{search_query}%"),
|
|
161
161
|
ConversationV2.content.ilike(f"%{search_query}%"),
|
|
162
|
+
ConversationV2.user_id.ilike(f"%{search_query}%"),
|
|
162
163
|
)
|
|
163
164
|
)
|
|
164
165
|
if "message_types" in kwargs and len(kwargs["message_types"]) > 0:
|
|
@@ -285,11 +285,11 @@ async def run_agent(
|
|
|
285
285
|
|
|
286
286
|
except Exception as e:
|
|
287
287
|
logger.error(traceback.format_exc())
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
288
|
+
err_msg = f"\n\nAstrBot 请求失败。\n错误类型: {type(e).__name__}\n错误信息: {str(e)}\n\n请在控制台查看和分享错误详情。\n"
|
|
289
|
+
if agent_runner.streaming:
|
|
290
|
+
yield MessageChain().message(err_msg)
|
|
291
|
+
else:
|
|
292
|
+
astr_event.set_result(MessageEventResult().message(err_msg))
|
|
293
293
|
return
|
|
294
294
|
asyncio.create_task(
|
|
295
295
|
Metric.upload(
|
astrbot/core/provider/manager.py
CHANGED
|
@@ -7,7 +7,13 @@ from astrbot.core.astrbot_config_mgr import AstrBotConfigManager
|
|
|
7
7
|
from astrbot.core.db import BaseDatabase
|
|
8
8
|
|
|
9
9
|
from .entities import ProviderType
|
|
10
|
-
from .provider import
|
|
10
|
+
from .provider import (
|
|
11
|
+
Provider,
|
|
12
|
+
STTProvider,
|
|
13
|
+
TTSProvider,
|
|
14
|
+
EmbeddingProvider,
|
|
15
|
+
RerankProvider,
|
|
16
|
+
)
|
|
11
17
|
from .register import llm_tools, provider_cls_map
|
|
12
18
|
from ..persona_mgr import PersonaManager
|
|
13
19
|
|
|
@@ -38,7 +44,12 @@ class ProviderManager:
|
|
|
38
44
|
"""加载的 Text To Speech Provider 的实例"""
|
|
39
45
|
self.embedding_provider_insts: List[EmbeddingProvider] = []
|
|
40
46
|
"""加载的 Embedding Provider 的实例"""
|
|
41
|
-
self.
|
|
47
|
+
self.rerank_provider_insts: List[RerankProvider] = []
|
|
48
|
+
"""加载的 Rerank Provider 的实例"""
|
|
49
|
+
self.inst_map: dict[
|
|
50
|
+
str,
|
|
51
|
+
Provider | STTProvider | TTSProvider | EmbeddingProvider | RerankProvider,
|
|
52
|
+
] = {}
|
|
42
53
|
"""Provider 实例映射. key: provider_id, value: Provider 实例"""
|
|
43
54
|
self.llm_tools = llm_tools
|
|
44
55
|
|
|
@@ -378,14 +389,16 @@ class ProviderManager:
|
|
|
378
389
|
if not self.curr_provider_inst:
|
|
379
390
|
self.curr_provider_inst = inst
|
|
380
391
|
|
|
381
|
-
elif provider_metadata.provider_type
|
|
382
|
-
ProviderType.EMBEDDING,
|
|
383
|
-
ProviderType.RERANK,
|
|
384
|
-
]:
|
|
392
|
+
elif provider_metadata.provider_type == ProviderType.EMBEDDING:
|
|
385
393
|
inst = cls_type(provider_config, self.provider_settings)
|
|
386
394
|
if getattr(inst, "initialize", None):
|
|
387
395
|
await inst.initialize()
|
|
388
396
|
self.embedding_provider_insts.append(inst)
|
|
397
|
+
elif provider_metadata.provider_type == ProviderType.RERANK:
|
|
398
|
+
inst = cls_type(provider_config, self.provider_settings)
|
|
399
|
+
if getattr(inst, "initialize", None):
|
|
400
|
+
await inst.initialize()
|
|
401
|
+
self.rerank_provider_insts.append(inst)
|
|
389
402
|
|
|
390
403
|
self.inst_map[provider_config["id"]] = inst
|
|
391
404
|
except Exception as e:
|
astrbot/core/star/context.py
CHANGED
|
@@ -6,6 +6,7 @@ from astrbot.core.provider.provider import (
|
|
|
6
6
|
TTSProvider,
|
|
7
7
|
STTProvider,
|
|
8
8
|
EmbeddingProvider,
|
|
9
|
+
RerankProvider,
|
|
9
10
|
)
|
|
10
11
|
from astrbot.core.provider.entities import ProviderType
|
|
11
12
|
from astrbot.core.db import BaseDatabase
|
|
@@ -103,11 +104,13 @@ class Context:
|
|
|
103
104
|
"""
|
|
104
105
|
self.provider_manager.provider_insts.append(provider)
|
|
105
106
|
|
|
106
|
-
def get_provider_by_id(
|
|
107
|
-
|
|
107
|
+
def get_provider_by_id(
|
|
108
|
+
self, provider_id: str
|
|
109
|
+
) -> (
|
|
110
|
+
Provider | TTSProvider | STTProvider | EmbeddingProvider | RerankProvider | None
|
|
111
|
+
):
|
|
112
|
+
"""通过 ID 获取对应的 LLM Provider。"""
|
|
108
113
|
prov = self.provider_manager.inst_map.get(provider_id)
|
|
109
|
-
if prov and not isinstance(prov, Provider):
|
|
110
|
-
raise ValueError("返回的 Provider 不是 Provider 类型")
|
|
111
114
|
return prov
|
|
112
115
|
|
|
113
116
|
def get_all_providers(self) -> List[Provider]:
|
astrbot/core/utils/io.py
CHANGED
|
@@ -227,9 +227,11 @@ async def download_dashboard(
|
|
|
227
227
|
path = os.path.join(get_astrbot_data_path(), "dashboard.zip")
|
|
228
228
|
|
|
229
229
|
if latest or len(str(version)) != 40:
|
|
230
|
-
logger.info(f"准备下载 {version} 发行版本的 AstrBot WebUI 文件")
|
|
231
230
|
ver_name = "latest" if latest else version
|
|
232
231
|
dashboard_release_url = f"https://astrbot-registry.soulter.top/download/astrbot-dashboard/{ver_name}/dist.zip"
|
|
232
|
+
logger.info(
|
|
233
|
+
f"准备下载指定发行版本的 AstrBot WebUI 文件: {dashboard_release_url}"
|
|
234
|
+
)
|
|
233
235
|
try:
|
|
234
236
|
await download_file(dashboard_release_url, path, show_progress=True)
|
|
235
237
|
except BaseException as _:
|
|
@@ -241,24 +243,10 @@ async def download_dashboard(
|
|
|
241
243
|
dashboard_release_url = f"{proxy}/{dashboard_release_url}"
|
|
242
244
|
await download_file(dashboard_release_url, path, show_progress=True)
|
|
243
245
|
else:
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
url = (
|
|
247
|
-
"https://api.github.com/repos/AstrBotDevs/astrbot-release-harbour/releases"
|
|
248
|
-
)
|
|
246
|
+
url = f"https://github.com/AstrBotDevs/astrbot-release-harbour/releases/download/release-{version}/dist.zip"
|
|
247
|
+
logger.info(f"准备下载指定版本的 AstrBot WebUI: {url}")
|
|
249
248
|
if proxy:
|
|
250
249
|
url = f"{proxy}/{url}"
|
|
251
|
-
|
|
252
|
-
async with session.get(url) as resp:
|
|
253
|
-
if resp.status == 200:
|
|
254
|
-
releases = await resp.json()
|
|
255
|
-
for release in releases:
|
|
256
|
-
if version in release["tag_name"]:
|
|
257
|
-
download_url = release["assets"][0]["browser_download_url"]
|
|
258
|
-
await download_file(download_url, path, show_progress=True)
|
|
259
|
-
else:
|
|
260
|
-
logger.warning(f"未找到指定的版本的 Dashboard 构建文件: {version}")
|
|
261
|
-
return
|
|
262
|
-
|
|
250
|
+
await download_file(url, path, show_progress=True)
|
|
263
251
|
with zipfile.ZipFile(path, "r") as z:
|
|
264
252
|
z.extractall(extract_path)
|
|
@@ -51,24 +51,6 @@ def validate_config(
|
|
|
51
51
|
def validate(data: dict, metadata: dict = schema, path=""):
|
|
52
52
|
for key, value in data.items():
|
|
53
53
|
if key not in metadata:
|
|
54
|
-
# 无 schema 的配置项,执行类型猜测
|
|
55
|
-
if isinstance(value, str):
|
|
56
|
-
try:
|
|
57
|
-
data[key] = int(value)
|
|
58
|
-
continue
|
|
59
|
-
except ValueError:
|
|
60
|
-
pass
|
|
61
|
-
|
|
62
|
-
try:
|
|
63
|
-
data[key] = float(value)
|
|
64
|
-
continue
|
|
65
|
-
except ValueError:
|
|
66
|
-
pass
|
|
67
|
-
|
|
68
|
-
if value.lower() == "true":
|
|
69
|
-
data[key] = True
|
|
70
|
-
elif value.lower() == "false":
|
|
71
|
-
data[key] = False
|
|
72
54
|
continue
|
|
73
55
|
meta = metadata[key]
|
|
74
56
|
if "type" not in meta:
|
|
@@ -127,12 +109,12 @@ def validate_config(
|
|
|
127
109
|
)
|
|
128
110
|
|
|
129
111
|
if is_core:
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
112
|
+
meta_all = {
|
|
113
|
+
**schema["platform_group"]["metadata"],
|
|
114
|
+
**schema["provider_group"]["metadata"],
|
|
115
|
+
**schema["misc_config_group"]["metadata"],
|
|
116
|
+
}
|
|
117
|
+
validate(data, meta_all)
|
|
136
118
|
else:
|
|
137
119
|
validate(data, schema)
|
|
138
120
|
|
|
@@ -142,6 +124,7 @@ def validate_config(
|
|
|
142
124
|
def save_config(post_config: dict, config: AstrBotConfig, is_core: bool = False):
|
|
143
125
|
"""验证并保存配置"""
|
|
144
126
|
errors = None
|
|
127
|
+
logger.info(f"Saving config, is_core={is_core}")
|
|
145
128
|
try:
|
|
146
129
|
if is_core:
|
|
147
130
|
errors, post_config = validate_config(
|
|
@@ -169,15 +169,65 @@ class ConversationRoute(Route):
|
|
|
169
169
|
"""删除对话"""
|
|
170
170
|
try:
|
|
171
171
|
data = await request.get_json()
|
|
172
|
-
user_id = data.get("user_id")
|
|
173
|
-
cid = data.get("cid")
|
|
174
172
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
173
|
+
# 检查是否是批量删除
|
|
174
|
+
if "conversations" in data:
|
|
175
|
+
# 批量删除
|
|
176
|
+
conversations = data.get("conversations", [])
|
|
177
|
+
if not conversations:
|
|
178
|
+
return (
|
|
179
|
+
Response().error("批量删除时conversations参数不能为空").__dict__
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
deleted_count = 0
|
|
183
|
+
failed_items = []
|
|
184
|
+
|
|
185
|
+
for conv in conversations:
|
|
186
|
+
user_id = conv.get("user_id")
|
|
187
|
+
cid = conv.get("cid")
|
|
188
|
+
|
|
189
|
+
if not user_id or not cid:
|
|
190
|
+
failed_items.append(
|
|
191
|
+
f"user_id:{user_id}, cid:{cid} - 缺少必要参数"
|
|
192
|
+
)
|
|
193
|
+
continue
|
|
194
|
+
|
|
195
|
+
try:
|
|
196
|
+
await self.core_lifecycle.conversation_manager.delete_conversation(
|
|
197
|
+
unified_msg_origin=user_id, conversation_id=cid
|
|
198
|
+
)
|
|
199
|
+
deleted_count += 1
|
|
200
|
+
except Exception as e:
|
|
201
|
+
failed_items.append(f"user_id:{user_id}, cid:{cid} - {str(e)}")
|
|
202
|
+
|
|
203
|
+
message = f"成功删除 {deleted_count} 个对话"
|
|
204
|
+
if failed_items:
|
|
205
|
+
message += f",失败 {len(failed_items)} 个"
|
|
206
|
+
|
|
207
|
+
return (
|
|
208
|
+
Response()
|
|
209
|
+
.ok(
|
|
210
|
+
{
|
|
211
|
+
"message": message,
|
|
212
|
+
"deleted_count": deleted_count,
|
|
213
|
+
"failed_count": len(failed_items),
|
|
214
|
+
"failed_items": failed_items,
|
|
215
|
+
}
|
|
216
|
+
)
|
|
217
|
+
.__dict__
|
|
218
|
+
)
|
|
219
|
+
else:
|
|
220
|
+
# 单个删除
|
|
221
|
+
user_id = data.get("user_id")
|
|
222
|
+
cid = data.get("cid")
|
|
223
|
+
|
|
224
|
+
if not user_id or not cid:
|
|
225
|
+
return Response().error("缺少必要参数: user_id 和 cid").__dict__
|
|
226
|
+
|
|
227
|
+
await self.core_lifecycle.conversation_manager.delete_conversation(
|
|
228
|
+
unified_msg_origin=user_id, conversation_id=cid
|
|
229
|
+
)
|
|
230
|
+
return Response().ok({"message": "对话删除成功"}).__dict__
|
|
181
231
|
|
|
182
232
|
except Exception as e:
|
|
183
233
|
logger.error(f"删除对话失败: {str(e)}\n{traceback.format_exc()}")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: AstrBot
|
|
3
|
-
Version: 4.1.
|
|
3
|
+
Version: 4.1.7
|
|
4
4
|
Summary: 易上手的多平台 LLM 聊天机器人及开发框架
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -72,7 +72,8 @@ Description-Content-Type: text/markdown
|
|
|
72
72
|
|
|
73
73
|
<a href="https://github.com/Soulter/AstrBot/blob/master/README_en.md">English</a> |
|
|
74
74
|
<a href="https://github.com/Soulter/AstrBot/blob/master/README_ja.md">日本語</a> |
|
|
75
|
-
<a href="https://astrbot.app/"
|
|
75
|
+
<a href="https://astrbot.app/">文档</a> |
|
|
76
|
+
<a href="https://blog.astrbot.app/">Blog</a> |
|
|
76
77
|
<a href="https://github.com/Soulter/AstrBot/issues">问题提交</a>
|
|
77
78
|
</div>
|
|
78
79
|
|
|
@@ -45,10 +45,10 @@ astrbot/core/agent/runners/base.py,sha256=exZS_d2BsrLz-xgeY9ZUPuXikBDUnKxO-dU3ZF
|
|
|
45
45
|
astrbot/core/agent/runners/tool_loop_agent_runner.py,sha256=rdGgu_QUjOIO5mEDbb7Fe-WZFDqVnOzrW5_D4Th5mcI,12894
|
|
46
46
|
astrbot/core/config/__init__.py,sha256=0CO_3sKtI3WOwWT0k4i6TleWq1SAWJFfB8KjnYB8Zig,172
|
|
47
47
|
astrbot/core/config/astrbot_config.py,sha256=X-b3c5m4msgJrdYFH2LXic5XKY0ViuUMdNZ335zqSBw,6335
|
|
48
|
-
astrbot/core/config/default.py,sha256=
|
|
48
|
+
astrbot/core/config/default.py,sha256=j-RQr859DQWgOeKT2qLa2XH9YtFU9ncMOEH6gd8TOys,119209
|
|
49
49
|
astrbot/core/db/__init__.py,sha256=CAtPQ7lfNSNE4hUylUBWks_49ah2amgYmw1V1lA9FwQ,8291
|
|
50
50
|
astrbot/core/db/po.py,sha256=9MfQf4oEOYCUz7qnCjs4isWkGNpQKhaDVYqKIY8W-l0,7707
|
|
51
|
-
astrbot/core/db/sqlite.py,sha256=
|
|
51
|
+
astrbot/core/db/sqlite.py,sha256=EsGyK54Yi_rA-rzUNMAwdSbWYGw0PHIaIF-FhYjdIBQ,20941
|
|
52
52
|
astrbot/core/db/migration/helper.py,sha256=FcwpvBANNeyBSrRhXyd3hudHYEyhTyrcRg9mU9lZtqY,1935
|
|
53
53
|
astrbot/core/db/migration/migra_3_to_4.py,sha256=I1CesaBbf5wj9agtNWxDl1V-qixmwdURbBQf5Vzagrk,15025
|
|
54
54
|
astrbot/core/db/migration/shared_preferences_v3.py,sha256=tE11WIpwT-Q8yVBkw4eveRr1PmFdNRJQSprH4xdO3G4,1245
|
|
@@ -73,7 +73,7 @@ astrbot/core/pipeline/content_safety_check/strategies/keywords.py,sha256=j3Ns_IH
|
|
|
73
73
|
astrbot/core/pipeline/content_safety_check/strategies/strategy.py,sha256=G32Xf42EgeyEnhyPLVYlUMiSnDNHUUnnz_MG0PXqfV4,1234
|
|
74
74
|
astrbot/core/pipeline/preprocess_stage/stage.py,sha256=hHDUsSvOVlyzdWEQEk-P2oSNC0H4FmYI5WrdoP38Zbc,3329
|
|
75
75
|
astrbot/core/pipeline/process_stage/stage.py,sha256=2hCX5LdUCzX2RbleMLF_Yqiot9YDyutF3ePPOZsWeA0,2677
|
|
76
|
-
astrbot/core/pipeline/process_stage/method/llm_request.py,sha256=
|
|
76
|
+
astrbot/core/pipeline/process_stage/method/llm_request.py,sha256=AdYtuLEWFjdrvbQzX9L9Km7zDdmv3Y8yOMfmdy09LFQ,24659
|
|
77
77
|
astrbot/core/pipeline/process_stage/method/star_request.py,sha256=IuPP7qnxvBgKV6a9D3wLU4_KU3Ec3Ml7IOADQCXDgqk,2501
|
|
78
78
|
astrbot/core/pipeline/rate_limit_check/stage.py,sha256=I_GkpSgioN0-T_catMwpRKtxx-TiMmvu8vV_FE5ORIA,4072
|
|
79
79
|
astrbot/core/pipeline/respond/stage.py,sha256=K_CrogwVS1EYNv9oAe3We95QwahPef1S9oBMwd5wdsw,10525
|
|
@@ -132,7 +132,7 @@ astrbot/core/provider/__init__.py,sha256=fhD_KB1-KpqJ7woaXDXc7kdlmL3XPQz3xlc5IkF
|
|
|
132
132
|
astrbot/core/provider/entites.py,sha256=-353AdRDA6ST4AS48cQ1RRAXHSy3F7pVS_28hW4cG2U,388
|
|
133
133
|
astrbot/core/provider/entities.py,sha256=CkC-U9nafBKo2n2kLZqzukosDX7RuZWAK4DMBHQkasA,11238
|
|
134
134
|
astrbot/core/provider/func_tool_manager.py,sha256=NuWMmAJaEwoJ3XCSvhwtmzDPdzX4K4BIRKuKgF0FlQk,20881
|
|
135
|
-
astrbot/core/provider/manager.py,sha256=
|
|
135
|
+
astrbot/core/provider/manager.py,sha256=R3JqtnV-kRg8monqry6PaPVJL1tQHp5gv4vKOeV8_cQ,21618
|
|
136
136
|
astrbot/core/provider/provider.py,sha256=rzzlUTUn3cRCRgfd2PhA5RcboHkEDlk3Dw9Q1P3DoJ8,7203
|
|
137
137
|
astrbot/core/provider/register.py,sha256=bWAF9zWNnSYQWjmZIXiWgxFaeWIiWjEoEIN_xhmq3mM,1830
|
|
138
138
|
astrbot/core/provider/sources/anthropic_source.py,sha256=9I6VEZ5ANv-SIx7TaNGr2o_9S1xK0eTMOxt1ZF4XrBM,14974
|
|
@@ -160,7 +160,7 @@ astrbot/core/provider/sources/zhipu_source.py,sha256=w-0C00U9_24HURUB5ppqcEvMr8l
|
|
|
160
160
|
astrbot/core/star/README.md,sha256=LXxqxp3xv_oejO8ocBPOrbmLe0WB4feu43fYDNddHTQ,161
|
|
161
161
|
astrbot/core/star/__init__.py,sha256=ynSwMrdCLyVMN3Q9flS_mcDDjdIGrkLBpfeDVoFj6PM,2080
|
|
162
162
|
astrbot/core/star/config.py,sha256=f4h1YFt1Tn6S2D-LvnhM483qaD8JdWjl-TBRV9CeYBo,3593
|
|
163
|
-
astrbot/core/star/context.py,sha256=
|
|
163
|
+
astrbot/core/star/context.py,sha256=6s2EdmIghQhLj2MFeRb5zwqO_wbug9zDTrljQgn-FvI,12961
|
|
164
164
|
astrbot/core/star/session_llm_manager.py,sha256=B2URKTxPW9FXUW1goZ0HkyuqE3PZ2X7o22GSPKnIAj0,8596
|
|
165
165
|
astrbot/core/star/session_plugin_manager.py,sha256=3vxbqPikZg4ZTHG_STvEKeqNplo78wknILSnFCmHTr0,5291
|
|
166
166
|
astrbot/core/star/star.py,sha256=fEgg7pxiIsnRg4Xw_KBIyOy3V919MpIgAWQ7FoE7bWc,1690
|
|
@@ -182,7 +182,7 @@ astrbot/core/star/register/star_handler.py,sha256=prfI_-uwe7AL-nzOMJCLCIJCyI1dC8
|
|
|
182
182
|
astrbot/core/utils/astrbot_path.py,sha256=ZK-OmCTOxH63GQ4kBMGZs9ybKmKuHMNXdW9RKqLbYRk,1227
|
|
183
183
|
astrbot/core/utils/command_parser.py,sha256=ktdaw4kdvhfCHIGLTIX7AfMjT9CCL_iuJq1I-V9LEUA,603
|
|
184
184
|
astrbot/core/utils/dify_api_client.py,sha256=RAKS3zjSl3nmhlNPCzN-byJZyZcwE6GR-8xZ9wzc-yE,5590
|
|
185
|
-
astrbot/core/utils/io.py,sha256=
|
|
185
|
+
astrbot/core/utils/io.py,sha256=zFxFVNEPA04Jr15GGdf6K3-9gBe4pxxGfsxqkqSXZ0Q,9082
|
|
186
186
|
astrbot/core/utils/log_pipe.py,sha256=AU-y7vvAUtegH3XRenJqsFpmH0UIV4zUfLWh-5uPkCI,883
|
|
187
187
|
astrbot/core/utils/metrics.py,sha256=uFGS3ZU81vcUbhiIrc-VAy9t5Lc6Oxh13wGYcl3oVGY,2456
|
|
188
188
|
astrbot/core/utils/path_util.py,sha256=_PKjMtQBGD_C7o5BzN4-NSsqCffPSr9NwiHQHTSehkM,3130
|
|
@@ -203,8 +203,8 @@ astrbot/dashboard/server.py,sha256=4d_0xDfMW-qKabVLBEVzOnjxF3qIiNMr3dvaxZO-cEk,9
|
|
|
203
203
|
astrbot/dashboard/routes/__init__.py,sha256=Bn6_rbYtujttHKHEn8Smv2RiObhwWyH9TagW4HZSzGw,710
|
|
204
204
|
astrbot/dashboard/routes/auth.py,sha256=igVjZWluaQpF-lrg-Ueb4IA553dA_Sn6pAxY34-83i8,2964
|
|
205
205
|
astrbot/dashboard/routes/chat.py,sha256=hfKrxS07qEYA3SxwgPymh08-Doi74hwmaYhwxRcwrkk,11601
|
|
206
|
-
astrbot/dashboard/routes/config.py,sha256=
|
|
207
|
-
astrbot/dashboard/routes/conversation.py,sha256=
|
|
206
|
+
astrbot/dashboard/routes/config.py,sha256=y6p6KcsCUWckhOyaDCogH-tL-lfO_WY1g7enOJ33Im0,31023
|
|
207
|
+
astrbot/dashboard/routes/conversation.py,sha256=4-jGtd5ApzcN1Jh6UAGet0A7oPkRMvvxk1gKc47KHmo,10768
|
|
208
208
|
astrbot/dashboard/routes/file.py,sha256=y3yi4ari-ELwiDicuniBlvXhVe8d1JgWRl6FdC42v9k,706
|
|
209
209
|
astrbot/dashboard/routes/log.py,sha256=hDl6Niz_Vs4xb64USjCBzdOcm68GDpEsQrNrLr8yKGc,2114
|
|
210
210
|
astrbot/dashboard/routes/persona.py,sha256=6icnNNE8A0Yy1WI0INWD9ZPKC7VcZG-xHDfYElhaP8M,7857
|
|
@@ -216,8 +216,8 @@ astrbot/dashboard/routes/static_file.py,sha256=7KnNcOb1BVqSTft114LhGsDkfg69X2jHE
|
|
|
216
216
|
astrbot/dashboard/routes/t2i.py,sha256=scp05AxoJM9cubrkSMBu1BbIWP1BMS50eFEPZ9S6WKM,8893
|
|
217
217
|
astrbot/dashboard/routes/tools.py,sha256=FvWgjzImgeIGFWJM_r2tku3UTj0J5LwZXfmZJxfJWHM,13975
|
|
218
218
|
astrbot/dashboard/routes/update.py,sha256=vhG6ET0GJNLTpfkKABYf3Aq5ChUCID1BvoZissWRBZg,6517
|
|
219
|
-
astrbot-4.1.
|
|
220
|
-
astrbot-4.1.
|
|
221
|
-
astrbot-4.1.
|
|
222
|
-
astrbot-4.1.
|
|
223
|
-
astrbot-4.1.
|
|
219
|
+
astrbot-4.1.7.dist-info/METADATA,sha256=Zjs2TXggb5s-DTJ9c91lhAJRT5LNJvRXHJrDRWRvmKQ,11086
|
|
220
|
+
astrbot-4.1.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
221
|
+
astrbot-4.1.7.dist-info/entry_points.txt,sha256=OEF09YmhBWYuViXrvTLLpstF4ccmNwDL8r7nnFD0pfI,53
|
|
222
|
+
astrbot-4.1.7.dist-info/licenses/LICENSE,sha256=zPfQj5Mq8-gThIiBcxETr7t8gND9bZWOjTGQAr80TQI,34500
|
|
223
|
+
astrbot-4.1.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|