Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/binbinyu99-crypto_wuxing-flywheel-open.json

1 line
4.2 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"repo": "binbinyu99-crypto/wuxing-flywheel-open", "files": {".env.example": {"09915bee21ec1aba0f33caacdcf22799723b64fe": {"t": 1785604351.4341292, "n": 601, "h": "729b87f6425eb6f3", "c": "# 五行飞轮 LLM 配置\n# 至少配置一个提供商\n\n# DeepSeek (推荐)\nDEEPSEEK_API_KEY=sk-your-deepseek-key\nDEEPSEEK_BASE_URL=https://api.deepseek.com/v1\n\n# OpenAI / GPT\nOPENAI_API_KEY=sk-your-openai-key\nOPENAI_BASE_URL=https://api.openai.com/v1\n\n# Anthropic / Claude\nANTHROPIC_API_KEY=sk-your-anthropic-key\n\n# Kimi / Moonshot\nKIMI_API_KEY=sk-your-kimi-key\nKIMI_BASE_URL=https://api.moonshot.cn/v1\n\n# PostgreSQL (可选,默认使用SQLite)\nPG_HOST=localhost\nPG_PORT=5432\nPG_DATABASE=skycetus\nPG_USER=skycetus\nPG_PASSWORD=your-password\n\n# 飞轮API\nFLYWHEEL_PORT=8100\nFLYWHEEL_TOKEN=your-api-token\n\n# 飞书发布 (可选)\nFEISHU_APP_ID=\nFEISHU_APP_SECRET=\n"}}, "flywheel_api.py": {"28ffd4c842edf97ef287eb244271b3248c61e56a": {"t": 1785604352.9518452, "n": 2890, "h": "b5b7a8618bf1c2f2", "c": "\"\"\"\n五行飞轮 API 服务\nFastAPI 入口\n\n启动: uvicorn flywheel_api:app --host 0.0.0.0 --port 8100\n\"\"\"\n\nimport os\nimport json\nimport asyncio\nfrom datetime import datetime\nfrom typing import Optional\n\nfrom fastapi import FastAPI, HTTPException, Header\nfrom fastapi.middleware.cors import CORSMiddleware\nfrom pydantic import BaseModel\n\nfrom dotenv import load_dotenv\nload_dotenv()\n\nfrom engine.engine_core import run_flywheel\n\napp = FastAPI(\n title=\"SkyCetus Wuxing Flywheel\",\n description=\"🐋 天鲸之城·五行飞轮 — 16-Agent 认知对抗分析系统\",\n version=\"1.0.0-open\",\n)\n\napp.add_middleware(\n CORSMiddleware,\n allow_origins=[\"*\"],\n allow_methods=[\"*\"],\n allow_headers=[\"*\"],\n)\n\n# 存储运行结果(生产环境建议用PostgreSQL)\n_results = {}\n_progress = {}\n\n\nclass AnalyzeRequest(BaseModel):\n topic: str\n depth: str = \"deep\" # \"quick\" (1 round) or \"deep\" (3 rounds)\n max_rounds: Optional[int] = None\n\n\nclass AnalyzeResponse(BaseModel):\n run_id: str\n status: str\n message: str\n\n\n@app.get(\"/health\")\nasync def health():\n return {\n \"status\": \"healthy\",\n \"version\": \"1.0.0-open\",\n \"engine\": \"wuxing-flywheel\",\n \"agents\": 16,\n \"timestamp\": datetime.now().isoformat(),\n }\n\n\n@app.post(\"/analyze\", response_model=AnalyzeResponse)\nasync def analyze(req: AnalyzeRequest):\n \"\"\"提交分析任务\"\"\"\n max_rounds = req.max_rounds or (1 if req.depth == \"quick\" else 3)\n\n # 后台运行飞轮\n async def _run():\n def on_progress(msg):\n _progress[result[\"run_id\"]] = msg\n\n try:\n result_data = await run_flywheel(\n topic=req.topic,\n max_rounds=max_rounds,\n on_progress=on_progress,\n )\n _results[result_data[\"run_id\"]] = result_data\n except Exception as e:\n _results[result[\"run_id\"]] = {\"status\": \"error\", \"error\": str(e)}\n\n # 创建一个占位\n import uuid\n run_id = str(uuid.uuid4())[:12]\n result = {\"run_id\": run_id}\n _progress[run_id] = \"queued\"\n\n asyncio.create_task(_run())\n\n return AnalyzeResponse(\n run_id=run_id,\n status=\"accepted\",\n message=f\"Analysis started: {req.topic} ({req.depth} mode, max {max_rounds} rounds)\",\n )\n\n\n@app.get(\"/result/{run_id}\")\nasync def get_result(run_id: str):\n \"\"\"获取分析结果\"\"\"\n if run_id in _results:\n return _results[run_id]\n elif run_id in _progress:\n return {\"run_id\": run_id, \"status\": \"running\", \"progress\": _progress[run_id]}\n else:\n raise HTTPException(status_code=404, detail=\"Run not found\")\n\n\n@app.get(\"/progress/{run_id}\")\nasync def get_progress(run_id: str):\n \"\"\"获取运行进度\"\"\"\n return {\n \"run_id\": run_id,\n \"progress\": _progress.get(run_id, \"unknown\"),\n \"completed\": run_id in _results,\n }\n\n\nif __name__ == \"__main__\":\n import uvicorn\n port = int(os.getenv(\"FLYWHEEL_PORT\", \"8100\"))\n uvicorn.run(app, host=\"0.0.0.0\", port=port)\n"}}}}