回归测试(P0 三项,不依赖 DB 的静态断言):
- tests/test_regressions.py:
· context_builder 三个查询函数 + backtest 必须 eager-load 关系
· Match.{stats,home_team,away_team,league} 必须 lazy="selectin"
· bzzoiro normalized_matches 必须携带并解包 (nm, raw) 配对
这些是「集成方式」缺陷,原先的单元测试(全 mock slice_fn/provider)
照不出来,故此专项静态锁定。
文档同步(修正与实际不符的表述):
- docs/01-architecture.md: app.py 标注改为「lifespan 仅验证连接,不建表」;
补 deps.py / repositories.py / unit_of_work.py / validation.py /
backtest.py / sources.py / http_client.py / retry.py;迁移范围改 0001~0006
- docs/07-development.md: 目录树修正 leagues.py→matches.py,补齐
backtest.py / deps.py 及 0003~0006 迁移文件
附带: src/core/retry.py 加 NOTE 说明其当前无调用点(P3),
避免「看似有重试实则未生效」的误判。
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