first (part 2: other directories)
Deploy Iddaai Backend / build-and-deploy (push) Failing after 18s

This commit is contained in:
2026-04-16 15:11:25 +03:00
parent 7814e0bc6b
commit 2f0b85a0c7
203 changed files with 59989 additions and 0 deletions
+163
View File
@@ -0,0 +1,163 @@
# V20+ API Response Schema
Bu doküman `POST /v20plus/analyze/{match_id}` endpointinin döndürdüğü JSON yapısını açıklar.
## 1) Root Schema
| Key | Type | Açıklama |
|---|---|---|
| `model_version` | `string` | Model/pipeline sürümü. |
| `match_info` | `object` | Maç kimlik ve temel bilgileri. |
| `data_quality` | `object` | Veri kalitesi etiketi, skoru ve eksik flag'ler. |
| `risk` | `object` | Risk seviyesi, risk skoru ve sürpriz sinyalleri. |
| `engine_breakdown` | `object` | Team/Player/Odds/Referee confidence kırılımı. |
| `main_pick` | `object \| null` | Ana önerilen garanti market satırı. |
| `value_pick` | `object \| null` | Oranı 1.60 ve üzeri olan değerli/sürpriz pick. |
| `bet_advice` | `object` | Genel oynanabilirlik kararı (`playable`, stake vb.). |
| `bet_summary` | `array<object>` | Tüm marketlerin kullanıcı dostu özet listesi. |
| `supporting_picks` | `array<object>` | Ana pick dışındaki destekleyici pickler. |
| `aggressive_pick` | `object \| null` | Yüksek riskli fırsat pick'i (örn HT/FT). |
| `scenario_top5` | `array<object>` | En olası ilk 5 skor senaryosu. |
| `score_prediction` | `object` | FT/HT skor ve xG öngörüleri. |
| `market_board` | `object` | Market bazlı detay olasılık tablosu. |
| `reasoning_factors` | `array<string>` | Karar etiketleri/gerekçeler. |
## 2) `match_info`
| Key | Type |
|---|---|
| `match_id` | `string` |
| `match_name` | `string` |
| `home_team` | `string` |
| `away_team` | `string` |
| `league` | `string` |
| `match_date_ms` | `number` |
## 3) `data_quality`
| Key | Type | Not |
|---|---|---|
| `label` | `"HIGH" \| "MEDIUM" \| "LOW"` | Kalite etiketi |
| `score` | `number` | 0-1 arası normalize skor |
| `home_lineup_count` | `number` | Home XI oyuncu sayısı |
| `away_lineup_count` | `number` | Away XI oyuncu sayısı |
| `flags` | `array<string>` | Örn: `lineup_incomplete`, `missing_referee` |
## 4) `risk`
| Key | Type |
|---|---|
| `level` | `"LOW" \| "MEDIUM" \| "HIGH" \| "EXTREME"` |
| `score` | `number` |
| `is_surprise_risk` | `boolean` |
| `surprise_type` | `string \| null` |
| `warnings` | `array<string>` |
## 5) Pick Satırı Şeması (`main_pick`, `supporting_picks[]`)
| Key | Type | Açıklama |
|---|---|---|
| `market` | `string` | Örn: `MS`, `OU25`, `BTTS` |
| `pick` | `string` | Öneri metni |
| `probability` | `number` | Model olasılığı (0-1) |
| `confidence` | `number` | Ham confidence (%) |
| `odds` | `number \| null` | Seçimin oranı |
| `raw_confidence` | `number` | Kalibrasyon öncesi confidence |
| `calibrated_confidence` | `number` | Kalibrasyon sonrası confidence |
| `min_required_confidence` | `number` | O market için minimum eşik |
| `edge` | `number` | Model olasılığı - implied probability |
| `play_score` | `number` | Nihai oynanabilirlik puanı (0-100) |
| `playable` | `boolean` | Oynanmalı mı? |
| `bet_grade` | `"A" \| "B" \| "C" \| "PASS"` | Kullanıcı aksiyon notu |
| `stake_units` | `number` | Önerilen stake birimi |
| `decision_reasons` | `array<string>` | Kural bazlı karar nedenleri |
## 6) `bet_advice`
| Key | Type |
|---|---|
| `playable` | `boolean` |
| `suggested_stake_units` | `number` |
| `reason` | `string` |
## 7) `bet_summary[]`
Kullanıcıya sade gösterim için üretilen satırlar.
| Key | Type |
|---|---|
| `market` | `string` |
| `pick` | `string` |
| `raw_confidence` | `number` |
| `calibrated_confidence` | `number` |
| `bet_grade` | `"A" \| "B" \| "C" \| "PASS"` |
| `playable` | `boolean` |
| `stake_units` | `number` |
| `play_score` | `number` |
| `reasons` | `array<string>` |
## 8) `score_prediction`
| Key | Type |
|---|---|
| `ft` | `string` |
| `ht` | `string` |
| `xg_home` | `number` |
| `xg_away` | `number` |
| `xg_total` | `number` |
## 9) `scenario_top5[]`
| Key | Type |
|---|---|
| `score` | `string` |
| `prob` | `number` |
## 10) `market_board`
Market detayları:
- `MS`, `DC`, `OU15`, `OU25`, `OU35`, `BTTS`, `HT`:
- `pick: string`
- `confidence: number`
- `probs: object`
- `HTFT`:
- `probs: { "1/1": number, "1/X": number, ... }`
## 11) Minimal Örnek
```json
{
"model_version": "v20plus.1",
"match_info": {
"match_id": "abc123",
"match_name": "Team A vs Team B",
"home_team": "Team A",
"away_team": "Team B",
"league": "League",
"match_date_ms": 1771207200000
},
"main_pick": {
"market": "OU15",
"pick": "Üst 1.5",
"probability": 0.74,
"confidence": 66.5,
"raw_confidence": 66.5,
"calibrated_confidence": 59.9,
"min_required_confidence": 60.0,
"edge": 0.08,
"play_score": 63.0,
"playable": true,
"bet_grade": "B",
"stake_units": 0.5,
"decision_reasons": ["market_passed_all_gates"]
},
"bet_advice": {
"playable": true,
"suggested_stake_units": 0.5,
"reason": "playable_pick_found"
},
"bet_summary": []
}
```