emmcygn/kyber-submission

GitHub: emmcygn/kyber-submission

机场地面运营冲突检测平台,集成六种内置冲突检测、状态机协调机制、可扩展规则引擎以及LLM驱动的自然语言规则编写代理。

Stars: 0 | Forks: 0

# Kyber Operations Platform — Track A: 冲突检测 机场地面运营冲突检测系统,具备协调生命周期、自定义规则引擎以及 LLM 驱动的规则编写代理。 ## 快速开始 ### 前置条件 - Python 3.11+ - Node.js 20+ - Anthropic API key(用于 agent 功能) ### 后端 ``` cd backend pip install -r requirements.txt uvicorn app.main:app --reload --port 8000 ``` ### 前端 ``` cd frontend npm install npm run dev ``` 在浏览器中打开 http://localhost:5173。 ### 环境变量 在 `takehome_docs/` 中创建一个 `.env` 文件(或设置环境变量): ``` ANTHROPIC_API_KEY=sk-ant-... MODEL_ID=claude-haiku-4-5-20251001 ``` Agent 功能需要有效的 API key。其他所有功能无需它即可正常工作。 ### 运行测试 ``` # 后端测试 (259) cd backend python -m pytest tests/ -v # 对抗性基于属性的测试 (255) cd .. python -m pytest extra_tests/ -q ``` 两个测试套件共 514 个测试。 ## 架构 ``` Frontend (React + Vite + TS + Tailwind) ├── ConflictTable → POST /api/detect ├── ReconciliationView → POST /api/reconcile └── AgentChat → POST /api/rules/generate Backend (FastAPI) ├── detector.py → 6 built-in conflict types ├── reconciler.py → State machine lifecycle ├── rules.py → Custom rule evaluator (9 operators, 3 scopes) ├── agent.py → Claude Haiku 4.5 tool-use agent └── main.py → REST API endpoints Scaffold (provided) ├── types.py → SolverTask, SolverResource ├── encoding.py → Time slots, shifts, breaks └── track_a_interfaces.py → DetectedConflict, StoredConflict, etc. ``` ## 示例成功路径 (CLI) 从命令行运行一个完整的 detect → reconcile(检测 → 协调)周期: ``` cd takehome_docs python candidate/adapter_stub.py ``` 预期输出: ``` Track A detect() returned 39 conflicts - overdue: 9 - schedule_overlap: 2 - shift_violation: 5 - understaffing: 23 Reconciliation: - new: 35 - persisted: 3 - resolved: 1 - auto_resolved: 0 - unchanged: 1 ``` 需验证的关键点: - `understaffing_task-009` (acknowledged/已确认) → `unchanged` (保持不变,未被撤销) - `shift_violation_staff-005_task-012` → `resolved` (正确的时段计算显示无违规) - 未为 `op-012`(已完成的操作)发出冲突 ## 成功路径演练 (Frontend) 1. 打开应用 → 查看数据集摘要(16 个 ops,35 个 tasks,14 名 staff) 2. 点击 **"Run Detection"** → 查看 4 种类型的 39 个冲突 3. 切换到 **"Reconciliation"** 标签页 → 点击 **"Run Reconciliation"** → 查看被分类到 5 个桶中的冲突 4. 切换到 **"Ground Control"** 标签页 → 输入 "Alert when tasks have less than 50% staffing" → 查看生成的规则 + 预览 5. 点击 **"Apply Rule"** → 规则已存储 6. 切回 **"Detection"** 标签页 → 点击 **"Run Detection"** → 查看额外的自定义规则匹配 ## API 端点 | Method | Path | Description | |--------|------|-------------| | GET | `/api/dataset/summary` | 数据集元数据和计数 | | POST | `/api/detect` | 运行冲突检测 | | POST | `/api/reconcile` | 与现有冲突进行协调 | | GET | `/api/rules` | 列出活动的自定义规则 | | POST | `/api/rules` | 存储已验证的规则 | | POST | `/api/rules/generate` | LLM agent:自然语言 → 规则 | ## 冲突类型 | Type | Description | |------|-------------| | `understaffing` | 任务需要 N 名人员但分配的人数不足 | | `schedule_overlap` | 人员被分配了重叠的任务 | | `overdue` | 任务时间窗口已过 | | `shift_violation` | 任务不在人员可用时间(班次 + 休息)内 | | `dependency_blocked` | 任务依赖于未完成/未激活/不可行的依赖项 | | `task_type_violation` | 人员被分配到其 `allowedTaskTypes` 之外的任务类型 | ## 测试覆盖 259 个测试,涵盖: - 每种冲突检测器类型及其边缘情况 - 已完成操作过滤器(op-012 无冲突) - 跨午夜的 UTC 日期边界任务(task-030,task-031) - 可用性覆盖(2026-03-18 上的 staff-009 AM+PM) - 不可用人员排除(staff-014) - allowedTaskTypes 限制(staff-004,staff-013) - 任务类型违规检测(兼容 + 不兼容分配) - 正向和负向 dependency_blocked 案例 - 班次违规解决(staff-005/task-012) - 协调状态转换 - 所有 9 个规则运算符 - 简单、复合和资源范围的 custom rules - Agent 验证(_validate_rule:scope、field、operator、severity、secondary conditions) - Agent 规则生成(mocked:有效、仅文本、重试、重试耗尽、缺少 key) - 完整工作流集成 - 10 次运行确定性验证 - 通过 TestClient 进行的 API 集成
标签:Anthropic API, API哈希动态解析, AV绕过, Claude, CVE检测, FastAPI, pytest, Python, React, REST API, Syscalls, Tailwind CSS, TCP/UDP协议, TypeScript, Vite, 云计算, 冲突检测系统, 前后端分离, 单元测试, 大语言模型应用, 安全插件, 属性测试, 无后门, 机场地面运营, 状态机, 网络调试, 自动化, 航班保障, 规则引擎, 规则生成, 调度系统, 资源分配, 运营安全, 逆向工具