#!/usr/bin/env python3 # -*- coding: utf-8 -*- """作业 5 · 步骤 1:在 207 启动健康检查 API,并实打 GPU 机。""" from __future__ import annotations import sys from pathlib import Path import _bootstrap # noqa: F401 import _config as C from dify_api import Dify LOCAL_SH = ( Path(__file__).resolve().parents[2] / "scripts_bash_cursor" / "作业5_vLLM健康检查Agent" / "作业5_启动_vllm_health.sh" ) def main() -> int: d = Dify(C.DIFY_EMAIL, C.DIFY_PASSWORD) try: d.login() d.sftp.put(str(LOCAL_SH), "/tmp/作业5_启动_vllm_health.sh") out, err = d.sh("bash /tmp/作业5_启动_vllm_health.sh") print(out or err) checks = [ ("%s/health" % C.VLLM_HEALTH_BASE, "ok"), ("%s/vllm/status" % C.VLLM_HEALTH_BASE, C.GPU_VLLM_CONTAINER), ("%s/gpu/info" % C.VLLM_HEALTH_BASE, "H20"), ("%s/vllm/queue" % C.VLLM_HEALTH_BASE, "waiting"), ] for url, needle in checks: out, err = d.sh("curl -sf -m 25 '%s'" % url) text = out or err or "" print(url, text[:500]) if needle not in text: print("[FAIL] 未包含 %s" % needle) return 1 print("[OK] 健康检查 API 已在 %s 运行,且已打到 GPU 机" % C.VLLM_HEALTH_BASE) return 0 finally: d.close() if __name__ == "__main__": sys.exit(main())