feat(agent): 在系统提示词中注入MoviePilot配置信息

This commit is contained in:
jxxghp
2026-03-28 11:03:02 +08:00
parent 6806900436
commit 8e0a9f94f6
2 changed files with 52 additions and 2 deletions

View File

@@ -57,4 +57,7 @@ Specific markdown rules:
{markdown_spec}
</markdown_spec>
Today's date: {current_date}
<system_info>
{moviepilot_info}
- 今日日期: {current_date}
</system_info>

View File

@@ -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:
"""