| 1234567 |
- {
- “description”: “RunComfy 机器管理工具:用于按需启动和获取云端 ComfyUI 机器的访问地址”,
- “task_spec”: “## 目标\n创建一个 HTTP API 工具并注册到 Router,用于启动 RunComfy 云端机器。\n\n## 核心功能\n调用 RunComfy Server API 启动指定版本的云端机器,并轮询等待机器 Ready。这个工具是使用 ComfyUI 的基础设施,启动后需要记录 server_id 以便后续使用和关闭。\n\n## 环境变量\n- RUNCOMFY_USER_ID:RunComfy 用户 ID\n- API_TOKEN:RunComfy API Token\n\n## HTTP API 接口(必须实现)\n实现 `POST /launch` 接口:\n\n### 输入 JSON Schema\n```json\n{\n \”type\”: \”object\”,\n \”properties\”: {\n \”version_id\”: {\”type\”: \”string\”, \”description\”: \”RunComfy workflow version ID\”, \”default\”: \”90f77137-ba75-400d-870f-204c614ae8a3\”},\n \”server_type\”: {\”type\”: \”string\”, \”enum\”: [\”medium\”, \”large\”, \”extra-large\”, \”2x-large\”, \”2xl-turbo\”], \”description\”: \”机器规格\”, \”default\”: \”medium\”},\n \”duration\”: {\”type\”: \”integer\”, \”description\”: \”预估运行时长(秒)\”, \”default\”: 3600}\n }\n}\n```\n\n### 输出 JSON Schema\n```json\n{\n \”type\”: \”object\”,\n \”properties\”: {\n \”server_id\”: {\”type\”: \”string\”, \”description\”: \”机器唯一标识,用于后续操作\”},\n \”comfy_url\”: {\”type\”: \”string\”, \”description\”: \”机器访问地址\”},\n \”status\”: {\”type\”: \”string\”, \”description\”: \”Ready 或报错信息\”},\n \”usage_instruction\”: {\”type\”: \”string\”, \”description\”: \”返回给大模型的提示词,告知如何使用这台机器\”}\n }\n}\n```\n\n## 核心逻辑\n1. API: `POST https://beta-api.runcomfy.net/prod/api/users/{USER_ID}/servers`\n Body: `{\”workflow_version_id\”: version_id, \”server_type\”: server_type, \”estimated_duration\”: duration}`\n2. 轮询 API: `GET https://beta-api.runcomfy.net/prod/api/users/{USER_ID}/servers/{server_id}`\n3. Header 需带 `Authorization: Bearer {API_TOKEN}`\n4. 等待字段 `current_status` 变为 `Ready`,并提取 `main_service_url`\n5. 返回 usage_instruction 提示:\”请使用 runcomfy_run_only 工具,并传入此 server_id 以及你的 workflow_api.json 来生成图片。用完后请务必调用 runcomfy_stop_env 工具关闭机器。\”\n\n## 实现要求\n1. 使用 uv 创建项目,项目名:runcomfy_launch_env\n2. 使用 FastAPI 实现 HTTP 接口\n3. 从环境变量读取 RUNCOMFY_USER_ID 和 API_TOKEN\n4. 实现 POST /launch 接口,支持轮询等待(timeout 默认 300 秒)\n5. 编写测试脚本验证功能\n6. **必须调用 register_tool 注册到 Router**,tool_id 为 \”runcomfy_launch_env\””,
- “reference_files”: [
- “tests/run_comfy/run_workflow.py”
- ]
- }
|