refactor(prompt): 优化MoviePilot系统信息注入,统一日期与环境信息展示

This commit is contained in:
jxxghp
2026-03-28 12:28:14 +08:00
parent 8e0a9f94f6
commit c3b7a50642
2 changed files with 12 additions and 17 deletions

View File

@@ -59,5 +59,4 @@ Specific markdown rules:
<system_info>
{moviepilot_info}
- 今日日期: {current_date}
</system_info>

View File

@@ -1,5 +1,5 @@
"""提示词管理器"""
import socket
from pathlib import Path
from time import strftime
from typing import Dict
@@ -12,6 +12,7 @@ from app.schemas import (
MessageChannel,
ChannelCapabilityManager,
)
from app.utils.system import SystemUtils
class PromptManager:
@@ -90,49 +91,44 @@ class PromptManager:
base_prompt = base_prompt.format(
markdown_spec=markdown_spec,
verbose_spec=verbose_spec,
current_date=strftime("%Y-%m-%d"),
moviepilot_info=moviepilot_info,
)
return base_prompt
def _get_moviepilot_info(self) -> str:
@staticmethod
def _get_moviepilot_info() -> str:
"""
获取MoviePilot系统信息用于注入到系统提示词中
"""
import socket
# 获取主机名和IP地址
try:
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)
except Exception:
except Exception: # noqa
hostname = "localhost"
ip_address = "127.0.0.1"
# 配置文件和日志文件目录
config_path = str(settings.CONFIG_PATH)
log_path = str(settings.LOG_PATH)
# API地址构建
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令牌
api_token = settings.API_TOKEN or "未设置"
info_lines = [
f"- 当前日期: {strftime('%Y-%m-%d')}",
f"- 运行环境: {SystemUtils.platform} {'docker' if SystemUtils.is_docker() else ''}",
f"- 主机名: {hostname}",
f"- IP地址: {ip_address}",
f"- API地址: {api_url}",
f"- API端口: {api_port}",
f"- API路径: {api_path}",
f"- API令牌: {api_token}",
f"- 外网域名: {settings.APP_DOMAIN or '未设置'}",
f"- 配置文件目录: {config_path}",
f"- 日志文件目录: {log_path}",
]