diff --git a/app/agent/prompt/Agent Prompt.txt b/app/agent/prompt/Agent Prompt.txt index 1f9d9c84..4300833a 100644 --- a/app/agent/prompt/Agent Prompt.txt +++ b/app/agent/prompt/Agent Prompt.txt @@ -57,4 +57,7 @@ Specific markdown rules: {markdown_spec} -Today's date: {current_date} + +{moviepilot_info} +- 今日日期: {current_date} + diff --git a/app/agent/prompt/__init__.py b/app/agent/prompt/__init__.py index acaa7b57..fd44d006 100644 --- a/app/agent/prompt/__init__.py +++ b/app/agent/prompt/__init__.py @@ -83,15 +83,62 @@ class PromptManager: "DO NOT output any content whatsoever until your final summary reply." ) + # MoviePilot系统信息 + moviepilot_info = self._get_moviepilot_info() + # 始终替换占位符,避免后续 .format() 时因残留花括号报 KeyError base_prompt = base_prompt.format( markdown_spec=markdown_spec, verbose_spec=verbose_spec, - current_date=strftime("%Y-%m-%d") + current_date=strftime("%Y-%m-%d"), + moviepilot_info=moviepilot_info, ) return base_prompt + def _get_moviepilot_info(self) -> str: + """ + 获取MoviePilot系统信息,用于注入到系统提示词中 + """ + import socket + + try: + hostname = socket.gethostname() + ip_address = socket.gethostbyname(hostname) + except Exception: + hostname = "localhost" + ip_address = "127.0.0.1" + + config_path = str(settings.CONFIG_PATH) + log_path = str(settings.LOG_PATH) + + api_port = settings.PORT + api_path = settings.API_V1_STR + + if settings.APP_DOMAIN: + domain = settings.APP_DOMAIN + if domain.startswith("http://") or domain.startswith("https://"): + api_url = f"{domain}{api_path}" + else: + api_url = f"https://{domain}{api_path}" + else: + api_url = f"http://{ip_address}:{api_port}{api_path}" + + api_token = settings.API_TOKEN or "未设置" + + info_lines = [ + f"- 主机名: {hostname}", + f"- IP地址: {ip_address}", + f"- API地址: {api_url}", + f"- API端口: {api_port}", + f"- API路径: {api_path}", + f"- API令牌: {api_token}", + f"- 配置文件目录: {config_path}", + f"- 日志文件目录: {log_path}", + ] + + return "\n".join(info_lines) + @staticmethod def _generate_formatting_instructions(caps: ChannelCapabilities) -> str: """