AstrBot 4.3.5__py3-none-any.whl → 4.5.0__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/agent/runners/tool_loop_agent_runner.py +31 -2
- astrbot/core/astrbot_config_mgr.py +23 -51
- astrbot/core/config/default.py +92 -12
- astrbot/core/conversation_mgr.py +36 -1
- astrbot/core/core_lifecycle.py +24 -5
- astrbot/core/db/migration/migra_45_to_46.py +44 -0
- astrbot/core/db/vec_db/base.py +33 -2
- astrbot/core/db/vec_db/faiss_impl/document_storage.py +310 -52
- astrbot/core/db/vec_db/faiss_impl/embedding_storage.py +31 -3
- astrbot/core/db/vec_db/faiss_impl/vec_db.py +81 -23
- astrbot/core/file_token_service.py +6 -1
- astrbot/core/initial_loader.py +6 -3
- astrbot/core/knowledge_base/chunking/__init__.py +11 -0
- astrbot/core/knowledge_base/chunking/base.py +24 -0
- astrbot/core/knowledge_base/chunking/fixed_size.py +57 -0
- astrbot/core/knowledge_base/chunking/recursive.py +155 -0
- astrbot/core/knowledge_base/kb_db_sqlite.py +299 -0
- astrbot/core/knowledge_base/kb_helper.py +348 -0
- astrbot/core/knowledge_base/kb_mgr.py +287 -0
- astrbot/core/knowledge_base/models.py +114 -0
- astrbot/core/knowledge_base/parsers/__init__.py +15 -0
- astrbot/core/knowledge_base/parsers/base.py +50 -0
- astrbot/core/knowledge_base/parsers/markitdown_parser.py +25 -0
- astrbot/core/knowledge_base/parsers/pdf_parser.py +100 -0
- astrbot/core/knowledge_base/parsers/text_parser.py +41 -0
- astrbot/core/knowledge_base/parsers/util.py +13 -0
- astrbot/core/knowledge_base/retrieval/__init__.py +16 -0
- astrbot/core/knowledge_base/retrieval/hit_stopwords.txt +767 -0
- astrbot/core/knowledge_base/retrieval/manager.py +273 -0
- astrbot/core/knowledge_base/retrieval/rank_fusion.py +138 -0
- astrbot/core/knowledge_base/retrieval/sparse_retriever.py +130 -0
- astrbot/core/pipeline/process_stage/method/llm_request.py +29 -7
- astrbot/core/pipeline/process_stage/utils.py +80 -0
- astrbot/core/platform/astr_message_event.py +8 -7
- astrbot/core/platform/sources/misskey/misskey_adapter.py +380 -44
- astrbot/core/platform/sources/misskey/misskey_api.py +581 -45
- astrbot/core/platform/sources/misskey/misskey_event.py +76 -41
- astrbot/core/platform/sources/misskey/misskey_utils.py +254 -43
- astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py +2 -1
- astrbot/core/platform/sources/satori/satori_adapter.py +27 -1
- astrbot/core/platform/sources/satori/satori_event.py +270 -99
- astrbot/core/provider/manager.py +14 -9
- astrbot/core/provider/provider.py +67 -0
- astrbot/core/provider/sources/anthropic_source.py +4 -4
- astrbot/core/provider/sources/dashscope_source.py +10 -9
- astrbot/core/provider/sources/dify_source.py +6 -8
- astrbot/core/provider/sources/gemini_embedding_source.py +1 -2
- astrbot/core/provider/sources/openai_embedding_source.py +1 -2
- astrbot/core/provider/sources/openai_source.py +18 -15
- astrbot/core/provider/sources/openai_tts_api_source.py +1 -1
- astrbot/core/star/context.py +3 -0
- astrbot/core/star/star.py +6 -0
- astrbot/core/star/star_manager.py +13 -7
- astrbot/core/umop_config_router.py +81 -0
- astrbot/core/updator.py +1 -1
- astrbot/core/utils/io.py +23 -12
- astrbot/dashboard/routes/__init__.py +2 -0
- astrbot/dashboard/routes/config.py +137 -9
- astrbot/dashboard/routes/knowledge_base.py +1065 -0
- astrbot/dashboard/routes/plugin.py +24 -5
- astrbot/dashboard/routes/update.py +1 -1
- astrbot/dashboard/server.py +6 -0
- astrbot/dashboard/utils.py +161 -0
- {astrbot-4.3.5.dist-info → astrbot-4.5.0.dist-info}/METADATA +29 -13
- {astrbot-4.3.5.dist-info → astrbot-4.5.0.dist-info}/RECORD +68 -44
- {astrbot-4.3.5.dist-info → astrbot-4.5.0.dist-info}/WHEEL +0 -0
- {astrbot-4.3.5.dist-info → astrbot-4.5.0.dist-info}/entry_points.txt +0 -0
- {astrbot-4.3.5.dist-info → astrbot-4.5.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -8,7 +8,7 @@ import ssl
|
|
|
8
8
|
import certifi
|
|
9
9
|
|
|
10
10
|
from .route import Route, Response, RouteContext
|
|
11
|
-
from astrbot.core import logger
|
|
11
|
+
from astrbot.core import logger, file_token_service
|
|
12
12
|
from quart import request
|
|
13
13
|
from astrbot.core.star.star_manager import PluginManager
|
|
14
14
|
from astrbot.core.core_lifecycle import AstrBotCoreLifecycle
|
|
@@ -54,6 +54,8 @@ class PluginRoute(Route):
|
|
|
54
54
|
EventType.OnAfterMessageSentEvent: "发送消息后",
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
self._logo_cache = {}
|
|
58
|
+
|
|
57
59
|
async def reload_plugins(self):
|
|
58
60
|
if DEMO_MODE:
|
|
59
61
|
return (
|
|
@@ -147,7 +149,7 @@ class PluginRoute(Route):
|
|
|
147
149
|
return False
|
|
148
150
|
|
|
149
151
|
# 加载缓存文件
|
|
150
|
-
with open(cache_file,
|
|
152
|
+
with open(cache_file, encoding="utf-8") as f:
|
|
151
153
|
cache_data = json.load(f)
|
|
152
154
|
|
|
153
155
|
cached_md5 = cache_data.get("md5")
|
|
@@ -197,7 +199,7 @@ class PluginRoute(Route):
|
|
|
197
199
|
"""加载本地缓存的插件市场数据"""
|
|
198
200
|
try:
|
|
199
201
|
if os.path.exists(cache_file):
|
|
200
|
-
with open(cache_file,
|
|
202
|
+
with open(cache_file, encoding="utf-8") as f:
|
|
201
203
|
cache_data = json.load(f)
|
|
202
204
|
# 检查缓存是否有效
|
|
203
205
|
if "data" in cache_data and "timestamp" in cache_data:
|
|
@@ -209,7 +211,7 @@ class PluginRoute(Route):
|
|
|
209
211
|
logger.warning(f"加载插件市场缓存失败: {e}")
|
|
210
212
|
return None
|
|
211
213
|
|
|
212
|
-
def _save_plugin_cache(self, cache_file: str, data, md5: str = None):
|
|
214
|
+
def _save_plugin_cache(self, cache_file: str, data, md5: str | None = None):
|
|
213
215
|
"""保存插件市场数据到本地缓存"""
|
|
214
216
|
try:
|
|
215
217
|
# 确保目录存在
|
|
@@ -227,12 +229,27 @@ class PluginRoute(Route):
|
|
|
227
229
|
except Exception as e:
|
|
228
230
|
logger.warning(f"保存插件市场缓存失败: {e}")
|
|
229
231
|
|
|
232
|
+
async def get_plugin_logo_token(self, logo_path: str):
|
|
233
|
+
try:
|
|
234
|
+
if token := self._logo_cache.get(logo_path):
|
|
235
|
+
if not await file_token_service.check_token_expired(token):
|
|
236
|
+
return self._logo_cache[logo_path]
|
|
237
|
+
token = await file_token_service.register_file(logo_path, timeout=300)
|
|
238
|
+
self._logo_cache[logo_path] = token
|
|
239
|
+
return token
|
|
240
|
+
except Exception as e:
|
|
241
|
+
logger.warning(f"获取插件 Logo 失败: {e}")
|
|
242
|
+
return None
|
|
243
|
+
|
|
230
244
|
async def get_plugins(self):
|
|
231
245
|
_plugin_resp = []
|
|
232
246
|
plugin_name = request.args.get("name")
|
|
233
247
|
for plugin in self.plugin_manager.context.get_all_stars():
|
|
234
248
|
if plugin_name and plugin.name != plugin_name:
|
|
235
249
|
continue
|
|
250
|
+
logo_url = None
|
|
251
|
+
if plugin.logo_path:
|
|
252
|
+
logo_url = await self.get_plugin_logo_token(plugin.logo_path)
|
|
236
253
|
_t = {
|
|
237
254
|
"name": plugin.name,
|
|
238
255
|
"repo": "" if plugin.repo is None else plugin.repo,
|
|
@@ -245,6 +262,8 @@ class PluginRoute(Route):
|
|
|
245
262
|
"handlers": await self.get_plugin_handlers_info(
|
|
246
263
|
plugin.star_handler_full_names
|
|
247
264
|
),
|
|
265
|
+
"display_name": plugin.display_name,
|
|
266
|
+
"logo": f"/api/file/{logo_url}" if logo_url else None,
|
|
248
267
|
}
|
|
249
268
|
_plugin_resp.append(_t)
|
|
250
269
|
return (
|
|
@@ -469,7 +488,7 @@ class PluginRoute(Route):
|
|
|
469
488
|
return Response().error(f"插件 {plugin_name} 没有README文件").__dict__
|
|
470
489
|
|
|
471
490
|
try:
|
|
472
|
-
with open(readme_path,
|
|
491
|
+
with open(readme_path, encoding="utf-8") as f:
|
|
473
492
|
readme_content = f.read()
|
|
474
493
|
|
|
475
494
|
return (
|
|
@@ -67,7 +67,7 @@ class UpdateRoute(Route):
|
|
|
67
67
|
"version": f"v{VERSION}",
|
|
68
68
|
"has_new_version": ret is not None,
|
|
69
69
|
"dashboard_version": dv,
|
|
70
|
-
"dashboard_has_new_version": dv and dv != f"v{VERSION}",
|
|
70
|
+
"dashboard_has_new_version": bool(dv and dv != f"v{VERSION}"),
|
|
71
71
|
},
|
|
72
72
|
).__dict__
|
|
73
73
|
except Exception as e:
|
astrbot/dashboard/server.py
CHANGED
|
@@ -72,6 +72,7 @@ class AstrBotDashboard:
|
|
|
72
72
|
)
|
|
73
73
|
self.persona_route = PersonaRoute(self.context, db, core_lifecycle)
|
|
74
74
|
self.t2i_route = T2iRoute(self.context, core_lifecycle)
|
|
75
|
+
self.kb_route = KnowledgeBaseRoute(self.context, core_lifecycle)
|
|
75
76
|
|
|
76
77
|
self.app.add_url_rule(
|
|
77
78
|
"/api/plug/<path:subpath>",
|
|
@@ -177,6 +178,11 @@ class AstrBotDashboard:
|
|
|
177
178
|
else:
|
|
178
179
|
port = self.core_lifecycle.astrbot_config["dashboard"].get("port", 6185)
|
|
179
180
|
host = self.core_lifecycle.astrbot_config["dashboard"].get("host", "0.0.0.0")
|
|
181
|
+
enable = self.core_lifecycle.astrbot_config["dashboard"].get("enable", True)
|
|
182
|
+
|
|
183
|
+
if not enable:
|
|
184
|
+
logger.info("WebUI 已被禁用")
|
|
185
|
+
return
|
|
180
186
|
|
|
181
187
|
logger.info(f"正在启动 WebUI, 监听地址: http://{host}:{port}")
|
|
182
188
|
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import base64
|
|
2
|
+
import os
|
|
3
|
+
import traceback
|
|
4
|
+
from io import BytesIO
|
|
5
|
+
from astrbot.api import logger
|
|
6
|
+
from astrbot.core.knowledge_base.kb_helper import KBHelper
|
|
7
|
+
from astrbot.core.knowledge_base.kb_mgr import KnowledgeBaseManager
|
|
8
|
+
from astrbot.core.db.vec_db.faiss_impl import FaissVecDB
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
async def generate_tsne_visualization(
|
|
12
|
+
query: str, kb_names: list[str], kb_manager: KnowledgeBaseManager
|
|
13
|
+
) -> str | None:
|
|
14
|
+
"""生成 t-SNE 可视化图片
|
|
15
|
+
|
|
16
|
+
Args:
|
|
17
|
+
query: 查询文本
|
|
18
|
+
kb_names: 知识库名称列表
|
|
19
|
+
kb_manager: 知识库管理器
|
|
20
|
+
|
|
21
|
+
Returns:
|
|
22
|
+
图片路径或 None
|
|
23
|
+
"""
|
|
24
|
+
try:
|
|
25
|
+
import faiss
|
|
26
|
+
import numpy as np
|
|
27
|
+
import matplotlib
|
|
28
|
+
|
|
29
|
+
matplotlib.use("Agg") # 使用非交互式后端
|
|
30
|
+
import matplotlib.pyplot as plt
|
|
31
|
+
from sklearn.manifold import TSNE
|
|
32
|
+
except ImportError as e:
|
|
33
|
+
raise Exception(
|
|
34
|
+
"缺少必要的库以生成 t-SNE 可视化。请安装 matplotlib 和 scikit-learn: {e}"
|
|
35
|
+
) from e
|
|
36
|
+
|
|
37
|
+
try:
|
|
38
|
+
# 获取第一个知识库的向量数据
|
|
39
|
+
kb_helper: KBHelper | None = None
|
|
40
|
+
for kb_name in kb_names:
|
|
41
|
+
kb_helper = await kb_manager.get_kb_by_name(kb_name)
|
|
42
|
+
if kb_helper:
|
|
43
|
+
break
|
|
44
|
+
|
|
45
|
+
if not kb_helper:
|
|
46
|
+
logger.warning("未找到知识库")
|
|
47
|
+
return None
|
|
48
|
+
|
|
49
|
+
kb = kb_helper.kb
|
|
50
|
+
index_path = f"data/knowledge_base/{kb.kb_id}/index.faiss"
|
|
51
|
+
|
|
52
|
+
# 读取 FAISS 索引
|
|
53
|
+
if not os.path.exists(index_path):
|
|
54
|
+
logger.warning(f"FAISS 索引不存在: {index_path}")
|
|
55
|
+
return None
|
|
56
|
+
|
|
57
|
+
index = faiss.read_index(index_path)
|
|
58
|
+
|
|
59
|
+
if index.ntotal == 0:
|
|
60
|
+
logger.warning("索引为空")
|
|
61
|
+
return None
|
|
62
|
+
|
|
63
|
+
# 提取所有向量
|
|
64
|
+
logger.info(f"提取 {index.ntotal} 个向量用于可视化...")
|
|
65
|
+
if isinstance(index, faiss.IndexIDMap):
|
|
66
|
+
base_index = faiss.downcast_index(index.index)
|
|
67
|
+
if hasattr(base_index, "reconstruct_n"):
|
|
68
|
+
vectors = base_index.reconstruct_n(0, index.ntotal)
|
|
69
|
+
else:
|
|
70
|
+
vectors = np.zeros((index.ntotal, index.d), dtype=np.float32)
|
|
71
|
+
for i in range(index.ntotal):
|
|
72
|
+
base_index.reconstruct(i, vectors[i])
|
|
73
|
+
elif hasattr(index, "reconstruct_n"):
|
|
74
|
+
vectors = index.reconstruct_n(0, index.ntotal)
|
|
75
|
+
else:
|
|
76
|
+
vectors = np.zeros((index.ntotal, index.d), dtype=np.float32)
|
|
77
|
+
for i in range(index.ntotal):
|
|
78
|
+
index.reconstruct(i, vectors[i])
|
|
79
|
+
|
|
80
|
+
# 获取查询向量
|
|
81
|
+
vec_db: FaissVecDB = kb_helper.vec_db # type: ignore
|
|
82
|
+
embedding_provider = vec_db.embedding_provider
|
|
83
|
+
query_embedding = await embedding_provider.get_embedding(query)
|
|
84
|
+
query_vector = np.array([query_embedding], dtype=np.float32)
|
|
85
|
+
|
|
86
|
+
# 合并所有向量和查询向量
|
|
87
|
+
all_vectors = np.vstack([vectors, query_vector])
|
|
88
|
+
|
|
89
|
+
# t-SNE 降维
|
|
90
|
+
logger.info("开始 t-SNE 降维...")
|
|
91
|
+
perplexity = min(30, all_vectors.shape[0] - 1)
|
|
92
|
+
tsne = TSNE(n_components=2, random_state=42, perplexity=perplexity)
|
|
93
|
+
vectors_2d = tsne.fit_transform(all_vectors)
|
|
94
|
+
|
|
95
|
+
# 分离知识库向量和查询向量
|
|
96
|
+
kb_vectors_2d = vectors_2d[:-1]
|
|
97
|
+
query_vector_2d = vectors_2d[-1]
|
|
98
|
+
|
|
99
|
+
# 可视化
|
|
100
|
+
logger.info("生成可视化图表...")
|
|
101
|
+
plt.figure(figsize=(14, 10))
|
|
102
|
+
|
|
103
|
+
# 绘制知识库向量
|
|
104
|
+
scatter = plt.scatter(
|
|
105
|
+
kb_vectors_2d[:, 0],
|
|
106
|
+
kb_vectors_2d[:, 1],
|
|
107
|
+
alpha=0.5,
|
|
108
|
+
s=40,
|
|
109
|
+
c=range(len(kb_vectors_2d)),
|
|
110
|
+
cmap="viridis",
|
|
111
|
+
label="Knowledge Base Vectors",
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
# 绘制查询向量(红色 X)
|
|
115
|
+
plt.scatter(
|
|
116
|
+
query_vector_2d[0],
|
|
117
|
+
query_vector_2d[1],
|
|
118
|
+
c="red",
|
|
119
|
+
s=300,
|
|
120
|
+
marker="X",
|
|
121
|
+
edgecolors="black",
|
|
122
|
+
linewidths=2,
|
|
123
|
+
label="Query",
|
|
124
|
+
zorder=5,
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
# 添加查询文本标注
|
|
128
|
+
plt.annotate(
|
|
129
|
+
"Query",
|
|
130
|
+
(query_vector_2d[0], query_vector_2d[1]),
|
|
131
|
+
xytext=(10, 10),
|
|
132
|
+
textcoords="offset points",
|
|
133
|
+
fontsize=10,
|
|
134
|
+
bbox={"boxstyle": "round,pad=0.5", "fc": "yellow", "alpha": 0.7},
|
|
135
|
+
arrowprops={"arrowstyle": "->", "connectionstyle": "arc3,rad=0"},
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
plt.colorbar(scatter, label="Vector Index")
|
|
139
|
+
plt.title(
|
|
140
|
+
f"t-SNE Visualization: Query in Knowledge Base\n"
|
|
141
|
+
f"({index.ntotal} vectors, {index.d} dimensions, KB: {kb.kb_name})",
|
|
142
|
+
fontsize=14,
|
|
143
|
+
pad=20,
|
|
144
|
+
)
|
|
145
|
+
plt.xlabel("t-SNE Dimension 1", fontsize=12)
|
|
146
|
+
plt.ylabel("t-SNE Dimension 2", fontsize=12)
|
|
147
|
+
plt.grid(True, alpha=0.3)
|
|
148
|
+
plt.legend(fontsize=10, loc="upper right")
|
|
149
|
+
|
|
150
|
+
# base64 编码图片返回
|
|
151
|
+
buffer = BytesIO()
|
|
152
|
+
plt.savefig(buffer, format="png", dpi=150, bbox_inches="tight")
|
|
153
|
+
plt.close()
|
|
154
|
+
buffer.seek(0)
|
|
155
|
+
img_base64 = base64.b64encode(buffer.read()).decode("utf-8")
|
|
156
|
+
return img_base64
|
|
157
|
+
|
|
158
|
+
except Exception as e:
|
|
159
|
+
logger.error(f"生成 t-SNE 可视化时出错: {e}")
|
|
160
|
+
logger.error(traceback.format_exc())
|
|
161
|
+
return None
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: AstrBot
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.5.0
|
|
4
4
|
Summary: 易上手的多平台 LLM 聊天机器人及开发框架
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Python: >=3.10
|
|
7
7
|
Requires-Dist: aiocqhttp>=1.4.4
|
|
8
8
|
Requires-Dist: aiodocker>=0.24.0
|
|
9
|
+
Requires-Dist: aiofiles>=25.1.0
|
|
9
10
|
Requires-Dist: aiohttp>=3.11.18
|
|
10
11
|
Requires-Dist: aiosqlite>=0.21.0
|
|
11
12
|
Requires-Dist: anthropic>=0.51.0
|
|
@@ -25,10 +26,11 @@ Requires-Dist: docstring-parser>=0.16
|
|
|
25
26
|
Requires-Dist: faiss-cpu==1.10.0
|
|
26
27
|
Requires-Dist: filelock>=3.18.0
|
|
27
28
|
Requires-Dist: google-genai>=1.14.0
|
|
29
|
+
Requires-Dist: jieba>=0.42.1
|
|
28
30
|
Requires-Dist: lark-oapi>=1.4.15
|
|
29
31
|
Requires-Dist: lxml-html-clean>=0.4.2
|
|
32
|
+
Requires-Dist: markitdown-no-magika[docx,xls,xlsx]>=0.1.2
|
|
30
33
|
Requires-Dist: mcp>=1.8.0
|
|
31
|
-
Requires-Dist: mi-googlesearch-python==1.3.0.post1
|
|
32
34
|
Requires-Dist: openai>=1.78.0
|
|
33
35
|
Requires-Dist: ormsgpack>=1.9.1
|
|
34
36
|
Requires-Dist: pillow>=11.2.1
|
|
@@ -38,9 +40,11 @@ Requires-Dist: py-cord>=2.6.1
|
|
|
38
40
|
Requires-Dist: pydantic~=2.10.3
|
|
39
41
|
Requires-Dist: pydub>=0.25.1
|
|
40
42
|
Requires-Dist: pyjwt>=2.10.1
|
|
43
|
+
Requires-Dist: pypdf>=6.1.1
|
|
41
44
|
Requires-Dist: python-telegram-bot>=22.0
|
|
42
45
|
Requires-Dist: qq-botpy>=1.2.1
|
|
43
46
|
Requires-Dist: quart>=0.20.0
|
|
47
|
+
Requires-Dist: rank-bm25>=0.2.2
|
|
44
48
|
Requires-Dist: readability-lxml>=0.8.4.1
|
|
45
49
|
Requires-Dist: silk-python>=0.2.6
|
|
46
50
|
Requires-Dist: slack-sdk>=3.35.0
|
|
@@ -58,21 +62,32 @@ Description-Content-Type: text/markdown
|
|
|
58
62
|
|
|
59
63
|
<div align="center">
|
|
60
64
|
|
|
65
|
+
<br>
|
|
66
|
+
|
|
67
|
+
<div>
|
|
61
68
|
<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>
|
|
69
|
+
<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" alt="Featured|HelloGitHub" style="width: 250px; height: 54px;" width="250" height="54" /></a>
|
|
70
|
+
</div>
|
|
71
|
+
|
|
72
|
+
<br>
|
|
62
73
|
|
|
63
|
-
|
|
74
|
+
<div>
|
|
75
|
+
<img src="https://img.shields.io/github/v/release/AstrBotDevs/AstrBot?style=for-the-badge&color=76bad9" href="https://github.com/AstrBotDevs/AstrBot/releases/latest">
|
|
64
76
|
<img src="https://img.shields.io/badge/python-3.10+-blue.svg?style=for-the-badge&color=76bad9" alt="python">
|
|
65
77
|
<a href="https://hub.docker.com/r/soulter/astrbot"><img alt="Docker pull" src="https://img.shields.io/docker/pulls/soulter/astrbot.svg?style=for-the-badge&color=76bad9"/></a>
|
|
66
|
-
<a
|
|
67
|
-
<a
|
|
68
|
-
|
|
78
|
+
<a href="https://qm.qq.com/cgi-bin/qm/qr?k=wtbaNx7EioxeaqS9z7RQWVXPIxg2zYr7&jump_from=webapi&authKey=vlqnv/AV2DbJEvGIcxdlNSpfxVy+8vVqijgreRdnVKOaydpc+YSw4MctmEbr0k5"><img alt="QQ_community" src="https://img.shields.io/badge/QQ群-775869627-purple?style=for-the-badge&color=76bad9"></a>
|
|
79
|
+
<a href="https://t.me/+hAsD2Ebl5as3NmY1"><img alt="Telegram_community" src="https://img.shields.io/badge/Telegram-AstrBot-purple?style=for-the-badge&color=76bad9"></a>
|
|
80
|
+
<img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.soulter.top%2Fastrbot%2Fplugin-num&query=%24.result&suffix=%E4%B8%AA&style=for-the-badge&label=%E6%8F%92%E4%BB%B6%E5%B8%82%E5%9C%BA&cacheSeconds=3600">
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
<br>
|
|
69
84
|
|
|
70
|
-
<a href="https://github.com/
|
|
71
|
-
<a href="https://github.com/
|
|
85
|
+
<a href="https://github.com/AstrBotDevs/AstrBot/blob/master/README_en.md">English</a> |
|
|
86
|
+
<a href="https://github.com/AstrBotDevs/AstrBot/blob/master/README_ja.md">日本語</a> |
|
|
72
87
|
<a href="https://astrbot.app/">文档</a> |
|
|
73
88
|
<a href="https://blog.astrbot.app/">Blog</a> |
|
|
74
89
|
<a href="https://astrbot.featurebase.app/roadmap">路线图</a> |
|
|
75
|
-
<a href="https://github.com/
|
|
90
|
+
<a href="https://github.com/AstrBotDevs/AstrBot/issues">问题提交</a>
|
|
76
91
|
</div>
|
|
77
92
|
|
|
78
93
|
AstrBot 是一个开源的一站式 Agent 聊天机器人平台及开发框架。
|
|
@@ -115,7 +130,7 @@ AstrBot 已由雨云官方上架至云应用平台,可一键部署。
|
|
|
115
130
|
|
|
116
131
|
社区贡献的部署方式。
|
|
117
132
|
|
|
118
|
-
[](https://repl.it/github/AstrBotDevs/AstrBot)
|
|
119
134
|
|
|
120
135
|
#### Windows 一键安装器部署
|
|
121
136
|
|
|
@@ -172,6 +187,7 @@ uv run main.py
|
|
|
172
187
|
| QQ(OneBot) | ✔ |
|
|
173
188
|
| Telegram | ✔ |
|
|
174
189
|
| 企微应用 | ✔ |
|
|
190
|
+
| 企微智能机器人 | ✔ |
|
|
175
191
|
| 微信客服 | ✔ |
|
|
176
192
|
| 微信公众号 | ✔ |
|
|
177
193
|
| 飞书 | ✔ |
|
|
@@ -180,7 +196,6 @@ uv run main.py
|
|
|
180
196
|
| Discord | ✔ |
|
|
181
197
|
| Satori | ✔ |
|
|
182
198
|
| Misskey | ✔ |
|
|
183
|
-
| 企微智能机器人 | 将支持 |
|
|
184
199
|
| Whatsapp | 将支持 |
|
|
185
200
|
| LINE | 将支持 |
|
|
186
201
|
|
|
@@ -191,6 +206,7 @@ uv run main.py
|
|
|
191
206
|
| [KOOK](https://github.com/wuyan1003/astrbot_plugin_kook_adapter) | ✔ |
|
|
192
207
|
| [VoceChat](https://github.com/HikariFroya/astrbot_plugin_vocechat) | ✔ |
|
|
193
208
|
| [Bilibili 私信](https://github.com/Hina-Chat/astrbot_plugin_bilibili_adapter) | ✔ |
|
|
209
|
+
| [wxauto](https://github.com/luosheng520qaq/wxauto-repost-onebotv11) | ✔ |
|
|
194
210
|
|
|
195
211
|
## ⚡ 提供商支持情况
|
|
196
212
|
|
|
@@ -252,7 +268,7 @@ uv run main.py
|
|
|
252
268
|
AstrBot 使用 `ruff` 进行代码格式化和检查。
|
|
253
269
|
|
|
254
270
|
```bash
|
|
255
|
-
git clone https://github.com/
|
|
271
|
+
git clone https://github.com/AstrBotDevs/AstrBot
|
|
256
272
|
pip install pre-commit
|
|
257
273
|
pre-commit install
|
|
258
274
|
```
|
|
@@ -276,7 +292,7 @@ pre-commit install
|
|
|
276
292
|
|
|
277
293
|
<div align="center">
|
|
278
294
|
|
|
279
|
-
[](https://star-history.com/#astrbotdevs/astrbot&Date)
|
|
280
296
|
|
|
281
297
|
</div>
|
|
282
298
|
|
|
@@ -21,16 +21,17 @@ astrbot/cli/utils/plugin.py,sha256=kS37S3bAK3q43mL2wvQM8FuqaSkgLQU_Yt2XqxjnxNo,8
|
|
|
21
21
|
astrbot/cli/utils/version_comparator.py,sha256=3gLFA94eswvFsBVDSJmOTLJKxTdCD9kkQFy2Lu7vcTc,3482
|
|
22
22
|
astrbot/core/__init__.py,sha256=-1atHjMqQyequsw6A1heEr4LldE0JVII9MXcuQFSAQM,1218
|
|
23
23
|
astrbot/core/astr_agent_context.py,sha256=emypZloG0UWATEKUobDH8yLYcqmaVj9N3HwMQmvY3sc,375
|
|
24
|
-
astrbot/core/astrbot_config_mgr.py,sha256=
|
|
25
|
-
astrbot/core/conversation_mgr.py,sha256=
|
|
26
|
-
astrbot/core/core_lifecycle.py,sha256=
|
|
24
|
+
astrbot/core/astrbot_config_mgr.py,sha256=jQZJjdcmYF-dSdWLykTDi3IW-OwEBPboSmYWXLAsVs0,8747
|
|
25
|
+
astrbot/core/conversation_mgr.py,sha256=_N91hLjpW7BgnOtqvjRX-OK6xAZU4a0trawfJBCc60c,13569
|
|
26
|
+
astrbot/core/core_lifecycle.py,sha256=MBOeW0B8Kkg6fF5BRVf2tx4jJ4oXqlxUlOJMiAQmRTg,12467
|
|
27
27
|
astrbot/core/event_bus.py,sha256=781lHFtnOfxBqS4CSxwTiPyoPvYOlbJce6arUGVfZEg,2536
|
|
28
|
-
astrbot/core/file_token_service.py,sha256=
|
|
29
|
-
astrbot/core/initial_loader.py,sha256=
|
|
28
|
+
astrbot/core/file_token_service.py,sha256=LMU9NOc4RF7FUniZq5dhpR-auE3mVdZ2o0-ogcY-PEA,3315
|
|
29
|
+
astrbot/core/initial_loader.py,sha256=c-rvcPIOOYYzlfSfu4VN5LsAmblFWJTr8tQRX2mooWo,1789
|
|
30
30
|
astrbot/core/log.py,sha256=wFCYVMMoyiMlGCI0PE8lYdJBd3SpxrkXjx1PvnlOEIU,8521
|
|
31
31
|
astrbot/core/persona_mgr.py,sha256=iWvGsiHpky1fbPhmfQP1jDzHTWqv6g3GQ7ZROeOdaAc,7300
|
|
32
32
|
astrbot/core/platform_message_history_mgr.py,sha256=qNd5No1HzaLKQ6XVFdJohaiwAB6cjJVXPSwgmxsUyAs,1514
|
|
33
|
-
astrbot/core/
|
|
33
|
+
astrbot/core/umop_config_router.py,sha256=ky6mTDQ3tIq-7Xz5XiM9Djmg_7b7WD8ejQIt5qsjkr0,2962
|
|
34
|
+
astrbot/core/updator.py,sha256=ry2Xg5ex1k_TdhOM1UMi_PsK2HF6H6n4OUlaXWLXs7c,4592
|
|
34
35
|
astrbot/core/zip_updator.py,sha256=iSwa3S2fHXGqYA3ie4SEMrWNy6fSDpW5toCygQFdKSQ,8828
|
|
35
36
|
astrbot/core/agent/agent.py,sha256=ruwCYv7ySS5zxmhD_49ABKJ8CZSS4lY2fQ2rTlitP-k,365
|
|
36
37
|
astrbot/core/agent/handoff.py,sha256=_046TjTUda3CxtXR0ngb_z3f1XGTqx9pfhh28_Dl3Ts,1168
|
|
@@ -42,23 +43,43 @@ astrbot/core/agent/tool.py,sha256=fXFkQGFIIoX9Y1GYj_LIGyrybOeEKSqOo7-3F10zf58,89
|
|
|
42
43
|
astrbot/core/agent/tool_executor.py,sha256=keliOV_lyrI6CALr-MAVCdLE-HjxZh9zygoY61IVkfM,384
|
|
43
44
|
astrbot/core/agent/runners/__init__.py,sha256=KwR34OKGVSQpJ_MaGVP_MX5L1SZ4oU-lv4GuMbSF5Ys,65
|
|
44
45
|
astrbot/core/agent/runners/base.py,sha256=exZS_d2BsrLz-xgeY9ZUPuXikBDUnKxO-dU3ZFQMhRs,1625
|
|
45
|
-
astrbot/core/agent/runners/tool_loop_agent_runner.py,sha256=
|
|
46
|
+
astrbot/core/agent/runners/tool_loop_agent_runner.py,sha256=bg-YKJV2jRNyR2gu3FZNx_aKIFUYr5zjyzJWDlVLVpU,14940
|
|
46
47
|
astrbot/core/config/__init__.py,sha256=0CO_3sKtI3WOwWT0k4i6TleWq1SAWJFfB8KjnYB8Zig,172
|
|
47
48
|
astrbot/core/config/astrbot_config.py,sha256=X-b3c5m4msgJrdYFH2LXic5XKY0ViuUMdNZ335zqSBw,6335
|
|
48
|
-
astrbot/core/config/default.py,sha256=
|
|
49
|
+
astrbot/core/config/default.py,sha256=wqWnrQlpgzojHB_Mur8duaGTiik0vR6dBifJxrgX0_c,131302
|
|
49
50
|
astrbot/core/db/__init__.py,sha256=JOAMt7_j0y96CuArXJ-YY_qXisSartOZwyDTKf9ZDn8,8844
|
|
50
51
|
astrbot/core/db/po.py,sha256=NDOJpUXI1i4BF1uymCj07opwXM0gdHBtwCoL16Xj4jc,7798
|
|
51
52
|
astrbot/core/db/sqlite.py,sha256=_5-B2Jlare4twLG0TlO95bVTaLu0HAXsfpX5LOcoVWA,26082
|
|
52
53
|
astrbot/core/db/migration/helper.py,sha256=FcwpvBANNeyBSrRhXyd3hudHYEyhTyrcRg9mU9lZtqY,1935
|
|
53
54
|
astrbot/core/db/migration/migra_3_to_4.py,sha256=I1CesaBbf5wj9agtNWxDl1V-qixmwdURbBQf5Vzagrk,15025
|
|
55
|
+
astrbot/core/db/migration/migra_45_to_46.py,sha256=Fw6DG_eJ2zNZkEs2tmSqvgDDapslzLpm5SaJhGuN32E,1559
|
|
54
56
|
astrbot/core/db/migration/shared_preferences_v3.py,sha256=tE11WIpwT-Q8yVBkw4eveRr1PmFdNRJQSprH4xdO3G4,1245
|
|
55
57
|
astrbot/core/db/migration/sqlite_v3.py,sha256=U3Uysd_IGT4ObqCFE7yQeIo_1kBrAYb_r09Uy_Vvr3A,15002
|
|
56
|
-
astrbot/core/db/vec_db/base.py,sha256=
|
|
58
|
+
astrbot/core/db/vec_db/base.py,sha256=CGqXkxoUluu4L-m-Pkx04ecU2hHg7z6xs2fKlavTPuM,1809
|
|
57
59
|
astrbot/core/db/vec_db/faiss_impl/__init__.py,sha256=S3gwB-ZL9aPJwDM5ia8a_t-xsfANKoslpJvtNd5ErcU,57
|
|
58
|
-
astrbot/core/db/vec_db/faiss_impl/document_storage.py,sha256=
|
|
59
|
-
astrbot/core/db/vec_db/faiss_impl/embedding_storage.py,sha256=
|
|
60
|
+
astrbot/core/db/vec_db/faiss_impl/document_storage.py,sha256=CHNYUasgiIth35BRt2mMw_PfBwlcsSlaQ9ZaSemsYTE,13448
|
|
61
|
+
astrbot/core/db/vec_db/faiss_impl/embedding_storage.py,sha256=xh1ym9VJ1-TOJQ-u_thA31g9wpqlApKG2VUHmq-_F-Y,2920
|
|
60
62
|
astrbot/core/db/vec_db/faiss_impl/sqlite_init.sql,sha256=RiF1mnAFAHtyThOsS0qjvniUF5t9Y8k-gjSlh51p2x8,681
|
|
61
|
-
astrbot/core/db/vec_db/faiss_impl/vec_db.py,sha256=
|
|
63
|
+
astrbot/core/db/vec_db/faiss_impl/vec_db.py,sha256=tgE0O58XIbd0tf7kAUdkSjFEiIB-PgjgWrT5VWhwdcI,7085
|
|
64
|
+
astrbot/core/knowledge_base/kb_db_sqlite.py,sha256=_yWPGRnqYG7TG1nNqGmRP3cu5ZVmQvumX2rhvhrHLyo,11052
|
|
65
|
+
astrbot/core/knowledge_base/kb_helper.py,sha256=46E1WNgAJwvIlPnEug7Do7TCE9nsIivrNbRcq36wP5Y,12030
|
|
66
|
+
astrbot/core/knowledge_base/kb_mgr.py,sha256=DJY3noHavR9NzxqlAW-T9kjjssZ0-pyuaKnMKziZ2nI,9740
|
|
67
|
+
astrbot/core/knowledge_base/models.py,sha256=k5iijWxEIhxkdinIVFQZ5MXVNi78tAh7uRhUl-qDwMA,3931
|
|
68
|
+
astrbot/core/knowledge_base/chunking/__init__.py,sha256=l_N4AhYoRksf0Ba9DTRkagTMh-GPtJhIdrLhD2KlwOQ,157
|
|
69
|
+
astrbot/core/knowledge_base/chunking/base.py,sha256=a8EcYz3Oo0IJVVGTN_Lgce72RHFF5CSx1-4rG2CiQP4,470
|
|
70
|
+
astrbot/core/knowledge_base/chunking/fixed_size.py,sha256=yitpENu_IcFo8SsIEyt9IEPOhbWIqZrgZlTqYm1xTdc,1557
|
|
71
|
+
astrbot/core/knowledge_base/chunking/recursive.py,sha256=6JXMFx7HrV_diYqUMym8QJ-rUYfpwSp1E-D8cvL2AYo,5721
|
|
72
|
+
astrbot/core/knowledge_base/parsers/__init__.py,sha256=VedaV8zxk8TPBKzIQhUwbIop5FVN-INoNJYdTGDdqLg,258
|
|
73
|
+
astrbot/core/knowledge_base/parsers/base.py,sha256=JAsLZ6-57PADmSaaBW9mBllNZIuSRziqW_zhV73vTn8,962
|
|
74
|
+
astrbot/core/knowledge_base/parsers/markitdown_parser.py,sha256=L6W2PhkLIUP0xy8BOR1DwH7vMCDORztTnRG8rG-ykgg,700
|
|
75
|
+
astrbot/core/knowledge_base/parsers/pdf_parser.py,sha256=TxUQHl4dp3lVXbdJMxX3ZWFjblg2hZFoyFKbsVK40wk,3091
|
|
76
|
+
astrbot/core/knowledge_base/parsers/text_parser.py,sha256=XFo6y3eha4g4y3iZ_4KORoWdvYWX-zrjLUt4phSk2Ao,1094
|
|
77
|
+
astrbot/core/knowledge_base/parsers/util.py,sha256=wjBUHBC3Cfau5hvspjDrqsMjxh5BF8NjZgNiQtShmss,398
|
|
78
|
+
astrbot/core/knowledge_base/retrieval/__init__.py,sha256=UHpL0MqdRtpySSk2Yd-C_yd_m1nlhRK0rFv24lUCwlU,328
|
|
79
|
+
astrbot/core/knowledge_base/retrieval/hit_stopwords.txt,sha256=8LikiRxpjLdAfJYyOQ2tUUPM9wEEZ0y3Mh_XXsxAeug,5271
|
|
80
|
+
astrbot/core/knowledge_base/retrieval/manager.py,sha256=VP31I5lG_qQLFE7e27IljPT-lcd9MQbJi3jYT3FOFNk,8433
|
|
81
|
+
astrbot/core/knowledge_base/retrieval/rank_fusion.py,sha256=Rf5_BShFRTTYp7I6VbNnUnaEp0OhIMSfb3u1seSXTr4,4412
|
|
82
|
+
astrbot/core/knowledge_base/retrieval/sparse_retriever.py,sha256=O93uwRkZYJwS0C2Yi92bM4jPTVST0Ye13xaQOLfohek,3777
|
|
62
83
|
astrbot/core/message/components.py,sha256=AzJACQYgw0Yo1iwSIyQWtfE8Xyo-6Q8KcQPE9yT5otQ,28208
|
|
63
84
|
astrbot/core/message/message_event_result.py,sha256=dooPyzDVV4danPNQBvZsSXemGsihnBjW3qYByYUEa1s,7248
|
|
64
85
|
astrbot/core/pipeline/__init__.py,sha256=-jo6a9lKmwY8oPoifJi0IMLPOVdknQKG30ppIyCs5Bg,1461
|
|
@@ -73,7 +94,8 @@ astrbot/core/pipeline/content_safety_check/strategies/keywords.py,sha256=j3Ns_IH
|
|
|
73
94
|
astrbot/core/pipeline/content_safety_check/strategies/strategy.py,sha256=G32Xf42EgeyEnhyPLVYlUMiSnDNHUUnnz_MG0PXqfV4,1234
|
|
74
95
|
astrbot/core/pipeline/preprocess_stage/stage.py,sha256=QSgOswf8FHy1j4QozRxJv4qVd-RynG8eriHufian60U,4194
|
|
75
96
|
astrbot/core/pipeline/process_stage/stage.py,sha256=2hCX5LdUCzX2RbleMLF_Yqiot9YDyutF3ePPOZsWeA0,2677
|
|
76
|
-
astrbot/core/pipeline/process_stage/
|
|
97
|
+
astrbot/core/pipeline/process_stage/utils.py,sha256=1pGcZpQiMpdvULLrLpqTau9IwkTKTAE4L0XmcIPwPxU,2591
|
|
98
|
+
astrbot/core/pipeline/process_stage/method/llm_request.py,sha256=LaI9GaFhzm1Du_dDvgfLM1nUhdXC3rjm4hI6XAUl39o,26945
|
|
77
99
|
astrbot/core/pipeline/process_stage/method/star_request.py,sha256=IuPP7qnxvBgKV6a9D3wLU4_KU3Ec3Ml7IOADQCXDgqk,2501
|
|
78
100
|
astrbot/core/pipeline/rate_limit_check/stage.py,sha256=I_GkpSgioN0-T_catMwpRKtxx-TiMmvu8vV_FE5ORIA,4072
|
|
79
101
|
astrbot/core/pipeline/respond/stage.py,sha256=XE5yGsHGxESP0zAGmx3qHovP1wGaJDXUgfLb5Z4wasE,10837
|
|
@@ -82,7 +104,7 @@ astrbot/core/pipeline/session_status_check/stage.py,sha256=woucuVbzzQoi62MDoP3lT
|
|
|
82
104
|
astrbot/core/pipeline/waking_check/stage.py,sha256=URBFmfid1CKhtCGjH7OzFmxBE-Gt9vv1eYlp6msIv_Q,8240
|
|
83
105
|
astrbot/core/pipeline/whitelist_check/stage.py,sha256=VcmLs0VfmspNTsitL_WrZXfv2lR2Nktrb5JEWc1VJuw,2403
|
|
84
106
|
astrbot/core/platform/__init__.py,sha256=jQ4UiThp7cDHfmIXAgBDodET87onl7mjii0CAD3RXTY,361
|
|
85
|
-
astrbot/core/platform/astr_message_event.py,sha256=
|
|
107
|
+
astrbot/core/platform/astr_message_event.py,sha256=Re_tL9bugMXYpBu9WbWIeIPgHlDNy56FNGWShkCV5hg,14851
|
|
86
108
|
astrbot/core/platform/astrbot_message.py,sha256=r7jlUPfaOEh0yCSHaS1KQtYarZ9B4ikqMZwDj-wLv_k,2655
|
|
87
109
|
astrbot/core/platform/manager.py,sha256=UTA6Y4DE5gpkJtV_oEeKG1EH0KoaWHFT3RkjJ7HEwzM,8264
|
|
88
110
|
astrbot/core/platform/message_session.py,sha256=Hitdfb7IK4SohaMFld0s0UlwLDpVw5UPTToh05bvH60,1076
|
|
@@ -100,17 +122,17 @@ astrbot/core/platform/sources/discord/discord_platform_adapter.py,sha256=aeR1lv8
|
|
|
100
122
|
astrbot/core/platform/sources/discord/discord_platform_event.py,sha256=1YjlH3P-jY3tsE2dBFBnX9833_h55lI6A4xmLcOvlac,12008
|
|
101
123
|
astrbot/core/platform/sources/lark/lark_adapter.py,sha256=JO_gBvAw6e2hTkXWOYeeSPUqdDjnsyVmtXh9SWXZO4A,8233
|
|
102
124
|
astrbot/core/platform/sources/lark/lark_event.py,sha256=NXz624wDWV8NLi00va9KdMOvRo7o4FMafV-w2-Znzxg,5133
|
|
103
|
-
astrbot/core/platform/sources/misskey/misskey_adapter.py,sha256=
|
|
104
|
-
astrbot/core/platform/sources/misskey/misskey_api.py,sha256=
|
|
105
|
-
astrbot/core/platform/sources/misskey/misskey_event.py,sha256=
|
|
106
|
-
astrbot/core/platform/sources/misskey/misskey_utils.py,sha256=
|
|
125
|
+
astrbot/core/platform/sources/misskey/misskey_adapter.py,sha256=GrHoeogD4xe7H6c-yFEkDf5FrhEH2WfsqTGJyErGwkE,29088
|
|
126
|
+
astrbot/core/platform/sources/misskey/misskey_api.py,sha256=JEvYyKCxjLNo0WdVE2MiqxKryn3ki9YqZRZmZZCxsvs,35773
|
|
127
|
+
astrbot/core/platform/sources/misskey/misskey_event.py,sha256=Rt6I0ho1MyZUOVNKlxIQaPqzc1JR61HmBIKe7NVQOsQ,6464
|
|
128
|
+
astrbot/core/platform/sources/misskey/misskey_utils.py,sha256=fTxgsScSTWJ1XqsKXYxMMhb_U3CXAyMKlzHQ7Wc5zic,18029
|
|
107
129
|
astrbot/core/platform/sources/qqofficial/qqofficial_message_event.py,sha256=f8PA-kFZPe5iRqZZN4YYKj4wZSfozz8ySskxiE6BgpU,11954
|
|
108
130
|
astrbot/core/platform/sources/qqofficial/qqofficial_platform_adapter.py,sha256=6zJGUdXc-EkQp8ITPRYr99tVEFIRc20x4Fs-9QVT8Zk,7279
|
|
109
131
|
astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_adapter.py,sha256=PTW_WpZSzlFuchtpu0uAIMy2KcDMi_BBnr6tUgOJNZk,4295
|
|
110
132
|
astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_event.py,sha256=BrxaNhG3sy5QAKf8DlZlum6R7m9X5Fm0SxBrKIC_1hg,499
|
|
111
|
-
astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py,sha256=
|
|
112
|
-
astrbot/core/platform/sources/satori/satori_adapter.py,sha256=
|
|
113
|
-
astrbot/core/platform/sources/satori/satori_event.py,sha256=
|
|
133
|
+
astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py,sha256=YOH6yV6YqI0RlxMVLA29cPh7CkS7CBbdbFe1QmFVxSo,3812
|
|
134
|
+
astrbot/core/platform/sources/satori/satori_adapter.py,sha256=wOsWD-Jb3Mps8fzfDGfokRB42k6pDN2gvpieajWULcQ,27815
|
|
135
|
+
astrbot/core/platform/sources/satori/satori_event.py,sha256=I-ppTK4lPd2TY58LdiQ20eCGPtMPn-nSaWpS6J4zqhM,16095
|
|
114
136
|
astrbot/core/platform/sources/slack/client.py,sha256=p0gCh9gj_VR8IacGg09-BXp2IM8C0oTnodrvEVmShMA,5637
|
|
115
137
|
astrbot/core/platform/sources/slack/slack_adapter.py,sha256=BdZTCNXsO5nUKY2HrZD5tpxMzpnvL7n3_vr2JgJfDS0,15812
|
|
116
138
|
astrbot/core/platform/sources/slack/slack_event.py,sha256=RYTJBqk5-CYQKgk-ejPuMKJyfaxSTqPjvfqKvPNg5Yw,8791
|
|
@@ -141,27 +163,27 @@ astrbot/core/provider/__init__.py,sha256=fhD_KB1-KpqJ7woaXDXc7kdlmL3XPQz3xlc5IkF
|
|
|
141
163
|
astrbot/core/provider/entites.py,sha256=-353AdRDA6ST4AS48cQ1RRAXHSy3F7pVS_28hW4cG2U,388
|
|
142
164
|
astrbot/core/provider/entities.py,sha256=CkC-U9nafBKo2n2kLZqzukosDX7RuZWAK4DMBHQkasA,11238
|
|
143
165
|
astrbot/core/provider/func_tool_manager.py,sha256=NuWMmAJaEwoJ3XCSvhwtmzDPdzX4K4BIRKuKgF0FlQk,20881
|
|
144
|
-
astrbot/core/provider/manager.py,sha256=
|
|
145
|
-
astrbot/core/provider/provider.py,sha256=
|
|
166
|
+
astrbot/core/provider/manager.py,sha256=NJa0dpFwOXA6KFPwzRFgFEJ3D5L3wGtXXMYzHRDZBqc,21951
|
|
167
|
+
astrbot/core/provider/provider.py,sha256=I_240hwpzkHudVdeGrCEqJODjVR0yls3n84cviXyquI,9954
|
|
146
168
|
astrbot/core/provider/register.py,sha256=bWAF9zWNnSYQWjmZIXiWgxFaeWIiWjEoEIN_xhmq3mM,1830
|
|
147
|
-
astrbot/core/provider/sources/anthropic_source.py,sha256=
|
|
169
|
+
astrbot/core/provider/sources/anthropic_source.py,sha256=VKTd1wc6_6Z5G4l7Sqy3sqEqid-IMbPgi1s7RiYpaBw,15202
|
|
148
170
|
astrbot/core/provider/sources/azure_tts_source.py,sha256=V8WGpMFeYn-DhmE2FtYYYir-51T1S81XKvP08tslm8E,9350
|
|
149
171
|
astrbot/core/provider/sources/coze_api_client.py,sha256=dr2QpON0I83eIyadh5XDEVnGl26Jm5rbXGzQKkLBBcc,10820
|
|
150
172
|
astrbot/core/provider/sources/coze_source.py,sha256=KddH9Ryl-cuaobjVBY5ar_cPEb5MUDvc7Pqx9BTp9Oo,25215
|
|
151
|
-
astrbot/core/provider/sources/dashscope_source.py,sha256=
|
|
173
|
+
astrbot/core/provider/sources/dashscope_source.py,sha256=M93QNShgfdVy1rG8ffEKPUdHNLc02xEK-hGEbGvhr3k,7346
|
|
152
174
|
astrbot/core/provider/sources/dashscope_tts.py,sha256=gMm876jMiL15bmMbkAaQSP-XKjSdL1rBLrXCFVQXJhQ,5522
|
|
153
|
-
astrbot/core/provider/sources/dify_source.py,sha256=
|
|
175
|
+
astrbot/core/provider/sources/dify_source.py,sha256=ktT-uHoCnDFQYMS1U5ueOHvuMvIVyX9qiPgWZADBTlE,11352
|
|
154
176
|
astrbot/core/provider/sources/edge_tts_source.py,sha256=foO2E0Wdc2wJy8yMbLUyX0cjkP6MD4vPCbc8q3Ckkug,4716
|
|
155
177
|
astrbot/core/provider/sources/fishaudio_tts_api_source.py,sha256=Tu4wHh5txKDWn3_Z57hWgzTU8QUw1oVFBndAqmp4aLY,5439
|
|
156
|
-
astrbot/core/provider/sources/gemini_embedding_source.py,sha256=
|
|
178
|
+
astrbot/core/provider/sources/gemini_embedding_source.py,sha256=jrB2NJqXuZQootOiAGzZfuh-xEaeUxGc4HAfqjqjRLk,2272
|
|
157
179
|
astrbot/core/provider/sources/gemini_source.py,sha256=U7imSkoR1kQyTZN_ueCnbMlJ3bi6cjSNdKivLeOUGeU,28787
|
|
158
180
|
astrbot/core/provider/sources/gemini_tts_source.py,sha256=mNcb9G6Lb58L2zoSYzroQGyASGrv3k4ZjmOIVvhii_o,2886
|
|
159
181
|
astrbot/core/provider/sources/gsv_selfhosted_source.py,sha256=7wSQ32AJv4cisjnedENfpThd1kHDqYvnMSCpwbpNNM4,5936
|
|
160
182
|
astrbot/core/provider/sources/gsvi_tts_source.py,sha256=EoYuAf85NVcPPbyRWkE_doWF-7R8IM5o9ozxbbvaFRk,2025
|
|
161
183
|
astrbot/core/provider/sources/minimax_tts_api_source.py,sha256=jNLP_4-UHq_Iekvjn3h7G6YZjTCGuII-hq-1RhzjSlE,5877
|
|
162
|
-
astrbot/core/provider/sources/openai_embedding_source.py,sha256=
|
|
163
|
-
astrbot/core/provider/sources/openai_source.py,sha256=
|
|
164
|
-
astrbot/core/provider/sources/openai_tts_api_source.py,sha256=
|
|
184
|
+
astrbot/core/provider/sources/openai_embedding_source.py,sha256=3KH9WDXZEShESgu1lGgR_8wKzG88qKm0u5yR8lafBHQ,1634
|
|
185
|
+
astrbot/core/provider/sources/openai_source.py,sha256=R4U-epiyajct6E8FMMJpObsR-7p9QWXbFhfrCxvMUic,21045
|
|
186
|
+
astrbot/core/provider/sources/openai_tts_api_source.py,sha256=HpLR-hnwNV2u5ohO78phCpkAVRXnBkOSSPLKMeyzGmQ,1624
|
|
165
187
|
astrbot/core/provider/sources/sensevoice_selfhosted_source.py,sha256=2-NUDRiJJs3onxnrovdoVqUMI8bxGu2J2n3ZgwjxEm0,3828
|
|
166
188
|
astrbot/core/provider/sources/vllm_rerank_source.py,sha256=Gv_veniilJ5v9lPGlQG_zmQYmHfhNggYIwj5p02CoLE,2275
|
|
167
189
|
astrbot/core/provider/sources/volcengine_tts.py,sha256=eNS7XUtDTunGuZV8UaI4-ghNyY_fDRW0hiZPssBNsPQ,4143
|
|
@@ -171,12 +193,12 @@ astrbot/core/provider/sources/zhipu_source.py,sha256=wUXp9wjMoFjYKqjwkDDUWGduzkr
|
|
|
171
193
|
astrbot/core/star/README.md,sha256=LXxqxp3xv_oejO8ocBPOrbmLe0WB4feu43fYDNddHTQ,161
|
|
172
194
|
astrbot/core/star/__init__.py,sha256=ynSwMrdCLyVMN3Q9flS_mcDDjdIGrkLBpfeDVoFj6PM,2080
|
|
173
195
|
astrbot/core/star/config.py,sha256=f4h1YFt1Tn6S2D-LvnhM483qaD8JdWjl-TBRV9CeYBo,3593
|
|
174
|
-
astrbot/core/star/context.py,sha256=
|
|
196
|
+
astrbot/core/star/context.py,sha256=DEqoXpG_h2XeEwhZ5EevKo2EmX2H5mOUl4IODQXAFFk,13132
|
|
175
197
|
astrbot/core/star/session_llm_manager.py,sha256=c9vPbL454_H--x5c-cjbiH-y1CrcMfTLfbhNmKgSYio,8467
|
|
176
198
|
astrbot/core/star/session_plugin_manager.py,sha256=3vxbqPikZg4ZTHG_STvEKeqNplo78wknILSnFCmHTr0,5291
|
|
177
|
-
astrbot/core/star/star.py,sha256=
|
|
199
|
+
astrbot/core/star/star.py,sha256=5jdigpi4WCTLROdg0q15cLOCgER6uNY9x3elqglCa_g,1831
|
|
178
200
|
astrbot/core/star/star_handler.py,sha256=0hQq5QOre3AjPx7AfZfyfvx2k-iVBCaXg0hofvqE2k4,4888
|
|
179
|
-
astrbot/core/star/star_manager.py,sha256=
|
|
201
|
+
astrbot/core/star/star_manager.py,sha256=cVj4yQYPwS20Y9w1ThnVz8jfeG62xKFDPxcJi65muyE,36703
|
|
180
202
|
astrbot/core/star/star_tools.py,sha256=tAX49jAcGc5mFYu7FW3MrTFgAKtX-_TIE3tfeEArGx4,10863
|
|
181
203
|
astrbot/core/star/updator.py,sha256=IVml0S4WGmKRl42EeDbU0bP8-7d0yfEY0X9qpshI_RA,3129
|
|
182
204
|
astrbot/core/star/filter/__init__.py,sha256=xhdp6MMbBJbCHDDtBcAzWZ86DSFTPKzj8RpE2Cdb8ls,469
|
|
@@ -193,7 +215,7 @@ astrbot/core/star/register/star_handler.py,sha256=Dy6WkDyhHOe975uB9yAB7NsWFo0njZ
|
|
|
193
215
|
astrbot/core/utils/astrbot_path.py,sha256=ZK-OmCTOxH63GQ4kBMGZs9ybKmKuHMNXdW9RKqLbYRk,1227
|
|
194
216
|
astrbot/core/utils/command_parser.py,sha256=Cwd4zzyKEoC-er0a-9WZ5n2g4F8eH9p6BHxD96gjaVM,617
|
|
195
217
|
astrbot/core/utils/dify_api_client.py,sha256=EpV3hPB0aFWGQtjgtS-SEM3EFmBoMmvEOKyU52TQgbY,4809
|
|
196
|
-
astrbot/core/utils/io.py,sha256=
|
|
218
|
+
astrbot/core/utils/io.py,sha256=gHviSn-HCqoImGhusgFrgtxzGIeewbfJPM1ZlRRkdNA,9423
|
|
197
219
|
astrbot/core/utils/log_pipe.py,sha256=AU-y7vvAUtegH3XRenJqsFpmH0UIV4zUfLWh-5uPkCI,883
|
|
198
220
|
astrbot/core/utils/metrics.py,sha256=uFGS3ZU81vcUbhiIrc-VAy9t5Lc6Oxh13wGYcl3oVGY,2456
|
|
199
221
|
astrbot/core/utils/path_util.py,sha256=_PKjMtQBGD_C7o5BzN4-NSsqCffPSr9NwiHQHTSehkM,3130
|
|
@@ -210,25 +232,27 @@ astrbot/core/utils/t2i/renderer.py,sha256=WPA1EBt8RQ3_3asnK9neIy66eg9WYdlPzJKh_D
|
|
|
210
232
|
astrbot/core/utils/t2i/template_manager.py,sha256=EO6YO9A9bkwv_MLUNTqMtaFfd5r7sWpD0-K1qcRu1lI,4522
|
|
211
233
|
astrbot/core/utils/t2i/template/astrbot_powershell.html,sha256=UcjetoIJG3pJRUHMDOor3Nhj7FFmVXXpkySkpXXztO4,4943
|
|
212
234
|
astrbot/core/utils/t2i/template/base.html,sha256=fQvq4I4lrlH2s_jwAzj62lWeC4g87xXsYJMJ0XunCPA,6619
|
|
213
|
-
astrbot/dashboard/server.py,sha256=
|
|
214
|
-
astrbot/dashboard/
|
|
235
|
+
astrbot/dashboard/server.py,sha256=EEm0l76TY39B14ZebPjsVEsi83-qVAzGw-kqOWksHaI,9296
|
|
236
|
+
astrbot/dashboard/utils.py,sha256=SqfUqTaRseeiJWGgSlrRm4CuxgJgqw7MXODjl0J2pXA,5343
|
|
237
|
+
astrbot/dashboard/routes/__init__.py,sha256=tx0Rp-SV0dfj7f9znL0d84MOxK4lRLeqfCQhBA7_aac,783
|
|
215
238
|
astrbot/dashboard/routes/auth.py,sha256=igVjZWluaQpF-lrg-Ueb4IA553dA_Sn6pAxY34-83i8,2964
|
|
216
239
|
astrbot/dashboard/routes/chat.py,sha256=6dGKXBkbGb5TGcIMFh6tr6bvdv7yekrgehSdkYSZ8Ls,13232
|
|
217
|
-
astrbot/dashboard/routes/config.py,sha256=
|
|
240
|
+
astrbot/dashboard/routes/config.py,sha256=AucpVJgif082vMtemB8kD7YG7nF4nSF3NPIqJZj5Zx8,39961
|
|
218
241
|
astrbot/dashboard/routes/conversation.py,sha256=4-jGtd5ApzcN1Jh6UAGet0A7oPkRMvvxk1gKc47KHmo,10768
|
|
219
242
|
astrbot/dashboard/routes/file.py,sha256=y3yi4ari-ELwiDicuniBlvXhVe8d1JgWRl6FdC42v9k,706
|
|
243
|
+
astrbot/dashboard/routes/knowledge_base.py,sha256=EKF2e1htzwQ85RHHRiOuzqUh986KoymU_i3DJdwC0vE,39547
|
|
220
244
|
astrbot/dashboard/routes/log.py,sha256=hDl6Niz_Vs4xb64USjCBzdOcm68GDpEsQrNrLr8yKGc,2114
|
|
221
245
|
astrbot/dashboard/routes/persona.py,sha256=6icnNNE8A0Yy1WI0INWD9ZPKC7VcZG-xHDfYElhaP8M,7857
|
|
222
|
-
astrbot/dashboard/routes/plugin.py,sha256=
|
|
246
|
+
astrbot/dashboard/routes/plugin.py,sha256=aAGDd2mLblJuGoA4vyyteKEXqqVGN7kn0qTS5TMQnrA,20268
|
|
223
247
|
astrbot/dashboard/routes/route.py,sha256=V-Wm88D0BmxSYAUbedunykbWy5p7Tggae9nDhxm7LZU,1545
|
|
224
248
|
astrbot/dashboard/routes/session_management.py,sha256=yYcaXDwOiNYoLrseCxazLoFpxj_rsOUQ9-_8zifAAXE,26811
|
|
225
249
|
astrbot/dashboard/routes/stat.py,sha256=KCtP0-f9g664gM2SOBgnU8uKx6zt93-5Kut-d7wd7zk,6910
|
|
226
250
|
astrbot/dashboard/routes/static_file.py,sha256=7KnNcOb1BVqSTft114LhGsDkfg69X2jHEm0tOK0kW0Y,1169
|
|
227
251
|
astrbot/dashboard/routes/t2i.py,sha256=scp05AxoJM9cubrkSMBu1BbIWP1BMS50eFEPZ9S6WKM,8893
|
|
228
252
|
astrbot/dashboard/routes/tools.py,sha256=xVw6sG6xnANZm-M2JXT75ftH_I58MMJ0FqejODnP4Xw,14658
|
|
229
|
-
astrbot/dashboard/routes/update.py,sha256=
|
|
230
|
-
astrbot-4.
|
|
231
|
-
astrbot-4.
|
|
232
|
-
astrbot-4.
|
|
233
|
-
astrbot-4.
|
|
234
|
-
astrbot-4.
|
|
253
|
+
astrbot/dashboard/routes/update.py,sha256=sWDH_diqNHugUoVzPSxLUHPtb_nv5YIEEIOGjA6VB7o,6713
|
|
254
|
+
astrbot-4.5.0.dist-info/METADATA,sha256=SKECZPkwtXdOkSCk7gIkE__d30vm23timLpj3nPsLG0,10883
|
|
255
|
+
astrbot-4.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
256
|
+
astrbot-4.5.0.dist-info/entry_points.txt,sha256=OEF09YmhBWYuViXrvTLLpstF4ccmNwDL8r7nnFD0pfI,53
|
|
257
|
+
astrbot-4.5.0.dist-info/licenses/LICENSE,sha256=zPfQj5Mq8-gThIiBcxETr7t8gND9bZWOjTGQAr80TQI,34500
|
|
258
|
+
astrbot-4.5.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|