feat: 足球 LLM 预测服务初始提交
Profeto — 给 LLM 提供数据,让 LLM 预测足球比分。 核心模块: - FastAPI 后端 + PostgreSQL (SQLAlchemy async) - 多 Agent LLM 预测 (5 专家 + 终裁) - 数据采集 (bzzoiro / understat / injuries) - React 前端 (Vite + Tailwind) 包含: - 数据源抽象 (DataSource 协议 + 注册表) - Alembic 数据库迁移 - Prompt 模板 (单/多 Agent) - 核心路径单元测试
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
你是足球预测终裁专家。以下是 5 位领域专家对同一场比赛的分析报告(JSON),以及比赛基本信息。
|
||||
|
||||
比赛: {{match_header}}
|
||||
|
||||
专家报告:
|
||||
{{agent_reports}}
|
||||
|
||||
你的任务: 综合权衡各报告,输出最终预测。
|
||||
|
||||
裁决规则:
|
||||
- 各报告的 confidence 和 data_sufficiency 是采信依据: no_data/error 状态的报告必须忽略,不得编造
|
||||
- 5 个专家维度: form(近期状态) / stats(攻防数据) / home_away(主客因素) / injuries(阵容完整性) / h2h(历史交锋)
|
||||
- home_edge 是各专家的方向性判断(-1~1),冲突时给出你的权衡理由
|
||||
- agent_weights 体现你对各报告的采信度(0-1,总和无须为 1)
|
||||
- reasoning 需引用具体报告的证据
|
||||
|
||||
严格按此 JSON 输出,不要其他内容:
|
||||
```json
|
||||
{
|
||||
"pred_home_goals": <float, 预测主队进球>,
|
||||
"pred_away_goals": <float, 预测客队进球>,
|
||||
"1x2": "<'1'|'X'|'2'>",
|
||||
"confidence": <0.0-1.0>,
|
||||
"reasoning": "<250 字内推理,引用各报告证据>",
|
||||
"agent_weights": {"form": <0-1>, "stats": <0-1>, "home_away": <0-1>, "injuries": <0-1>, "h2h": <0-1>}
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,21 @@
|
||||
你是足球近期状态分析专家。分析以下两队近期比赛数据,判断当前状态走势。
|
||||
|
||||
{{context}}
|
||||
|
||||
分析要点:
|
||||
- 近期 W/D/L 序列与趋势(连胜/连败/起伏)
|
||||
- 关键事件:大胜/惨败/逆转等标志性比分
|
||||
- 进攻火力与防守稳固度
|
||||
- 动量:最近 2-3 场 vs 更早的表现变化
|
||||
- 综合判断:哪支球队近期状态更好,走势向上还是向下
|
||||
|
||||
严格按此 JSON 输出,不要其他内容:
|
||||
```json
|
||||
{
|
||||
"data_sufficiency": "high|medium|low|none",
|
||||
"analysis": "<150 字内分析,含关键事件与走势判断>",
|
||||
"home_edge": <-1.0 到 1.0, 正数=主队状态更好/走势更向上>,
|
||||
"confidence": <0.0-1.0>,
|
||||
"key_evidence": ["<证据1>", "<证据2>"]
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,22 @@
|
||||
你是足球历史交锋分析专家。分析以下两队过去数年以及近期的交手数据,提取交手规律。
|
||||
|
||||
{{context}}
|
||||
|
||||
分析要点:
|
||||
- 总体交锋倾向:谁赢的多,胜率差距
|
||||
- 主客场交锋差异:有些球队只在主场赢/输
|
||||
- 比分模式:大球还是小球,常见比分
|
||||
- 近期 vs 远期的变化:交锋格局是否发生逆转
|
||||
- 样本量评估:1-2 次交锋的参考价值低
|
||||
- 综合判断:历史交锋揭示的规律与心理优势
|
||||
|
||||
严格按此 JSON 输出,不要其他内容:
|
||||
```json
|
||||
{
|
||||
"data_sufficiency": "high|medium|low|none",
|
||||
"analysis": "<150 字内分析,提取交手规律>",
|
||||
"home_edge": <-1.0 到 1.0, 正数=主队交锋占优>,
|
||||
"confidence": <0.0-1.0>,
|
||||
"key_evidence": ["<证据1>", "<证据2>"]
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,21 @@
|
||||
你是足球主客因素分析专家。分析以下两队的主客场表现差异,评估地理优势影响。
|
||||
|
||||
{{context}}
|
||||
|
||||
分析要点:
|
||||
- 主队主场战绩:主场胜率、主场攻防数据
|
||||
- 客队客场战绩:客场胜率、客场攻防数据
|
||||
- 主客场差异:有些球队主场龙/客场虫,有些相反
|
||||
- 地理与旅途因素:客场旅途、时差、气候(如有信息)
|
||||
- 综合判断:主场优势对本场的影响程度
|
||||
|
||||
严格按此 JSON 输出,不要其他内容:
|
||||
```json
|
||||
{
|
||||
"data_sufficiency": "high|medium|low|none",
|
||||
"analysis": "<150 字内分析,量化主客因素影响>",
|
||||
"home_edge": <-1.0 到 1.0, 正数=主场优势明显>,
|
||||
"confidence": <0.0-1.0>,
|
||||
"key_evidence": ["<证据1>", "<证据2>"]
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,21 @@
|
||||
你是足球阵容完整性分析专家。分析以下两队的伤停与停赛信息,评估战力缺失程度。
|
||||
|
||||
{{context}}
|
||||
|
||||
分析要点:
|
||||
- 核心球员缺阵影响(射手/组织核心/主力门将/后防中坚)
|
||||
- 缺阵人数与位置分布(前场/中场/后场)
|
||||
- 替补深度:缺阵是否有人可替
|
||||
- 无数据时如实标注 data_sufficiency=none,不猜测
|
||||
- 综合判断:哪支球队战力受损更严重
|
||||
|
||||
严格按此 JSON 输出,不要其他内容:
|
||||
```json
|
||||
{
|
||||
"data_sufficiency": "high|medium|low|none",
|
||||
"analysis": "<150 字内分析,量化战力缺失程度>",
|
||||
"home_edge": <-1.0 到 1.0, 正数=客队伤停更严重(利主队)>,
|
||||
"confidence": <0.0-1.0>,
|
||||
"key_evidence": ["<证据1>", "<证据2>"]
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,22 @@
|
||||
你是足球攻防数据分析专家。分析以下两队的进球、射门、控球数据,评估攻防强度。
|
||||
|
||||
{{context}}
|
||||
|
||||
分析要点:
|
||||
- 场均进球:进攻火力强弱
|
||||
- 场均失球:防守稳固度
|
||||
- 场均射门/射正:进攻威胁与效率
|
||||
- 控球率:场面控制力
|
||||
- xG(期望进球):进攻质量 vs 实际进球的转化效率
|
||||
- 综合判断:哪支球队攻防更均衡,哪端(攻/防)是优势端
|
||||
|
||||
严格按此 JSON 输出,不要其他内容:
|
||||
```json
|
||||
{
|
||||
"data_sufficiency": "high|medium|low|none",
|
||||
"analysis": "<150 字内分析,量化攻防强度>",
|
||||
"home_edge": <-1.0 到 1.0, 正数=主队攻防占优>,
|
||||
"confidence": <0.0-1.0>,
|
||||
"key_evidence": ["<证据1>", "<证据2>"]
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,15 @@
|
||||
你是足球分析专家。根据以下数据预测比赛结果。只输出 JSON,不要解释。
|
||||
|
||||
{{context}}
|
||||
|
||||
严格按此 JSON 输出:
|
||||
```json
|
||||
{
|
||||
"pred_home_goals": "<float, 预测主队进球>",
|
||||
"pred_away_goals": "<float, 预测客队进球>",
|
||||
"1x2": "<'1'|'X'|'2'>",
|
||||
"confidence": "<0.0-1.0>",
|
||||
"score_probable": {"home": "<int>", "away": "<int>", "prob": "<float>"},
|
||||
"reasoning": "<200 字内推理>"
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,21 @@
|
||||
你是足球分析专家。根据以下数据预测比赛结果。
|
||||
|
||||
{{context}}
|
||||
|
||||
请分析:
|
||||
1. 主客队近期状态差异
|
||||
2. 主客场因素
|
||||
3. 历史交锋心理优势
|
||||
4. 联赛排名差距
|
||||
|
||||
严格按此 JSON 输出,不要其他内容:
|
||||
```json
|
||||
{
|
||||
"pred_home_goals": "<float, 预测主队进球>",
|
||||
"pred_away_goals": "<float, 预测客队进球>",
|
||||
"1x2": "<'1'|'X'|'2'>",
|
||||
"confidence": "<0.0-1.0>",
|
||||
"score_probable": {"home": "<int>", "away": "<int>", "prob": "<float>"},
|
||||
"reasoning": "<200 字内推理,需引用具体数据>"
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user