AstrBot 3.5.6__py3-none-any.whl → 4.7.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/api/__init__.py +16 -4
- astrbot/api/all.py +2 -1
- astrbot/api/event/__init__.py +5 -6
- astrbot/api/event/filter/__init__.py +37 -34
- astrbot/api/platform/__init__.py +7 -8
- astrbot/api/provider/__init__.py +8 -7
- astrbot/api/star/__init__.py +3 -4
- astrbot/api/util/__init__.py +2 -2
- astrbot/cli/__init__.py +1 -0
- astrbot/cli/__main__.py +18 -197
- astrbot/cli/commands/__init__.py +6 -0
- astrbot/cli/commands/cmd_conf.py +209 -0
- astrbot/cli/commands/cmd_init.py +56 -0
- astrbot/cli/commands/cmd_plug.py +245 -0
- astrbot/cli/commands/cmd_run.py +62 -0
- astrbot/cli/utils/__init__.py +18 -0
- astrbot/cli/utils/basic.py +76 -0
- astrbot/cli/utils/plugin.py +246 -0
- astrbot/cli/utils/version_comparator.py +90 -0
- astrbot/core/__init__.py +17 -19
- astrbot/core/agent/agent.py +14 -0
- astrbot/core/agent/handoff.py +38 -0
- astrbot/core/agent/hooks.py +30 -0
- astrbot/core/agent/mcp_client.py +385 -0
- astrbot/core/agent/message.py +175 -0
- astrbot/core/agent/response.py +14 -0
- astrbot/core/agent/run_context.py +22 -0
- astrbot/core/agent/runners/__init__.py +3 -0
- astrbot/core/agent/runners/base.py +65 -0
- astrbot/core/agent/runners/coze/coze_agent_runner.py +367 -0
- astrbot/core/agent/runners/coze/coze_api_client.py +324 -0
- astrbot/core/agent/runners/dashscope/dashscope_agent_runner.py +403 -0
- astrbot/core/agent/runners/dify/dify_agent_runner.py +336 -0
- astrbot/core/agent/runners/dify/dify_api_client.py +195 -0
- astrbot/core/agent/runners/tool_loop_agent_runner.py +400 -0
- astrbot/core/agent/tool.py +285 -0
- astrbot/core/agent/tool_executor.py +17 -0
- astrbot/core/astr_agent_context.py +19 -0
- astrbot/core/astr_agent_hooks.py +36 -0
- astrbot/core/astr_agent_run_util.py +80 -0
- astrbot/core/astr_agent_tool_exec.py +246 -0
- astrbot/core/astrbot_config_mgr.py +275 -0
- astrbot/core/config/__init__.py +2 -2
- astrbot/core/config/astrbot_config.py +60 -20
- astrbot/core/config/default.py +1972 -453
- astrbot/core/config/i18n_utils.py +110 -0
- astrbot/core/conversation_mgr.py +285 -75
- astrbot/core/core_lifecycle.py +167 -62
- astrbot/core/db/__init__.py +305 -102
- astrbot/core/db/migration/helper.py +69 -0
- astrbot/core/db/migration/migra_3_to_4.py +357 -0
- astrbot/core/db/migration/migra_45_to_46.py +44 -0
- astrbot/core/db/migration/migra_webchat_session.py +131 -0
- astrbot/core/db/migration/shared_preferences_v3.py +48 -0
- astrbot/core/db/migration/sqlite_v3.py +497 -0
- astrbot/core/db/po.py +259 -55
- astrbot/core/db/sqlite.py +773 -528
- astrbot/core/db/vec_db/base.py +73 -0
- astrbot/core/db/vec_db/faiss_impl/__init__.py +3 -0
- astrbot/core/db/vec_db/faiss_impl/document_storage.py +392 -0
- astrbot/core/db/vec_db/faiss_impl/embedding_storage.py +93 -0
- astrbot/core/db/vec_db/faiss_impl/sqlite_init.sql +17 -0
- astrbot/core/db/vec_db/faiss_impl/vec_db.py +204 -0
- astrbot/core/event_bus.py +26 -22
- astrbot/core/exceptions.py +9 -0
- astrbot/core/file_token_service.py +98 -0
- astrbot/core/initial_loader.py +19 -10
- astrbot/core/knowledge_base/chunking/__init__.py +9 -0
- astrbot/core/knowledge_base/chunking/base.py +25 -0
- astrbot/core/knowledge_base/chunking/fixed_size.py +59 -0
- astrbot/core/knowledge_base/chunking/recursive.py +161 -0
- astrbot/core/knowledge_base/kb_db_sqlite.py +301 -0
- astrbot/core/knowledge_base/kb_helper.py +642 -0
- astrbot/core/knowledge_base/kb_mgr.py +330 -0
- astrbot/core/knowledge_base/models.py +120 -0
- astrbot/core/knowledge_base/parsers/__init__.py +13 -0
- astrbot/core/knowledge_base/parsers/base.py +51 -0
- astrbot/core/knowledge_base/parsers/markitdown_parser.py +26 -0
- astrbot/core/knowledge_base/parsers/pdf_parser.py +101 -0
- astrbot/core/knowledge_base/parsers/text_parser.py +42 -0
- astrbot/core/knowledge_base/parsers/url_parser.py +103 -0
- astrbot/core/knowledge_base/parsers/util.py +13 -0
- astrbot/core/knowledge_base/prompts.py +65 -0
- astrbot/core/knowledge_base/retrieval/__init__.py +14 -0
- astrbot/core/knowledge_base/retrieval/hit_stopwords.txt +767 -0
- astrbot/core/knowledge_base/retrieval/manager.py +276 -0
- astrbot/core/knowledge_base/retrieval/rank_fusion.py +142 -0
- astrbot/core/knowledge_base/retrieval/sparse_retriever.py +136 -0
- astrbot/core/log.py +21 -15
- astrbot/core/message/components.py +413 -287
- astrbot/core/message/message_event_result.py +35 -24
- astrbot/core/persona_mgr.py +192 -0
- astrbot/core/pipeline/__init__.py +14 -14
- astrbot/core/pipeline/content_safety_check/stage.py +13 -9
- astrbot/core/pipeline/content_safety_check/strategies/__init__.py +1 -2
- astrbot/core/pipeline/content_safety_check/strategies/baidu_aip.py +13 -14
- astrbot/core/pipeline/content_safety_check/strategies/keywords.py +2 -1
- astrbot/core/pipeline/content_safety_check/strategies/strategy.py +6 -6
- astrbot/core/pipeline/context.py +7 -1
- astrbot/core/pipeline/context_utils.py +107 -0
- astrbot/core/pipeline/preprocess_stage/stage.py +63 -36
- astrbot/core/pipeline/process_stage/method/agent_request.py +48 -0
- astrbot/core/pipeline/process_stage/method/agent_sub_stages/internal.py +464 -0
- astrbot/core/pipeline/process_stage/method/agent_sub_stages/third_party.py +202 -0
- astrbot/core/pipeline/process_stage/method/star_request.py +26 -32
- astrbot/core/pipeline/process_stage/stage.py +21 -15
- astrbot/core/pipeline/process_stage/utils.py +125 -0
- astrbot/core/pipeline/rate_limit_check/stage.py +34 -36
- astrbot/core/pipeline/respond/stage.py +142 -101
- astrbot/core/pipeline/result_decorate/stage.py +124 -57
- astrbot/core/pipeline/scheduler.py +21 -16
- astrbot/core/pipeline/session_status_check/stage.py +37 -0
- astrbot/core/pipeline/stage.py +11 -76
- astrbot/core/pipeline/waking_check/stage.py +69 -33
- astrbot/core/pipeline/whitelist_check/stage.py +10 -7
- astrbot/core/platform/__init__.py +6 -6
- astrbot/core/platform/astr_message_event.py +107 -129
- astrbot/core/platform/astrbot_message.py +32 -12
- astrbot/core/platform/manager.py +62 -18
- astrbot/core/platform/message_session.py +30 -0
- astrbot/core/platform/platform.py +16 -24
- astrbot/core/platform/platform_metadata.py +9 -4
- astrbot/core/platform/register.py +12 -7
- astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py +136 -60
- astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py +126 -46
- astrbot/core/platform/sources/dingtalk/dingtalk_adapter.py +63 -31
- astrbot/core/platform/sources/dingtalk/dingtalk_event.py +30 -26
- astrbot/core/platform/sources/discord/client.py +129 -0
- astrbot/core/platform/sources/discord/components.py +139 -0
- astrbot/core/platform/sources/discord/discord_platform_adapter.py +473 -0
- astrbot/core/platform/sources/discord/discord_platform_event.py +313 -0
- astrbot/core/platform/sources/lark/lark_adapter.py +27 -18
- astrbot/core/platform/sources/lark/lark_event.py +39 -13
- astrbot/core/platform/sources/misskey/misskey_adapter.py +770 -0
- astrbot/core/platform/sources/misskey/misskey_api.py +964 -0
- astrbot/core/platform/sources/misskey/misskey_event.py +163 -0
- astrbot/core/platform/sources/misskey/misskey_utils.py +550 -0
- astrbot/core/platform/sources/qqofficial/qqofficial_message_event.py +149 -33
- astrbot/core/platform/sources/qqofficial/qqofficial_platform_adapter.py +41 -26
- astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_adapter.py +36 -17
- astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_event.py +3 -1
- astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py +14 -8
- astrbot/core/platform/sources/satori/satori_adapter.py +792 -0
- astrbot/core/platform/sources/satori/satori_event.py +432 -0
- astrbot/core/platform/sources/slack/client.py +164 -0
- astrbot/core/platform/sources/slack/slack_adapter.py +416 -0
- astrbot/core/platform/sources/slack/slack_event.py +253 -0
- astrbot/core/platform/sources/telegram/tg_adapter.py +100 -43
- astrbot/core/platform/sources/telegram/tg_event.py +136 -36
- astrbot/core/platform/sources/webchat/webchat_adapter.py +72 -22
- astrbot/core/platform/sources/webchat/webchat_event.py +46 -22
- astrbot/core/platform/sources/webchat/webchat_queue_mgr.py +35 -0
- astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py +926 -0
- astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py +178 -0
- astrbot/core/platform/sources/wechatpadpro/xml_data_parser.py +159 -0
- astrbot/core/platform/sources/wecom/wecom_adapter.py +169 -27
- astrbot/core/platform/sources/wecom/wecom_event.py +162 -77
- astrbot/core/platform/sources/wecom/wecom_kf.py +279 -0
- astrbot/core/platform/sources/wecom/wecom_kf_message.py +196 -0
- astrbot/core/platform/sources/wecom_ai_bot/WXBizJsonMsgCrypt.py +297 -0
- astrbot/core/platform/sources/wecom_ai_bot/__init__.py +15 -0
- astrbot/core/platform/sources/wecom_ai_bot/ierror.py +19 -0
- astrbot/core/platform/sources/wecom_ai_bot/wecomai_adapter.py +472 -0
- astrbot/core/platform/sources/wecom_ai_bot/wecomai_api.py +417 -0
- astrbot/core/platform/sources/wecom_ai_bot/wecomai_event.py +152 -0
- astrbot/core/platform/sources/wecom_ai_bot/wecomai_queue_mgr.py +153 -0
- astrbot/core/platform/sources/wecom_ai_bot/wecomai_server.py +168 -0
- astrbot/core/platform/sources/wecom_ai_bot/wecomai_utils.py +209 -0
- astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py +306 -0
- astrbot/core/platform/sources/weixin_official_account/weixin_offacc_event.py +186 -0
- astrbot/core/platform_message_history_mgr.py +49 -0
- astrbot/core/provider/__init__.py +2 -3
- astrbot/core/provider/entites.py +8 -8
- astrbot/core/provider/entities.py +154 -98
- astrbot/core/provider/func_tool_manager.py +446 -458
- astrbot/core/provider/manager.py +345 -207
- astrbot/core/provider/provider.py +188 -73
- astrbot/core/provider/register.py +9 -7
- astrbot/core/provider/sources/anthropic_source.py +295 -115
- astrbot/core/provider/sources/azure_tts_source.py +224 -0
- astrbot/core/provider/sources/bailian_rerank_source.py +236 -0
- astrbot/core/provider/sources/dashscope_tts.py +138 -14
- astrbot/core/provider/sources/edge_tts_source.py +24 -19
- astrbot/core/provider/sources/fishaudio_tts_api_source.py +58 -13
- astrbot/core/provider/sources/gemini_embedding_source.py +61 -0
- astrbot/core/provider/sources/gemini_source.py +310 -132
- astrbot/core/provider/sources/gemini_tts_source.py +81 -0
- astrbot/core/provider/sources/groq_source.py +15 -0
- astrbot/core/provider/sources/gsv_selfhosted_source.py +151 -0
- astrbot/core/provider/sources/gsvi_tts_source.py +14 -7
- astrbot/core/provider/sources/minimax_tts_api_source.py +159 -0
- astrbot/core/provider/sources/openai_embedding_source.py +40 -0
- astrbot/core/provider/sources/openai_source.py +241 -145
- astrbot/core/provider/sources/openai_tts_api_source.py +18 -7
- astrbot/core/provider/sources/sensevoice_selfhosted_source.py +13 -11
- astrbot/core/provider/sources/vllm_rerank_source.py +71 -0
- astrbot/core/provider/sources/volcengine_tts.py +115 -0
- astrbot/core/provider/sources/whisper_api_source.py +18 -13
- astrbot/core/provider/sources/whisper_selfhosted_source.py +19 -12
- astrbot/core/provider/sources/xinference_rerank_source.py +116 -0
- astrbot/core/provider/sources/xinference_stt_provider.py +197 -0
- astrbot/core/provider/sources/zhipu_source.py +6 -73
- astrbot/core/star/__init__.py +43 -11
- astrbot/core/star/config.py +17 -18
- astrbot/core/star/context.py +362 -138
- astrbot/core/star/filter/__init__.py +4 -3
- astrbot/core/star/filter/command.py +111 -35
- astrbot/core/star/filter/command_group.py +46 -34
- astrbot/core/star/filter/custom_filter.py +6 -5
- astrbot/core/star/filter/event_message_type.py +4 -2
- astrbot/core/star/filter/permission.py +4 -2
- astrbot/core/star/filter/platform_adapter_type.py +45 -12
- astrbot/core/star/filter/regex.py +4 -2
- astrbot/core/star/register/__init__.py +19 -15
- astrbot/core/star/register/star.py +41 -13
- astrbot/core/star/register/star_handler.py +236 -86
- astrbot/core/star/session_llm_manager.py +280 -0
- astrbot/core/star/session_plugin_manager.py +170 -0
- astrbot/core/star/star.py +36 -43
- astrbot/core/star/star_handler.py +47 -85
- astrbot/core/star/star_manager.py +442 -260
- astrbot/core/star/star_tools.py +167 -45
- astrbot/core/star/updator.py +17 -20
- astrbot/core/umop_config_router.py +106 -0
- astrbot/core/updator.py +38 -13
- astrbot/core/utils/astrbot_path.py +39 -0
- astrbot/core/utils/command_parser.py +1 -1
- astrbot/core/utils/io.py +119 -60
- astrbot/core/utils/log_pipe.py +1 -1
- astrbot/core/utils/metrics.py +11 -10
- astrbot/core/utils/migra_helper.py +73 -0
- astrbot/core/utils/path_util.py +63 -62
- astrbot/core/utils/pip_installer.py +37 -15
- astrbot/core/utils/session_lock.py +29 -0
- astrbot/core/utils/session_waiter.py +19 -20
- astrbot/core/utils/shared_preferences.py +174 -34
- astrbot/core/utils/t2i/__init__.py +4 -1
- astrbot/core/utils/t2i/local_strategy.py +386 -238
- astrbot/core/utils/t2i/network_strategy.py +109 -49
- astrbot/core/utils/t2i/renderer.py +29 -14
- astrbot/core/utils/t2i/template/astrbot_powershell.html +184 -0
- astrbot/core/utils/t2i/template_manager.py +111 -0
- astrbot/core/utils/tencent_record_helper.py +115 -1
- astrbot/core/utils/version_comparator.py +10 -13
- astrbot/core/zip_updator.py +112 -65
- astrbot/dashboard/routes/__init__.py +20 -13
- astrbot/dashboard/routes/auth.py +20 -9
- astrbot/dashboard/routes/chat.py +297 -141
- astrbot/dashboard/routes/config.py +652 -55
- astrbot/dashboard/routes/conversation.py +107 -37
- astrbot/dashboard/routes/file.py +26 -0
- astrbot/dashboard/routes/knowledge_base.py +1244 -0
- astrbot/dashboard/routes/log.py +27 -2
- astrbot/dashboard/routes/persona.py +202 -0
- astrbot/dashboard/routes/plugin.py +197 -139
- astrbot/dashboard/routes/route.py +27 -7
- astrbot/dashboard/routes/session_management.py +354 -0
- astrbot/dashboard/routes/stat.py +85 -18
- astrbot/dashboard/routes/static_file.py +5 -2
- astrbot/dashboard/routes/t2i.py +233 -0
- astrbot/dashboard/routes/tools.py +184 -120
- astrbot/dashboard/routes/update.py +59 -36
- astrbot/dashboard/server.py +96 -36
- astrbot/dashboard/utils.py +165 -0
- astrbot-4.7.0.dist-info/METADATA +294 -0
- astrbot-4.7.0.dist-info/RECORD +274 -0
- {astrbot-3.5.6.dist-info → astrbot-4.7.0.dist-info}/WHEEL +1 -1
- astrbot/core/db/plugin/sqlite_impl.py +0 -112
- astrbot/core/db/sqlite_init.sql +0 -50
- astrbot/core/pipeline/platform_compatibility/stage.py +0 -56
- astrbot/core/pipeline/process_stage/method/llm_request.py +0 -606
- astrbot/core/platform/sources/gewechat/client.py +0 -806
- astrbot/core/platform/sources/gewechat/downloader.py +0 -55
- astrbot/core/platform/sources/gewechat/gewechat_event.py +0 -255
- astrbot/core/platform/sources/gewechat/gewechat_platform_adapter.py +0 -103
- astrbot/core/platform/sources/gewechat/xml_data_parser.py +0 -110
- astrbot/core/provider/sources/dashscope_source.py +0 -203
- astrbot/core/provider/sources/dify_source.py +0 -281
- astrbot/core/provider/sources/llmtuner_source.py +0 -132
- astrbot/core/rag/embedding/openai_source.py +0 -20
- astrbot/core/rag/knowledge_db_mgr.py +0 -94
- astrbot/core/rag/store/__init__.py +0 -9
- astrbot/core/rag/store/chroma_db.py +0 -42
- astrbot/core/utils/dify_api_client.py +0 -152
- astrbot-3.5.6.dist-info/METADATA +0 -249
- astrbot-3.5.6.dist-info/RECORD +0 -158
- {astrbot-3.5.6.dist-info → astrbot-4.7.0.dist-info}/entry_points.txt +0 -0
- {astrbot-3.5.6.dist-info → astrbot-4.7.0.dist-info}/licenses/LICENSE +0 -0
astrbot/api/__init__.py
CHANGED
|
@@ -1,7 +1,19 @@
|
|
|
1
|
-
from astrbot.core.config.astrbot_config import AstrBotConfig
|
|
2
1
|
from astrbot import logger
|
|
3
|
-
from astrbot.core import html_renderer
|
|
4
|
-
from astrbot.core import
|
|
2
|
+
from astrbot.core import html_renderer, sp
|
|
3
|
+
from astrbot.core.agent.tool import FunctionTool, ToolSet
|
|
4
|
+
from astrbot.core.agent.tool_executor import BaseFunctionToolExecutor
|
|
5
|
+
from astrbot.core.config.astrbot_config import AstrBotConfig
|
|
6
|
+
from astrbot.core.star.register import register_agent as agent
|
|
5
7
|
from astrbot.core.star.register import register_llm_tool as llm_tool
|
|
6
8
|
|
|
7
|
-
__all__ = [
|
|
9
|
+
__all__ = [
|
|
10
|
+
"AstrBotConfig",
|
|
11
|
+
"BaseFunctionToolExecutor",
|
|
12
|
+
"FunctionTool",
|
|
13
|
+
"ToolSet",
|
|
14
|
+
"agent",
|
|
15
|
+
"html_renderer",
|
|
16
|
+
"llm_tool",
|
|
17
|
+
"logger",
|
|
18
|
+
"sp",
|
|
19
|
+
]
|
astrbot/api/all.py
CHANGED
|
@@ -36,7 +36,8 @@ from astrbot.core.star.config import *
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
# provider
|
|
39
|
-
from astrbot.core.provider import Provider,
|
|
39
|
+
from astrbot.core.provider import Provider, ProviderMetaData
|
|
40
|
+
from astrbot.core.db.po import Personality
|
|
40
41
|
|
|
41
42
|
# platform
|
|
42
43
|
from astrbot.core.platform import (
|
astrbot/api/event/__init__.py
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
from astrbot.core.message.message_event_result import (
|
|
2
|
-
MessageEventResult,
|
|
3
|
-
MessageChain,
|
|
4
2
|
CommandResult,
|
|
5
3
|
EventResultType,
|
|
4
|
+
MessageChain,
|
|
5
|
+
MessageEventResult,
|
|
6
6
|
ResultContentType,
|
|
7
7
|
)
|
|
8
|
-
|
|
9
8
|
from astrbot.core.platform import AstrMessageEvent
|
|
10
9
|
|
|
11
10
|
__all__ = [
|
|
12
|
-
"
|
|
13
|
-
"MessageChain",
|
|
11
|
+
"AstrMessageEvent",
|
|
14
12
|
"CommandResult",
|
|
15
13
|
"EventResultType",
|
|
16
|
-
"
|
|
14
|
+
"MessageChain",
|
|
15
|
+
"MessageEventResult",
|
|
17
16
|
"ResultContentType",
|
|
18
17
|
]
|
|
@@ -1,49 +1,52 @@
|
|
|
1
|
-
from astrbot.core.star.
|
|
2
|
-
register_command as command,
|
|
3
|
-
register_command_group as command_group,
|
|
4
|
-
register_event_message_type as event_message_type,
|
|
5
|
-
register_regex as regex,
|
|
6
|
-
register_platform_adapter_type as platform_adapter_type,
|
|
7
|
-
register_permission_type as permission_type,
|
|
8
|
-
register_custom_filter as custom_filter,
|
|
9
|
-
register_on_astrbot_loaded as on_astrbot_loaded,
|
|
10
|
-
register_on_llm_request as on_llm_request,
|
|
11
|
-
register_on_llm_response as on_llm_response,
|
|
12
|
-
register_llm_tool as llm_tool,
|
|
13
|
-
register_on_decorating_result as on_decorating_result,
|
|
14
|
-
register_after_message_sent as after_message_sent,
|
|
15
|
-
)
|
|
16
|
-
|
|
1
|
+
from astrbot.core.star.filter.custom_filter import CustomFilter
|
|
17
2
|
from astrbot.core.star.filter.event_message_type import (
|
|
18
|
-
EventMessageTypeFilter,
|
|
19
3
|
EventMessageType,
|
|
4
|
+
EventMessageTypeFilter,
|
|
20
5
|
)
|
|
6
|
+
from astrbot.core.star.filter.permission import PermissionType, PermissionTypeFilter
|
|
21
7
|
from astrbot.core.star.filter.platform_adapter_type import (
|
|
22
|
-
PlatformAdapterTypeFilter,
|
|
23
8
|
PlatformAdapterType,
|
|
9
|
+
PlatformAdapterTypeFilter,
|
|
24
10
|
)
|
|
25
|
-
from astrbot.core.star.
|
|
26
|
-
from astrbot.core.star.
|
|
11
|
+
from astrbot.core.star.register import register_after_message_sent as after_message_sent
|
|
12
|
+
from astrbot.core.star.register import register_command as command
|
|
13
|
+
from astrbot.core.star.register import register_command_group as command_group
|
|
14
|
+
from astrbot.core.star.register import register_custom_filter as custom_filter
|
|
15
|
+
from astrbot.core.star.register import register_event_message_type as event_message_type
|
|
16
|
+
from astrbot.core.star.register import register_llm_tool as llm_tool
|
|
17
|
+
from astrbot.core.star.register import register_on_astrbot_loaded as on_astrbot_loaded
|
|
18
|
+
from astrbot.core.star.register import (
|
|
19
|
+
register_on_decorating_result as on_decorating_result,
|
|
20
|
+
)
|
|
21
|
+
from astrbot.core.star.register import register_on_llm_request as on_llm_request
|
|
22
|
+
from astrbot.core.star.register import register_on_llm_response as on_llm_response
|
|
23
|
+
from astrbot.core.star.register import register_on_platform_loaded as on_platform_loaded
|
|
24
|
+
from astrbot.core.star.register import register_permission_type as permission_type
|
|
25
|
+
from astrbot.core.star.register import (
|
|
26
|
+
register_platform_adapter_type as platform_adapter_type,
|
|
27
|
+
)
|
|
28
|
+
from astrbot.core.star.register import register_regex as regex
|
|
27
29
|
|
|
28
30
|
__all__ = [
|
|
29
|
-
"
|
|
30
|
-
"command_group",
|
|
31
|
-
"event_message_type",
|
|
32
|
-
"regex",
|
|
33
|
-
"platform_adapter_type",
|
|
34
|
-
"permission_type",
|
|
35
|
-
"EventMessageTypeFilter",
|
|
31
|
+
"CustomFilter",
|
|
36
32
|
"EventMessageType",
|
|
37
|
-
"
|
|
38
|
-
"
|
|
33
|
+
"EventMessageTypeFilter",
|
|
34
|
+
"PermissionType",
|
|
39
35
|
"PermissionTypeFilter",
|
|
40
|
-
"
|
|
36
|
+
"PlatformAdapterType",
|
|
37
|
+
"PlatformAdapterTypeFilter",
|
|
38
|
+
"after_message_sent",
|
|
39
|
+
"command",
|
|
40
|
+
"command_group",
|
|
41
41
|
"custom_filter",
|
|
42
|
-
"
|
|
43
|
-
"on_astrbot_loaded",
|
|
44
|
-
"on_llm_request",
|
|
42
|
+
"event_message_type",
|
|
45
43
|
"llm_tool",
|
|
44
|
+
"on_astrbot_loaded",
|
|
46
45
|
"on_decorating_result",
|
|
47
|
-
"
|
|
46
|
+
"on_llm_request",
|
|
48
47
|
"on_llm_response",
|
|
48
|
+
"on_platform_loaded",
|
|
49
|
+
"permission_type",
|
|
50
|
+
"platform_adapter_type",
|
|
51
|
+
"regex",
|
|
49
52
|
]
|
astrbot/api/platform/__init__.py
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
|
+
from astrbot.core.message.components import *
|
|
1
2
|
from astrbot.core.platform import (
|
|
2
|
-
AstrMessageEvent,
|
|
3
|
-
Platform,
|
|
4
3
|
AstrBotMessage,
|
|
4
|
+
AstrMessageEvent,
|
|
5
|
+
Group,
|
|
5
6
|
MessageMember,
|
|
6
7
|
MessageType,
|
|
8
|
+
Platform,
|
|
7
9
|
PlatformMetadata,
|
|
8
|
-
Group,
|
|
9
10
|
)
|
|
10
|
-
|
|
11
11
|
from astrbot.core.platform.register import register_platform_adapter
|
|
12
|
-
from astrbot.core.message.components import *
|
|
13
12
|
|
|
14
13
|
__all__ = [
|
|
15
|
-
"AstrMessageEvent",
|
|
16
|
-
"Platform",
|
|
17
14
|
"AstrBotMessage",
|
|
15
|
+
"AstrMessageEvent",
|
|
16
|
+
"Group",
|
|
18
17
|
"MessageMember",
|
|
19
18
|
"MessageType",
|
|
19
|
+
"Platform",
|
|
20
20
|
"PlatformMetadata",
|
|
21
21
|
"register_platform_adapter",
|
|
22
|
-
"Group",
|
|
23
22
|
]
|
astrbot/api/provider/__init__.py
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
from astrbot.core.
|
|
1
|
+
from astrbot.core.db.po import Personality
|
|
2
|
+
from astrbot.core.provider import Provider, STTProvider
|
|
2
3
|
from astrbot.core.provider.entities import (
|
|
4
|
+
LLMResponse,
|
|
5
|
+
ProviderMetaData,
|
|
3
6
|
ProviderRequest,
|
|
4
7
|
ProviderType,
|
|
5
|
-
ProviderMetaData,
|
|
6
|
-
LLMResponse,
|
|
7
8
|
)
|
|
8
9
|
|
|
9
10
|
__all__ = [
|
|
10
|
-
"
|
|
11
|
-
"STTProvider",
|
|
11
|
+
"LLMResponse",
|
|
12
12
|
"Personality",
|
|
13
|
+
"Provider",
|
|
14
|
+
"ProviderMetaData",
|
|
13
15
|
"ProviderRequest",
|
|
14
16
|
"ProviderType",
|
|
15
|
-
"
|
|
16
|
-
"LLMResponse",
|
|
17
|
+
"STTProvider",
|
|
17
18
|
]
|
astrbot/api/star/__init__.py
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
from astrbot.core.star import Context, Star, StarTools
|
|
2
|
+
from astrbot.core.star.config import *
|
|
1
3
|
from astrbot.core.star.register import (
|
|
2
4
|
register_star as register, # 注册插件(Star)
|
|
3
5
|
)
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
from astrbot.core.star.config import *
|
|
7
|
-
|
|
8
|
-
__all__ = ["register", "Context", "Star", "StarTools"]
|
|
7
|
+
__all__ = ["Context", "Star", "StarTools", "register"]
|
astrbot/api/util/__init__.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from astrbot.core.utils.session_waiter import (
|
|
2
|
-
SessionWaiter,
|
|
3
2
|
SessionController,
|
|
3
|
+
SessionWaiter,
|
|
4
4
|
session_waiter,
|
|
5
5
|
)
|
|
6
6
|
|
|
7
|
-
__all__ = ["
|
|
7
|
+
__all__ = ["SessionController", "SessionWaiter", "session_waiter"]
|
astrbot/cli/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "3.5.23"
|
astrbot/cli/__main__.py
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import shutil
|
|
1
|
+
"""AstrBot CLI入口"""
|
|
2
|
+
|
|
4
3
|
import sys
|
|
4
|
+
|
|
5
5
|
import click
|
|
6
|
-
from pathlib import Path
|
|
7
|
-
from astrbot.core.config.default import VERSION
|
|
8
6
|
|
|
7
|
+
from . import __version__
|
|
8
|
+
from .commands import conf, init, plug, run
|
|
9
9
|
|
|
10
10
|
logo_tmpl = r"""
|
|
11
11
|
___ _______.___________..______ .______ ______ .___________.
|
|
@@ -14,210 +14,25 @@ logo_tmpl = r"""
|
|
|
14
14
|
/ /_\ \ \ \ | | | / | _ < | | | | | |
|
|
15
15
|
/ _____ \ .----) | | | | |\ \----.| |_) | | `--' | | |
|
|
16
16
|
/__/ \__\ |_______/ |__| | _| `._____||______/ \______/ |__|
|
|
17
|
-
|
|
18
17
|
"""
|
|
19
18
|
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"""获取astrbot根目录"""
|
|
24
|
-
match path:
|
|
25
|
-
case None:
|
|
26
|
-
match ASTRBOT_ROOT := os.getenv("ASTRBOT_ROOT"):
|
|
27
|
-
case None:
|
|
28
|
-
astrbot_root = Path.cwd() / "data"
|
|
29
|
-
case _:
|
|
30
|
-
astrbot_root = Path(ASTRBOT_ROOT).resolve()
|
|
31
|
-
case str():
|
|
32
|
-
astrbot_root = Path(path).resolve()
|
|
33
|
-
|
|
34
|
-
dot_astrbot = astrbot_root / ".astrbot"
|
|
35
|
-
if not dot_astrbot.exists():
|
|
36
|
-
if click.confirm(
|
|
37
|
-
f"运行前必须先执行初始化!请检查当前目录是否正确,回车以继续: {astrbot_root}",
|
|
38
|
-
default=True,
|
|
39
|
-
abort=True,
|
|
40
|
-
):
|
|
41
|
-
dot_astrbot.touch()
|
|
42
|
-
astrbot_root.mkdir(parents=True, exist_ok=True)
|
|
43
|
-
click.echo(f"Created {dot_astrbot}")
|
|
44
|
-
|
|
45
|
-
return astrbot_root
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
# 通过类型来验证先后,必须先获取 Path 对象才能对该目录进行检查
|
|
49
|
-
def _check_astrbot_root(astrbot_root: Path) -> None:
|
|
50
|
-
"""验证"""
|
|
51
|
-
dot_astrbot = astrbot_root / ".astrbot"
|
|
52
|
-
if not astrbot_root.exists():
|
|
53
|
-
click.echo(f"AstrBot root directory does not exist: {astrbot_root}")
|
|
54
|
-
click.echo("Please run 'astrbot init' to create the directory.")
|
|
55
|
-
sys.exit(1)
|
|
56
|
-
else:
|
|
57
|
-
click.echo(f"AstrBot root directory exists: {astrbot_root}")
|
|
58
|
-
if not dot_astrbot.exists():
|
|
59
|
-
click.echo(
|
|
60
|
-
"如果你确认这是 Astrbot root directory, 你需要在当前目录下创建一个 .astrbot 文件标记该目录为 AstrBot 的数据目录。"
|
|
61
|
-
)
|
|
62
|
-
if click.confirm(
|
|
63
|
-
f"请检查当前目录是否正确,确认正确请回车: {astrbot_root}",
|
|
64
|
-
default=True,
|
|
65
|
-
abort=True,
|
|
66
|
-
):
|
|
67
|
-
dot_astrbot.touch()
|
|
68
|
-
click.echo(f"Created {dot_astrbot}")
|
|
69
|
-
else:
|
|
70
|
-
click.echo(f"Welcome back! AstrBot root directory: {astrbot_root}")
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
async def _check_dashboard(astrbot_root: Path) -> None:
|
|
74
|
-
"""检查是否安装了dashboard"""
|
|
75
|
-
try:
|
|
76
|
-
from ..core.utils.io import get_dashboard_version, download_dashboard
|
|
77
|
-
except ImportError:
|
|
78
|
-
from astrbot.core.utils.io import get_dashboard_version, download_dashboard
|
|
79
|
-
|
|
80
|
-
try:
|
|
81
|
-
# 添加 create=True 参数以确保在初始化时不会抛出异常
|
|
82
|
-
dashboard_version = await get_dashboard_version()
|
|
83
|
-
match dashboard_version:
|
|
84
|
-
case None:
|
|
85
|
-
click.echo("未安装管理面板")
|
|
86
|
-
if click.confirm(
|
|
87
|
-
"是否安装管理面板?",
|
|
88
|
-
default=True,
|
|
89
|
-
abort=True,
|
|
90
|
-
):
|
|
91
|
-
click.echo("正在安装管理面板...")
|
|
92
|
-
# 确保使用 create=True 参数
|
|
93
|
-
await download_dashboard(
|
|
94
|
-
path="data/dashboard.zip", extract_path=str(astrbot_root)
|
|
95
|
-
)
|
|
96
|
-
click.echo("管理面板安装完成")
|
|
97
|
-
|
|
98
|
-
case str():
|
|
99
|
-
if dashboard_version == f"v{VERSION}":
|
|
100
|
-
click.echo("无需更新")
|
|
101
|
-
else:
|
|
102
|
-
try:
|
|
103
|
-
version = dashboard_version.split("v")[1]
|
|
104
|
-
click.echo(f"管理面板版本: {version}")
|
|
105
|
-
# 确保使用 create=True 参数
|
|
106
|
-
await download_dashboard(
|
|
107
|
-
path="data/dashboard.zip", extract_path=str(astrbot_root)
|
|
108
|
-
)
|
|
109
|
-
except Exception as e:
|
|
110
|
-
click.echo(f"下载管理面板失败: {e}")
|
|
111
|
-
return
|
|
112
|
-
except FileNotFoundError:
|
|
113
|
-
click.echo("初始化管理面板目录...")
|
|
114
|
-
# 初始化模式下,下载到指定位置
|
|
115
|
-
try:
|
|
116
|
-
await download_dashboard(
|
|
117
|
-
path=str(astrbot_root / "dashboard.zip"), extract_path=str(astrbot_root)
|
|
118
|
-
)
|
|
119
|
-
click.echo("管理面板初始化完成")
|
|
120
|
-
except Exception as e:
|
|
121
|
-
click.echo(f"下载管理面板失败: {e}")
|
|
122
|
-
return
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
@click.group(name="astrbot")
|
|
20
|
+
@click.group()
|
|
21
|
+
@click.version_option(__version__, prog_name="AstrBot")
|
|
126
22
|
def cli() -> None:
|
|
127
23
|
"""The AstrBot CLI"""
|
|
128
24
|
click.echo(logo_tmpl)
|
|
129
25
|
click.echo("Welcome to AstrBot CLI!")
|
|
130
|
-
click.echo(f"AstrBot version: {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
# region init
|
|
134
|
-
@cli.command()
|
|
135
|
-
@click.option("--path", "-p", help="AstrBot 数据目录")
|
|
136
|
-
@click.option("--force", "-f", is_flag=True, help="强制初始化")
|
|
137
|
-
def init(path: str | None, force: bool) -> None:
|
|
138
|
-
"""Initialize AstrBot"""
|
|
139
|
-
click.echo("Initializing AstrBot...")
|
|
140
|
-
astrbot_root = _get_astrbot_root(path)
|
|
141
|
-
if force:
|
|
142
|
-
if click.confirm(
|
|
143
|
-
"强制初始化会删除当前目录下的所有文件,是否继续?",
|
|
144
|
-
default=False,
|
|
145
|
-
abort=True,
|
|
146
|
-
):
|
|
147
|
-
click.echo("正在删除当前目录下的所有文件...")
|
|
148
|
-
shutil.rmtree(astrbot_root, ignore_errors=True)
|
|
26
|
+
click.echo(f"AstrBot CLI version: {__version__}")
|
|
149
27
|
|
|
150
|
-
_check_astrbot_root(astrbot_root)
|
|
151
28
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
if not astrbot_root.exists():
|
|
155
|
-
# 创建目录
|
|
156
|
-
astrbot_root.mkdir(parents=True, exist_ok=True)
|
|
157
|
-
click.echo(f"Created directory: {astrbot_root}")
|
|
158
|
-
else:
|
|
159
|
-
click.echo(f"Directory already exists: {astrbot_root}")
|
|
160
|
-
|
|
161
|
-
config_path: Path = astrbot_root / "config"
|
|
162
|
-
plugins_path: Path = astrbot_root / "plugins"
|
|
163
|
-
temp_path: Path = astrbot_root / "temp"
|
|
164
|
-
config_path.mkdir(parents=True, exist_ok=True)
|
|
165
|
-
plugins_path.mkdir(parents=True, exist_ok=True)
|
|
166
|
-
temp_path.mkdir(parents=True, exist_ok=True)
|
|
167
|
-
|
|
168
|
-
click.echo(f"Created directories: {config_path}, {plugins_path}, {temp_path}")
|
|
169
|
-
|
|
170
|
-
# 检查是否安装了dashboard
|
|
171
|
-
asyncio.run(_check_dashboard(astrbot_root))
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
# region run
|
|
175
|
-
@cli.command()
|
|
176
|
-
@click.option("--path", "-p", help="AstrBot 数据目录")
|
|
177
|
-
def run(path: str | None = None) -> None:
|
|
178
|
-
"""Run AstrBot"""
|
|
179
|
-
# 解析为绝对路径
|
|
180
|
-
try:
|
|
181
|
-
from ..core.log import LogBroker
|
|
182
|
-
from ..core import db_helper
|
|
183
|
-
from ..core.initial_loader import InitialLoader
|
|
184
|
-
except ImportError:
|
|
185
|
-
from astrbot.core.log import LogBroker
|
|
186
|
-
from astrbot.core import db_helper
|
|
187
|
-
from astrbot.core.initial_loader import InitialLoader
|
|
188
|
-
|
|
189
|
-
astrbot_root = _get_astrbot_root(path)
|
|
190
|
-
|
|
191
|
-
_check_astrbot_root(astrbot_root)
|
|
192
|
-
|
|
193
|
-
asyncio.run(_check_dashboard(astrbot_root))
|
|
194
|
-
|
|
195
|
-
log_broker = LogBroker()
|
|
196
|
-
db = db_helper
|
|
197
|
-
|
|
198
|
-
core_lifecycle = InitialLoader(db, log_broker)
|
|
199
|
-
try:
|
|
200
|
-
asyncio.run(core_lifecycle.start())
|
|
201
|
-
except KeyboardInterrupt:
|
|
202
|
-
click.echo("接收到退出信号,正在关闭 AstrBot...")
|
|
203
|
-
except Exception as e:
|
|
204
|
-
click.echo(f"运行时出现错误: {e}")
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
# region Basic
|
|
208
|
-
@cli.command(name="version")
|
|
209
|
-
def version() -> None:
|
|
210
|
-
"""Show the version of AstrBot"""
|
|
211
|
-
click.echo(f"AstrBot version: {VERSION}")
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
@cli.command()
|
|
29
|
+
@click.command()
|
|
215
30
|
@click.argument("command_name", required=False, type=str)
|
|
216
31
|
def help(command_name: str | None) -> None:
|
|
217
|
-
"""
|
|
32
|
+
"""显示命令的帮助信息
|
|
218
33
|
|
|
219
|
-
|
|
220
|
-
|
|
34
|
+
如果提供了 COMMAND_NAME,则显示该命令的详细帮助信息。
|
|
35
|
+
否则,显示通用帮助信息。
|
|
221
36
|
"""
|
|
222
37
|
ctx = click.get_current_context()
|
|
223
38
|
if command_name:
|
|
@@ -234,5 +49,11 @@ def help(command_name: str | None) -> None:
|
|
|
234
49
|
click.echo(cli.get_help(ctx))
|
|
235
50
|
|
|
236
51
|
|
|
52
|
+
cli.add_command(init)
|
|
53
|
+
cli.add_command(run)
|
|
54
|
+
cli.add_command(help)
|
|
55
|
+
cli.add_command(plug)
|
|
56
|
+
cli.add_command(conf)
|
|
57
|
+
|
|
237
58
|
if __name__ == "__main__":
|
|
238
59
|
cli()
|