AstrBot 4.1.7__py3-none-any.whl → 4.2.1__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 +33 -1
- astrbot/core/conversation_mgr.py +12 -4
- astrbot/core/db/__init__.py +5 -0
- astrbot/core/db/sqlite.py +8 -0
- astrbot/core/pipeline/process_stage/method/llm_request.py +25 -8
- astrbot/core/pipeline/session_status_check/stage.py +12 -1
- astrbot/core/pipeline/waking_check/stage.py +10 -5
- astrbot/core/platform/astr_message_event.py +9 -5
- astrbot/core/platform/sources/wecom/wecom_adapter.py +1 -0
- astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py +1 -0
- astrbot/core/provider/manager.py +2 -0
- astrbot/core/provider/sources/coze_api_client.py +314 -0
- astrbot/core/provider/sources/coze_source.py +635 -0
- astrbot/core/star/filter/command.py +23 -11
- astrbot/core/star/filter/command_group.py +15 -5
- astrbot/core/star/session_llm_manager.py +0 -4
- astrbot/core/utils/dify_api_client.py +44 -57
- astrbot/dashboard/routes/chat.py +70 -36
- astrbot/dashboard/routes/session_management.py +235 -78
- {astrbot-4.1.7.dist-info → astrbot-4.2.1.dist-info}/METADATA +1 -1
- {astrbot-4.1.7.dist-info → astrbot-4.2.1.dist-info}/RECORD +24 -22
- {astrbot-4.1.7.dist-info → astrbot-4.2.1.dist-info}/WHEEL +0 -0
- {astrbot-4.1.7.dist-info → astrbot-4.2.1.dist-info}/entry_points.txt +0 -0
- {astrbot-4.1.7.dist-info → astrbot-4.2.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -30,6 +30,7 @@ class SessionManagementRoute(Route):
|
|
|
30
30
|
"/session/update_tts": ("POST", self.update_session_tts),
|
|
31
31
|
"/session/update_name": ("POST", self.update_session_name),
|
|
32
32
|
"/session/update_status": ("POST", self.update_session_status),
|
|
33
|
+
"/session/delete": ("POST", self.delete_session),
|
|
33
34
|
}
|
|
34
35
|
self.conv_mgr = core_lifecycle.conversation_manager
|
|
35
36
|
self.core_lifecycle = core_lifecycle
|
|
@@ -180,60 +181,132 @@ class SessionManagementRoute(Route):
|
|
|
180
181
|
logger.error(error_msg)
|
|
181
182
|
return Response().error(f"获取会话列表失败: {str(e)}").__dict__
|
|
182
183
|
|
|
184
|
+
async def _update_single_session_persona(self, session_id: str, persona_name: str):
|
|
185
|
+
"""更新单个会话的 persona 的内部方法"""
|
|
186
|
+
conversation_manager = self.core_lifecycle.star_context.conversation_manager
|
|
187
|
+
conversation_id = await conversation_manager.get_curr_conversation_id(
|
|
188
|
+
session_id
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
conv = None
|
|
192
|
+
if conversation_id:
|
|
193
|
+
conv = await conversation_manager.get_conversation(
|
|
194
|
+
unified_msg_origin=session_id,
|
|
195
|
+
conversation_id=conversation_id,
|
|
196
|
+
)
|
|
197
|
+
if not conv or not conversation_id:
|
|
198
|
+
conversation_id = await conversation_manager.new_conversation(session_id)
|
|
199
|
+
|
|
200
|
+
# 更新 persona
|
|
201
|
+
await conversation_manager.update_conversation_persona_id(
|
|
202
|
+
session_id, persona_name
|
|
203
|
+
)
|
|
204
|
+
|
|
205
|
+
async def _handle_batch_operation(
|
|
206
|
+
self, session_ids: list, operation_func, operation_name: str, **kwargs
|
|
207
|
+
):
|
|
208
|
+
"""通用的批量操作处理方法"""
|
|
209
|
+
success_count = 0
|
|
210
|
+
error_sessions = []
|
|
211
|
+
|
|
212
|
+
for session_id in session_ids:
|
|
213
|
+
try:
|
|
214
|
+
await operation_func(session_id, **kwargs)
|
|
215
|
+
success_count += 1
|
|
216
|
+
except Exception as e:
|
|
217
|
+
logger.error(f"批量{operation_name} 会话 {session_id} 失败: {str(e)}")
|
|
218
|
+
error_sessions.append(session_id)
|
|
219
|
+
|
|
220
|
+
if error_sessions:
|
|
221
|
+
return (
|
|
222
|
+
Response()
|
|
223
|
+
.ok(
|
|
224
|
+
{
|
|
225
|
+
"message": f"批量更新完成,成功: {success_count},失败: {len(error_sessions)}",
|
|
226
|
+
"success_count": success_count,
|
|
227
|
+
"error_count": len(error_sessions),
|
|
228
|
+
"error_sessions": error_sessions,
|
|
229
|
+
}
|
|
230
|
+
)
|
|
231
|
+
.__dict__
|
|
232
|
+
)
|
|
233
|
+
else:
|
|
234
|
+
return (
|
|
235
|
+
Response()
|
|
236
|
+
.ok(
|
|
237
|
+
{
|
|
238
|
+
"message": f"成功批量{operation_name} {success_count} 个会话",
|
|
239
|
+
"success_count": success_count,
|
|
240
|
+
}
|
|
241
|
+
)
|
|
242
|
+
.__dict__
|
|
243
|
+
)
|
|
244
|
+
|
|
183
245
|
async def update_session_persona(self):
|
|
184
|
-
"""更新指定会话的 persona"""
|
|
246
|
+
"""更新指定会话的 persona,支持批量操作"""
|
|
185
247
|
try:
|
|
186
248
|
data = await request.get_json()
|
|
187
|
-
|
|
249
|
+
is_batch = data.get("is_batch", False)
|
|
188
250
|
persona_name = data.get("persona_name")
|
|
189
251
|
|
|
190
|
-
if not session_id:
|
|
191
|
-
return Response().error("缺少必要参数: session_id").__dict__
|
|
192
|
-
|
|
193
252
|
if persona_name is None:
|
|
194
253
|
return Response().error("缺少必要参数: persona_name").__dict__
|
|
195
254
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
)
|
|
255
|
+
if is_batch:
|
|
256
|
+
session_ids = data.get("session_ids", [])
|
|
257
|
+
if not session_ids:
|
|
258
|
+
return Response().error("缺少必要参数: session_ids").__dict__
|
|
201
259
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
260
|
+
return await self._handle_batch_operation(
|
|
261
|
+
session_ids,
|
|
262
|
+
self._update_single_session_persona,
|
|
263
|
+
"更新人格",
|
|
264
|
+
persona_name=persona_name,
|
|
206
265
|
)
|
|
266
|
+
else:
|
|
267
|
+
session_id = data.get("session_id")
|
|
268
|
+
if not session_id:
|
|
269
|
+
return Response().error("缺少必要参数: session_id").__dict__
|
|
207
270
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
271
|
+
await self._update_single_session_persona(session_id, persona_name)
|
|
272
|
+
return (
|
|
273
|
+
Response()
|
|
274
|
+
.ok(
|
|
275
|
+
{
|
|
276
|
+
"message": f"成功更新会话 {session_id} 的人格为 {persona_name}"
|
|
277
|
+
}
|
|
278
|
+
)
|
|
279
|
+
.__dict__
|
|
280
|
+
)
|
|
218
281
|
|
|
219
282
|
except Exception as e:
|
|
220
283
|
error_msg = f"更新会话人格失败: {str(e)}\n{traceback.format_exc()}"
|
|
221
284
|
logger.error(error_msg)
|
|
222
285
|
return Response().error(f"更新会话人格失败: {str(e)}").__dict__
|
|
223
286
|
|
|
287
|
+
async def _update_single_session_provider(
|
|
288
|
+
self, session_id: str, provider_id: str, provider_type_enum
|
|
289
|
+
):
|
|
290
|
+
"""更新单个会话的 provider 的内部方法"""
|
|
291
|
+
provider_manager = self.core_lifecycle.star_context.provider_manager
|
|
292
|
+
await provider_manager.set_provider(
|
|
293
|
+
provider_id=provider_id,
|
|
294
|
+
provider_type=provider_type_enum,
|
|
295
|
+
umo=session_id,
|
|
296
|
+
)
|
|
297
|
+
|
|
224
298
|
async def update_session_provider(self):
|
|
225
|
-
"""更新指定会话的 provider"""
|
|
299
|
+
"""更新指定会话的 provider,支持批量操作"""
|
|
226
300
|
try:
|
|
227
301
|
data = await request.get_json()
|
|
228
|
-
|
|
302
|
+
is_batch = data.get("is_batch", False)
|
|
229
303
|
provider_id = data.get("provider_id")
|
|
230
|
-
# "chat_completion", "speech_to_text", "text_to_speech"
|
|
231
304
|
provider_type = data.get("provider_type")
|
|
232
305
|
|
|
233
|
-
if not
|
|
306
|
+
if not provider_id or not provider_type:
|
|
234
307
|
return (
|
|
235
308
|
Response()
|
|
236
|
-
.error("缺少必要参数:
|
|
309
|
+
.error("缺少必要参数: provider_id, provider_type")
|
|
237
310
|
.__dict__
|
|
238
311
|
)
|
|
239
312
|
|
|
@@ -251,23 +324,35 @@ class SessionManagementRoute(Route):
|
|
|
251
324
|
.__dict__
|
|
252
325
|
)
|
|
253
326
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
327
|
+
if is_batch:
|
|
328
|
+
session_ids = data.get("session_ids", [])
|
|
329
|
+
if not session_ids:
|
|
330
|
+
return Response().error("缺少必要参数: session_ids").__dict__
|
|
331
|
+
|
|
332
|
+
return await self._handle_batch_operation(
|
|
333
|
+
session_ids,
|
|
334
|
+
self._update_single_session_provider,
|
|
335
|
+
f"更新 {provider_type} 提供商",
|
|
336
|
+
provider_id=provider_id,
|
|
337
|
+
provider_type_enum=provider_type_enum,
|
|
338
|
+
)
|
|
339
|
+
else:
|
|
340
|
+
session_id = data.get("session_id")
|
|
341
|
+
if not session_id:
|
|
342
|
+
return Response().error("缺少必要参数: session_id").__dict__
|
|
261
343
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
344
|
+
await self._update_single_session_provider(
|
|
345
|
+
session_id, provider_id, provider_type_enum
|
|
346
|
+
)
|
|
347
|
+
return (
|
|
348
|
+
Response()
|
|
349
|
+
.ok(
|
|
350
|
+
{
|
|
351
|
+
"message": f"成功更新会话 {session_id} 的 {provider_type} 提供商为 {provider_id}"
|
|
352
|
+
}
|
|
353
|
+
)
|
|
354
|
+
.__dict__
|
|
268
355
|
)
|
|
269
|
-
.__dict__
|
|
270
|
-
)
|
|
271
356
|
|
|
272
357
|
except Exception as e:
|
|
273
358
|
error_msg = f"更新会话提供商失败: {str(e)}\n{traceback.format_exc()}"
|
|
@@ -376,66 +461,98 @@ class SessionManagementRoute(Route):
|
|
|
376
461
|
logger.error(error_msg)
|
|
377
462
|
return Response().error(f"更新会话插件状态失败: {str(e)}").__dict__
|
|
378
463
|
|
|
464
|
+
async def _update_single_session_llm(self, session_id: str, enabled: bool):
|
|
465
|
+
"""更新单个会话的LLM状态的内部方法"""
|
|
466
|
+
SessionServiceManager.set_llm_status_for_session(session_id, enabled)
|
|
467
|
+
|
|
379
468
|
async def update_session_llm(self):
|
|
380
|
-
"""更新指定会话的LLM
|
|
469
|
+
"""更新指定会话的LLM启停状态,支持批量操作"""
|
|
381
470
|
try:
|
|
382
471
|
data = await request.get_json()
|
|
383
|
-
|
|
472
|
+
is_batch = data.get("is_batch", False)
|
|
384
473
|
enabled = data.get("enabled")
|
|
385
474
|
|
|
386
|
-
if not session_id:
|
|
387
|
-
return Response().error("缺少必要参数: session_id").__dict__
|
|
388
|
-
|
|
389
475
|
if enabled is None:
|
|
390
476
|
return Response().error("缺少必要参数: enabled").__dict__
|
|
391
477
|
|
|
392
|
-
|
|
393
|
-
|
|
478
|
+
if is_batch:
|
|
479
|
+
session_ids = data.get("session_ids", [])
|
|
480
|
+
if not session_ids:
|
|
481
|
+
return Response().error("缺少必要参数: session_ids").__dict__
|
|
394
482
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
{
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
483
|
+
result = await self._handle_batch_operation(
|
|
484
|
+
session_ids,
|
|
485
|
+
self._update_single_session_llm,
|
|
486
|
+
f"{'启用' if enabled else '禁用'}LLM",
|
|
487
|
+
enabled=enabled,
|
|
488
|
+
)
|
|
489
|
+
return result
|
|
490
|
+
else:
|
|
491
|
+
session_id = data.get("session_id")
|
|
492
|
+
if not session_id:
|
|
493
|
+
return Response().error("缺少必要参数: session_id").__dict__
|
|
494
|
+
|
|
495
|
+
await self._update_single_session_llm(session_id, enabled)
|
|
496
|
+
return (
|
|
497
|
+
Response()
|
|
498
|
+
.ok(
|
|
499
|
+
{
|
|
500
|
+
"message": f"LLM已{'启用' if enabled else '禁用'}",
|
|
501
|
+
"session_id": session_id,
|
|
502
|
+
"llm_enabled": enabled,
|
|
503
|
+
}
|
|
504
|
+
)
|
|
505
|
+
.__dict__
|
|
403
506
|
)
|
|
404
|
-
.__dict__
|
|
405
|
-
)
|
|
406
507
|
|
|
407
508
|
except Exception as e:
|
|
408
509
|
error_msg = f"更新会话LLM状态失败: {str(e)}\n{traceback.format_exc()}"
|
|
409
510
|
logger.error(error_msg)
|
|
410
511
|
return Response().error(f"更新会话LLM状态失败: {str(e)}").__dict__
|
|
411
512
|
|
|
513
|
+
async def _update_single_session_tts(self, session_id: str, enabled: bool):
|
|
514
|
+
"""更新单个会话的TTS状态的内部方法"""
|
|
515
|
+
SessionServiceManager.set_tts_status_for_session(session_id, enabled)
|
|
516
|
+
|
|
412
517
|
async def update_session_tts(self):
|
|
413
|
-
"""更新指定会话的TTS
|
|
518
|
+
"""更新指定会话的TTS启停状态,支持批量操作"""
|
|
414
519
|
try:
|
|
415
520
|
data = await request.get_json()
|
|
416
|
-
|
|
521
|
+
is_batch = data.get("is_batch", False)
|
|
417
522
|
enabled = data.get("enabled")
|
|
418
523
|
|
|
419
|
-
if not session_id:
|
|
420
|
-
return Response().error("缺少必要参数: session_id").__dict__
|
|
421
|
-
|
|
422
524
|
if enabled is None:
|
|
423
525
|
return Response().error("缺少必要参数: enabled").__dict__
|
|
424
526
|
|
|
425
|
-
|
|
426
|
-
|
|
527
|
+
if is_batch:
|
|
528
|
+
session_ids = data.get("session_ids", [])
|
|
529
|
+
if not session_ids:
|
|
530
|
+
return Response().error("缺少必要参数: session_ids").__dict__
|
|
427
531
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
{
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
532
|
+
result = await self._handle_batch_operation(
|
|
533
|
+
session_ids,
|
|
534
|
+
self._update_single_session_tts,
|
|
535
|
+
f"{'启用' if enabled else '禁用'}TTS",
|
|
536
|
+
enabled=enabled,
|
|
537
|
+
)
|
|
538
|
+
return result
|
|
539
|
+
else:
|
|
540
|
+
session_id = data.get("session_id")
|
|
541
|
+
if not session_id:
|
|
542
|
+
return Response().error("缺少必要参数: session_id").__dict__
|
|
543
|
+
|
|
544
|
+
await self._update_single_session_tts(session_id, enabled)
|
|
545
|
+
return (
|
|
546
|
+
Response()
|
|
547
|
+
.ok(
|
|
548
|
+
{
|
|
549
|
+
"message": f"TTS已{'启用' if enabled else '禁用'}",
|
|
550
|
+
"session_id": session_id,
|
|
551
|
+
"tts_enabled": enabled,
|
|
552
|
+
}
|
|
553
|
+
)
|
|
554
|
+
.__dict__
|
|
436
555
|
)
|
|
437
|
-
.__dict__
|
|
438
|
-
)
|
|
439
556
|
|
|
440
557
|
except Exception as e:
|
|
441
558
|
error_msg = f"更新会话TTS状态失败: {str(e)}\n{traceback.format_exc()}"
|
|
@@ -507,3 +624,43 @@ class SessionManagementRoute(Route):
|
|
|
507
624
|
error_msg = f"更新会话整体状态失败: {str(e)}\n{traceback.format_exc()}"
|
|
508
625
|
logger.error(error_msg)
|
|
509
626
|
return Response().error(f"更新会话整体状态失败: {str(e)}").__dict__
|
|
627
|
+
|
|
628
|
+
async def delete_session(self):
|
|
629
|
+
"""删除指定会话及其所有相关数据"""
|
|
630
|
+
try:
|
|
631
|
+
data = await request.get_json()
|
|
632
|
+
session_id = data.get("session_id")
|
|
633
|
+
|
|
634
|
+
if not session_id:
|
|
635
|
+
return Response().error("缺少必要参数: session_id").__dict__
|
|
636
|
+
|
|
637
|
+
# 删除会话的所有相关数据
|
|
638
|
+
conversation_manager = self.core_lifecycle.conversation_manager
|
|
639
|
+
|
|
640
|
+
# 1. 删除会话的所有对话
|
|
641
|
+
try:
|
|
642
|
+
await conversation_manager.delete_conversations_by_user_id(session_id)
|
|
643
|
+
except Exception as e:
|
|
644
|
+
logger.warning(f"删除会话 {session_id} 的对话失败: {str(e)}")
|
|
645
|
+
|
|
646
|
+
# 2. 清除会话的偏好设置数据(清空该会话的所有配置)
|
|
647
|
+
try:
|
|
648
|
+
await sp.clear_async("umo", session_id)
|
|
649
|
+
except Exception as e:
|
|
650
|
+
logger.warning(f"清除会话 {session_id} 的偏好设置失败: {str(e)}")
|
|
651
|
+
|
|
652
|
+
return (
|
|
653
|
+
Response()
|
|
654
|
+
.ok(
|
|
655
|
+
{
|
|
656
|
+
"message": f"会话 {session_id} 及其相关所有对话数据已成功删除",
|
|
657
|
+
"session_id": session_id,
|
|
658
|
+
}
|
|
659
|
+
)
|
|
660
|
+
.__dict__
|
|
661
|
+
)
|
|
662
|
+
|
|
663
|
+
except Exception as e:
|
|
664
|
+
error_msg = f"删除会话失败: {str(e)}\n{traceback.format_exc()}"
|
|
665
|
+
logger.error(error_msg)
|
|
666
|
+
return Response().error(f"删除会话失败: {str(e)}").__dict__
|
|
@@ -22,7 +22,7 @@ astrbot/cli/utils/version_comparator.py,sha256=3gLFA94eswvFsBVDSJmOTLJKxTdCD9kkQ
|
|
|
22
22
|
astrbot/core/__init__.py,sha256=-1atHjMqQyequsw6A1heEr4LldE0JVII9MXcuQFSAQM,1218
|
|
23
23
|
astrbot/core/astr_agent_context.py,sha256=4byUrIifQZFZwrDh0AtRLLBUvYX14tXhwiplShUNTt4,303
|
|
24
24
|
astrbot/core/astrbot_config_mgr.py,sha256=Z1OwN1DKoZFdul9S8wWeRTiPjKnp0OiYQlmSloVw5nI,10024
|
|
25
|
-
astrbot/core/conversation_mgr.py,sha256=
|
|
25
|
+
astrbot/core/conversation_mgr.py,sha256=DCnFXhdB0vf94vclX8l-JbLRcSny3cwxhwecAV4jbW0,12217
|
|
26
26
|
astrbot/core/core_lifecycle.py,sha256=z8ivxD4OY5iBK8XO078OlmvSwnCtpTKtiuMF_AF1Adk,11588
|
|
27
27
|
astrbot/core/event_bus.py,sha256=781lHFtnOfxBqS4CSxwTiPyoPvYOlbJce6arUGVfZEg,2536
|
|
28
28
|
astrbot/core/file_token_service.py,sha256=JmojgbEV022CTiFLsueOHrTnQV3BUnF5-_XU8x-1yz8,3107
|
|
@@ -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=
|
|
49
|
-
astrbot/core/db/__init__.py,sha256=
|
|
48
|
+
astrbot/core/config/default.py,sha256=I07JZgNZ1ux3XDM2005DTtkGbStCYuRmbTr4mzSXmww,120910
|
|
49
|
+
astrbot/core/db/__init__.py,sha256=VJlAcres5No8bI5YV0hrrumjBXknkfOevmuUW0jdBrc,8463
|
|
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=x7m8QdZrENZvh41jKuXYit1Ll-0Tpx9xJTw6YIkDtkg,21277
|
|
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,16 +73,16 @@ 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=NaWr0eRhuxqb4ZIscVNce_f_kP7GL12ME4Ph-WF4dog,25370
|
|
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
|
|
80
80
|
astrbot/core/pipeline/result_decorate/stage.py,sha256=jGXXtAYyQeo6EHsvrJ56x4rpDBgntXyG5k3kAIt8-Hk,13497
|
|
81
|
-
astrbot/core/pipeline/session_status_check/stage.py,sha256=
|
|
82
|
-
astrbot/core/pipeline/waking_check/stage.py,sha256=
|
|
81
|
+
astrbot/core/pipeline/session_status_check/stage.py,sha256=woucuVbzzQoi62MDoP3lTha4es_fUu4p-IPCzSiYDBw,1262
|
|
82
|
+
astrbot/core/pipeline/waking_check/stage.py,sha256=URBFmfid1CKhtCGjH7OzFmxBE-Gt9vv1eYlp6msIv_Q,8240
|
|
83
83
|
astrbot/core/pipeline/whitelist_check/stage.py,sha256=VcmLs0VfmspNTsitL_WrZXfv2lR2Nktrb5JEWc1VJuw,2403
|
|
84
84
|
astrbot/core/platform/__init__.py,sha256=jQ4UiThp7cDHfmIXAgBDodET87onl7mjii0CAD3RXTY,361
|
|
85
|
-
astrbot/core/platform/astr_message_event.py,sha256=
|
|
85
|
+
astrbot/core/platform/astr_message_event.py,sha256=J9kkDI334TXWO4-GOYxB335QSCDIXyl1gkSKIxNSAcI,14238
|
|
86
86
|
astrbot/core/platform/astrbot_message.py,sha256=r7jlUPfaOEh0yCSHaS1KQtYarZ9B4ikqMZwDj-wLv_k,2655
|
|
87
87
|
astrbot/core/platform/manager.py,sha256=bJoNhJpLB_sXdC80kqQNB8OhBbAl_340HaOPnOmreug,8076
|
|
88
88
|
astrbot/core/platform/message_session.py,sha256=Hitdfb7IK4SohaMFld0s0UlwLDpVw5UPTToh05bvH60,1076
|
|
@@ -122,21 +122,23 @@ astrbot/core/platform/sources/webchat/webchat_queue_mgr.py,sha256=2P0hQRNn7tMs9O
|
|
|
122
122
|
astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py,sha256=oXxy6ZJ-42_7yKZko9oepN0vBvVbLJRNjLbaxVr6ehk,40791
|
|
123
123
|
astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py,sha256=3K7NKrE46s5jhbxLEzduLPQF4Pt4Rj6IXXdu0TwoZUw,6019
|
|
124
124
|
astrbot/core/platform/sources/wechatpadpro/xml_data_parser.py,sha256=tfQGwWXEra99hvrYTHI4einQSt7ATcLm57Uq4VTP7d8,6230
|
|
125
|
-
astrbot/core/platform/sources/wecom/wecom_adapter.py,sha256=
|
|
125
|
+
astrbot/core/platform/sources/wecom/wecom_adapter.py,sha256=iDTE-CRCaER4zzo_1XbGXNiSVRkXSWkdEvBxi3EF9YQ,13621
|
|
126
126
|
astrbot/core/platform/sources/wecom/wecom_event.py,sha256=WkP7EP7k4AS5KUrxF7ouByyR3qS-GMZODv3yORQb0kI,9181
|
|
127
127
|
astrbot/core/platform/sources/wecom/wecom_kf.py,sha256=xPPt3P3tqB6d0gzPT0-0YfTkYfzlMki1PNUMGWMkH74,10891
|
|
128
128
|
astrbot/core/platform/sources/wecom/wecom_kf_message.py,sha256=nHPOnrOEnEx2uawL1_6Ht0QB7k7G1Nbt3BLpPQekfZA,5787
|
|
129
|
-
astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py,sha256=
|
|
129
|
+
astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py,sha256=oWZSYSjlE-cGyXVq1aDlACnMGB4Q40rmD3EYRTQo8fg,10475
|
|
130
130
|
astrbot/core/platform/sources/weixin_official_account/weixin_offacc_event.py,sha256=JpyQYaivJTUkPOMDz5ZXp4CLOQ6ek76eNLmrJXTXEEU,7196
|
|
131
131
|
astrbot/core/provider/__init__.py,sha256=fhD_KB1-KpqJ7woaXDXc7kdlmL3XPQz3xlc5IkFDJJ4,171
|
|
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=GoRR4hTRyYaaWH6_ICx0tflqG1Lng72dVOuq6pagb5k,21729
|
|
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
|
|
139
139
|
astrbot/core/provider/sources/azure_tts_source.py,sha256=V8WGpMFeYn-DhmE2FtYYYir-51T1S81XKvP08tslm8E,9350
|
|
140
|
+
astrbot/core/provider/sources/coze_api_client.py,sha256=dr2QpON0I83eIyadh5XDEVnGl26Jm5rbXGzQKkLBBcc,10820
|
|
141
|
+
astrbot/core/provider/sources/coze_source.py,sha256=KddH9Ryl-cuaobjVBY5ar_cPEb5MUDvc7Pqx9BTp9Oo,25215
|
|
140
142
|
astrbot/core/provider/sources/dashscope_source.py,sha256=HPzMCI-x5Ht76KxxvWHSwffW5tq6gWJQl48O_YKCTcc,7321
|
|
141
143
|
astrbot/core/provider/sources/dashscope_tts.py,sha256=qGVGSKoW-yVHlnWl_eONwLtkAGMQX6t81FPkC-dV25U,1532
|
|
142
144
|
astrbot/core/provider/sources/dify_source.py,sha256=Q0VmnacKwD-fOnvwYqbrRMspDYOlJZAHnjBawRzshw4,11472
|
|
@@ -161,7 +163,7 @@ astrbot/core/star/README.md,sha256=LXxqxp3xv_oejO8ocBPOrbmLe0WB4feu43fYDNddHTQ,1
|
|
|
161
163
|
astrbot/core/star/__init__.py,sha256=ynSwMrdCLyVMN3Q9flS_mcDDjdIGrkLBpfeDVoFj6PM,2080
|
|
162
164
|
astrbot/core/star/config.py,sha256=f4h1YFt1Tn6S2D-LvnhM483qaD8JdWjl-TBRV9CeYBo,3593
|
|
163
165
|
astrbot/core/star/context.py,sha256=6s2EdmIghQhLj2MFeRb5zwqO_wbug9zDTrljQgn-FvI,12961
|
|
164
|
-
astrbot/core/star/session_llm_manager.py,sha256=
|
|
166
|
+
astrbot/core/star/session_llm_manager.py,sha256=c9vPbL454_H--x5c-cjbiH-y1CrcMfTLfbhNmKgSYio,8467
|
|
165
167
|
astrbot/core/star/session_plugin_manager.py,sha256=3vxbqPikZg4ZTHG_STvEKeqNplo78wknILSnFCmHTr0,5291
|
|
166
168
|
astrbot/core/star/star.py,sha256=fEgg7pxiIsnRg4Xw_KBIyOy3V919MpIgAWQ7FoE7bWc,1690
|
|
167
169
|
astrbot/core/star/star_handler.py,sha256=0hQq5QOre3AjPx7AfZfyfvx2k-iVBCaXg0hofvqE2k4,4888
|
|
@@ -169,8 +171,8 @@ astrbot/core/star/star_manager.py,sha256=c6s90gg3SgUIQ2UZxUUhslFPdS3jxVaVZOulvSM
|
|
|
169
171
|
astrbot/core/star/star_tools.py,sha256=tAX49jAcGc5mFYu7FW3MrTFgAKtX-_TIE3tfeEArGx4,10863
|
|
170
172
|
astrbot/core/star/updator.py,sha256=IVml0S4WGmKRl42EeDbU0bP8-7d0yfEY0X9qpshI_RA,3129
|
|
171
173
|
astrbot/core/star/filter/__init__.py,sha256=xhdp6MMbBJbCHDDtBcAzWZ86DSFTPKzj8RpE2Cdb8ls,469
|
|
172
|
-
astrbot/core/star/filter/command.py,sha256=
|
|
173
|
-
astrbot/core/star/filter/command_group.py,sha256=
|
|
174
|
+
astrbot/core/star/filter/command.py,sha256=Lw1q86O2l9J9kZAflM3z7hcGnjDORF2OOAIQJH0jt5k,7286
|
|
175
|
+
astrbot/core/star/filter/command_group.py,sha256=PBvIWBji6EJejWVXppvOVRojGR8y6WfRF5qlyJ2jSRo,4981
|
|
174
176
|
astrbot/core/star/filter/custom_filter.py,sha256=UPEfr-vYJR1NsLOp75A8Oa8RFkluEC3rkzbHM2ct0ek,2238
|
|
175
177
|
astrbot/core/star/filter/event_message_type.py,sha256=R45Buoy9YALxnY6oanFlZMLfSZex2NAHPsl8DFSI_2Y,1162
|
|
176
178
|
astrbot/core/star/filter/permission.py,sha256=GmyA2xqPCGVryLMa7OrWiuYRR-9pcQ6PaYOedPySH_0,915
|
|
@@ -181,7 +183,7 @@ astrbot/core/star/register/star.py,sha256=1Yml-_EGKr0uYUTmdu3CAVASIJss6JaBxoRP_D
|
|
|
181
183
|
astrbot/core/star/register/star_handler.py,sha256=prfI_-uwe7AL-nzOMJCLCIJCyI1dC8Gpalmtej2hg_4,16269
|
|
182
184
|
astrbot/core/utils/astrbot_path.py,sha256=ZK-OmCTOxH63GQ4kBMGZs9ybKmKuHMNXdW9RKqLbYRk,1227
|
|
183
185
|
astrbot/core/utils/command_parser.py,sha256=ktdaw4kdvhfCHIGLTIX7AfMjT9CCL_iuJq1I-V9LEUA,603
|
|
184
|
-
astrbot/core/utils/dify_api_client.py,sha256=
|
|
186
|
+
astrbot/core/utils/dify_api_client.py,sha256=EpV3hPB0aFWGQtjgtS-SEM3EFmBoMmvEOKyU52TQgbY,4809
|
|
185
187
|
astrbot/core/utils/io.py,sha256=zFxFVNEPA04Jr15GGdf6K3-9gBe4pxxGfsxqkqSXZ0Q,9082
|
|
186
188
|
astrbot/core/utils/log_pipe.py,sha256=AU-y7vvAUtegH3XRenJqsFpmH0UIV4zUfLWh-5uPkCI,883
|
|
187
189
|
astrbot/core/utils/metrics.py,sha256=uFGS3ZU81vcUbhiIrc-VAy9t5Lc6Oxh13wGYcl3oVGY,2456
|
|
@@ -202,7 +204,7 @@ astrbot/core/utils/t2i/template/base.html,sha256=fQvq4I4lrlH2s_jwAzj62lWeC4g87xX
|
|
|
202
204
|
astrbot/dashboard/server.py,sha256=4d_0xDfMW-qKabVLBEVzOnjxF3qIiNMr3dvaxZO-cEk,9049
|
|
203
205
|
astrbot/dashboard/routes/__init__.py,sha256=Bn6_rbYtujttHKHEn8Smv2RiObhwWyH9TagW4HZSzGw,710
|
|
204
206
|
astrbot/dashboard/routes/auth.py,sha256=igVjZWluaQpF-lrg-Ueb4IA553dA_Sn6pAxY34-83i8,2964
|
|
205
|
-
astrbot/dashboard/routes/chat.py,sha256=
|
|
207
|
+
astrbot/dashboard/routes/chat.py,sha256=6dGKXBkbGb5TGcIMFh6tr6bvdv7yekrgehSdkYSZ8Ls,13232
|
|
206
208
|
astrbot/dashboard/routes/config.py,sha256=y6p6KcsCUWckhOyaDCogH-tL-lfO_WY1g7enOJ33Im0,31023
|
|
207
209
|
astrbot/dashboard/routes/conversation.py,sha256=4-jGtd5ApzcN1Jh6UAGet0A7oPkRMvvxk1gKc47KHmo,10768
|
|
208
210
|
astrbot/dashboard/routes/file.py,sha256=y3yi4ari-ELwiDicuniBlvXhVe8d1JgWRl6FdC42v9k,706
|
|
@@ -210,14 +212,14 @@ astrbot/dashboard/routes/log.py,sha256=hDl6Niz_Vs4xb64USjCBzdOcm68GDpEsQrNrLr8yK
|
|
|
210
212
|
astrbot/dashboard/routes/persona.py,sha256=6icnNNE8A0Yy1WI0INWD9ZPKC7VcZG-xHDfYElhaP8M,7857
|
|
211
213
|
astrbot/dashboard/routes/plugin.py,sha256=cGGJVEM55uRiPo-EeD5apZQISzPw9vux7a-U2dE4fZQ,19429
|
|
212
214
|
astrbot/dashboard/routes/route.py,sha256=V-Wm88D0BmxSYAUbedunykbWy5p7Tggae9nDhxm7LZU,1545
|
|
213
|
-
astrbot/dashboard/routes/session_management.py,sha256=
|
|
215
|
+
astrbot/dashboard/routes/session_management.py,sha256=amWO28hzb7NZLhQDRfC-h9I5ZHBwJPLRDdTCge4vfaA,26760
|
|
214
216
|
astrbot/dashboard/routes/stat.py,sha256=KCtP0-f9g664gM2SOBgnU8uKx6zt93-5Kut-d7wd7zk,6910
|
|
215
217
|
astrbot/dashboard/routes/static_file.py,sha256=7KnNcOb1BVqSTft114LhGsDkfg69X2jHEm0tOK0kW0Y,1169
|
|
216
218
|
astrbot/dashboard/routes/t2i.py,sha256=scp05AxoJM9cubrkSMBu1BbIWP1BMS50eFEPZ9S6WKM,8893
|
|
217
219
|
astrbot/dashboard/routes/tools.py,sha256=FvWgjzImgeIGFWJM_r2tku3UTj0J5LwZXfmZJxfJWHM,13975
|
|
218
220
|
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.
|
|
221
|
+
astrbot-4.2.1.dist-info/METADATA,sha256=INv0kqB_UC7RM4kPRUW7K6m8oYaU8-0gNfOee9MZPuU,11086
|
|
222
|
+
astrbot-4.2.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
223
|
+
astrbot-4.2.1.dist-info/entry_points.txt,sha256=OEF09YmhBWYuViXrvTLLpstF4ccmNwDL8r7nnFD0pfI,53
|
|
224
|
+
astrbot-4.2.1.dist-info/licenses/LICENSE,sha256=zPfQj5Mq8-gThIiBcxETr7t8gND9bZWOjTGQAr80TQI,34500
|
|
225
|
+
astrbot-4.2.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|