P0 严重问题修复: - 修复 form_slice/stats_slice 主客身份反转(历史比赛视角错误) - 修复 understat.py httpx 未导入导致的 NameError - 修复 LLM 解析失败时静默产生假成功预测(0-0 平局+置信度0.5) 预测路径修复: - multi-agent 路径增加 backtest cutoff 透传,回测防泄漏生效 - H2H 切片汇总统计改为从当前主队视角计数 - 预测唯一约束增加 mode+run_type 维度,防止回测覆盖实盘预测 伤停管线修复: - IntegrityError 后不再整批回滚丢数据(改用逐条 flush) - return_date 正确解析并写入 - retrieved_at 比较统一用 date() 避免当天数据不可见 - 唯一索引改为 partial unique index(排除 NULL 重复) - HTTP 缓存 TTL 从 7 天改为 6 小时 安全与连接管理: - /api/v1/predict 增加内存滑动窗口限流(10次/分钟/IP) - 预测路由改用短 session 模式,LLM 调用期间不持有 DB 连接 Docker 部署修复: - 修复 .dockerignore 排除 *.md 导致 COPY README.md 失败 - 容器内 DATABASE_URL 使用 postgres 服务名(非 localhost) - 启动时自动执行 alembic upgrade head - 前端改用多阶段构建(Dockerfile.frontend) 新增测试(5个文件,24+用例): - test_p0_home_away.py: 主客身份反转回归测试 - test_p0_parse_failure.py: LLM 解析失败回归测试 - test_multi_agent_cutoff.py: multi-agent cutoff 透传测试 - test_h2h_perspective.py: H2H 视角测试 - test_injuries_pipeline.py: 伤停管线 5 项修复测试 - test_predict_protection.py: 限流+短 session 测试 - test_prediction_unique_constraint.py: 唯一约束测试 迁移: - 0012_injuries_partial_unique_and_return_date.py - 0013_predictions_unique_constraint_mode_run_type.py
Profeto 文档索引
| 文档 | 内容 |
|---|---|
| 01-架构总览 | 系统架构、数据流、技术选型、与旧项目对比 |
| 02-快速开始 | 安装、启动、首次跑通全流程 |
| 03-API 参考 | 全部 12 个端点、请求/响应示例、curl 全流程 |
| 04-多 Agent 预测 | 5 专家 + 终裁架构、执行语义、输出契约、prompt 版本化、如何新增 agent |
| 05-数据层与数据库 | 三数据源、清洗契约、6 张表 schema、入库语义、采集建议 |
| 06-部署 | Docker Compose、本地部署、环境变量、LLM 提供商配置、迁移、备份 |
| 07-开发指南 | 项目结构、测试、常见开发任务(prompt/agent/数据源/联赛)、前端开发 |
项目简介
Profeto 是一个足球 LLM 预测服务:FastAPI 提供干净的数据层(赛果/xG/积分榜), 5 个领域专家 agent(近期状态/攻防数据/主客因素/阵容完整性/历史交锋)并行分析, 终裁 agent 汇总输出结构化预测,赛后回填实际结果持续评估准确率。
与旧项目 MatchPro(自研 7 套统计模型 + 6 容器)相比:~45 个文件、2 容器、预测完全交给 LLM。
推荐阅读顺序
- 新手:01 → 02 → 03(跑通第一个预测)
- 调优 prompt:04(理解 agent 契约)→ 03(eval summary 看效果)
- 加数据源/联赛:05 → 07
- 上线:06