sujal-sk-01/rcaFinall

GitHub: sujal-sk-01/rcaFinall

一个OpenEnv兼容的FastAPI环境,用于模拟微服务故障场景并评估AI Agent的根因分析能力。

Stars: 0 | Forks: 0

# RCAAgent-Env 用于模拟微服务**根因分析 (RCA)** 的 OpenEnv 兼容 FastAPI 环境。Agent 调用 `reset` / `step` / `state`,然后调用 `POST /grader`。**Gemini** 基线通过 **`GET /baseline`** 暴露。 ## 布局 ``` models.py # Pydantic: Action, Observation, EnvironmentState, RCAReport, … client.py # httpx client for local/Space API server/ app.py # FastAPI app (uvicorn server.app:app) environment.py # RCAEnvironment: reset(), step(), state() grader.py # Deterministic + Gemini rubric llm.py # One-time Gemini configure + shared GenerativeModel handles baseline/agent.py # Baseline loop (env.step + Gemini) scenarios/*.json openenv.yaml Dockerfile ``` ## 密钥 使用 **`GOOGLE_API_KEY`**(Google AI Studio / Gemini API)。请勿提交密钥。 ``` cp .env.example .env # 编辑 .env → GOOGLE_API_KEY=... ``` 通过 `python-dotenv` 从**项目根目录**加载到 `server/app.py` 中。 ## API (OpenEnv) | Method | Path | Purpose | |--------|------|---------| | GET | `/tasks` | 任务列表 + 用于 `Action` 的 **JSON Schema** | | POST | `/reset/{difficulty}` | 新会话(`easy` / `medium` / `hard`)| | POST | `/step/{difficulty}` | Body:`Action` JSON | | GET | `/state/{difficulty}` | 当前 `EnvironmentState` | | POST | `/grader` | Body:`{ difficulty, report, queries_used? }` → 评分 + `[0,1]` 范围内的 **`final_score`** | | GET | `/baseline?difficulty=easy` | 运行基线 Agent(Gemini + `step()`);**异步** | | POST | `/baseline` | 与 GET 相同,JSON body 为 `{ "difficulty": "easy" }` | ## 本地运行 ``` cd rcaagent-env pip install -r requirements.txt uvicorn server.app:app --host 0.0.0.0 --port 8000 ``` 打开 `http://127.0.0.1:8000/docs`。 Windows:如果遇到 socket 错误,请尝试 `py -3.11 run_dev.py`(Selector 循环 + 可选 `fd` 绑定)或使用其他端口。 ## Hugging Face Spaces 1. 创建一个指向此仓库的 **Docker** Space。 2. **Settings → Repository secrets**:添加 **`GOOGLE_API_KEY`**(值为您的 Gemini API 密钥)。Spaces 会将密钥作为环境变量注入。 3. **Dockerfile** 暴露 **8000** 端口并运行: `uvicorn server.app:app --host 0.0.0.0 --port 8000` 4. 在 Space 的 **Settings → Dev mode** 中,如果 UI 要求,请将 **container port** 设置为 **8000**。 5. 打开公开的 Space URL;使用 **`/docs`** 访问 Swagger。 仅需 CPU;无需 GPU。 ## OpenEnv 验证 ``` openenv validate # (从 repo root,按照 hackathon 指示安装 openenv CLI) ``` 请确保在调用 **`/step`** 或 **`/state`** 之前已调用 **`POST /reset/{difficulty}`**。 ## 客户端冒烟测试 ``` from client import RCAAgentEnvClient c = RCAAgentEnvClient("http://127.0.0.1:8000") print(c.tasks()) print(c.reset("easy")) ```
标签:AIOps, API集成, AV绕过, DLL 劫持, Docker, FastAPI, Gemini, Log分析, OpenEnv, Python, RCA, SRE, 人工智能, 偏差过滤, 分布式系统, 可观测性, 响应大小分析, 大语言模型, 安全防御评估, 指标监控, 故障排查, 无后门, 根因分析, 模拟环境, 用户模式Hook绕过, 站点可靠性工程, 自动化运维, 训练环境, 评分系统, 请求拦截, 运行时操纵, 逆向工具, 链路追踪