#!/usr/bin/env python3 """ System prompt loader utilities """ import os def load_system_prompt(project_dir: str, language: str = None) -> str: """ 优先使用项目目录的system_prompt,没有才使用默认的system_prompt_default.md Args: project_dir: 项目目录路径 language: 语言代码,如 'zh', 'en', 'jp' 等(此参数将被忽略) Returns: str: 加载到的系统提示词内容,如果都未找到则返回空字符串 """ system_prompt = None # 1. 优先读取项目目录中的system_prompt system_prompt_file = os.path.join(project_dir, "system_prompt.md") if os.path.exists(system_prompt_file): try: with open(system_prompt_file, 'r', encoding='utf-8') as f: system_prompt = f.read() print(f"Using project-specific system prompt") except Exception as e: print(f"Failed to load project system prompt: {str(e)}") system_prompt = None # 2. 如果项目目录没有,使用默认提示词 if not system_prompt: try: default_prompt_file = os.path.join("prompt", "system_prompt_default.md") with open(default_prompt_file, 'r', encoding='utf-8') as f: system_prompt = f.read() print(f"Using default system prompt from prompt folder") except Exception as e: print(f"Failed to load default system prompt: {str(e)}") system_prompt = None return system_prompt or "" def get_available_prompt_languages() -> list: """ 获取可用的提示词语言列表 Returns: list: 可用语言代码列表,如 ['zh', 'en', 'jp'] """ prompt_dir = "prompt" available_languages = [] if os.path.exists(prompt_dir): for filename in os.listdir(prompt_dir): if filename.startswith("system_prompt_") and filename.endswith(".md"): # 提取语言代码,如从 "system_prompt_zh.md" 中提取 "zh" language = filename[len("system_prompt_"):-len(".md")] available_languages.append(language) return available_languages def is_language_available(language: str) -> bool: """ 检查指定语言的提示词是否可用 Args: language: 语言代码 Returns: bool: 如果可用返回True,否则返回False """ prompt_file = os.path.join("prompt", f"system_prompt_{language}.md") return os.path.exists(prompt_file)