#!/usr/bin/env python3 # -*- coding: utf-8 -*- """作业 1 · 步骤 1:把 FastAPI 模拟服务部署到 207 并启动。""" from __future__ import annotations import sys from pathlib import Path import _bootstrap # noqa: F401 import _config as C from dify_api import Dify REMOTE_DIR = "/opt/server_status_api" LOCAL_API = Path(__file__).resolve().parent / "作业1_server_status_api.py" LOCAL_SH = Path(__file__).resolve().parents[2] / "scripts_bash_cursor" / "作业1_带工具调用的Agent_服务器状态" / "作业1_启动_server_status.sh" def main() -> int: d = Dify(C.DIFY_EMAIL, C.DIFY_PASSWORD) try: d.login() d.sh("mkdir -p %s" % REMOTE_DIR) d.sftp.put(str(LOCAL_API), REMOTE_DIR + "/作业1_server_status_api.py") d.sftp.put(str(LOCAL_SH), REMOTE_DIR + "/start.sh") d.sh("chmod +x %s/start.sh" % REMOTE_DIR) # 若旧进程占端口则先停 d.sh( "if [[ -f /tmp/server_status_api.pid ]]; then " "kill $(cat /tmp/server_status_api.pid) 2>/dev/null || true; fi" ) out, err = d.sh("bash %s/start.sh" % REMOTE_DIR) print(out or err) r = d.sh( "curl -s 'http://127.0.0.1:%d/server/status?server_name=gpu-server-01'" % C.SERVER_STATUS_PORT ) print("probe:", r[0].strip()) return 0 if "gpu-server-01" in (r[0] or "") else 1 finally: d.close() if __name__ == "__main__": sys.exit(main())