fix(prompt): 通过延迟导入解决循环依赖问题

将 `global_prompt_manager` 的导入操作从模块顶部移动到具体使用它的方法内部。

此举旨在解决 `prompt_component_manager` 和 `prompt` 模块之间潜在的循环导入问题,确保在应用初始化时模块加载顺序的稳定性,避免可能因此引发的 `ImportError`。
This commit is contained in:
minecraft1024a
2025-11-12 13:24:13 +08:00
parent 5dbeebda6b
commit a6c2820dd9

View File

@@ -3,7 +3,6 @@ import copy
import re
from collections.abc import Awaitable, Callable
from src.chat.utils.prompt import global_prompt_manager
from src.chat.utils.prompt_params import PromptParameters
from src.common.logger import get_logger
from src.plugin_system.base.base_prompt import BasePrompt
@@ -258,6 +257,7 @@ class PromptComponentManager:
"""
try:
# 从全局提示词管理器获取最原始的模板内容
from src.chat.utils.prompt import global_prompt_manager
original_prompt = global_prompt_manager._prompts.get(target_prompt_name)
if not original_prompt:
logger.warning(f"无法预览 '{target_prompt_name}',因为找不到这个核心 Prompt。")
@@ -274,10 +274,12 @@ class PromptComponentManager:
def get_core_prompts(self) -> list[str]:
"""获取所有已注册的核心提示词模板名称列表(即所有可注入的目标)。"""
from src.chat.utils.prompt import global_prompt_manager
return list(global_prompt_manager._prompts.keys())
def get_core_prompt_contents(self) -> dict[str, str]:
"""获取所有核心提示词模板的原始内容。"""
from src.chat.utils.prompt import global_prompt_manager
return {name: prompt.template for name, prompt in global_prompt_manager._prompts.items()}
def get_registered_prompt_component_info(self) -> list[PromptInfo]: