178 lines
5.8 KiB
Markdown
178 lines
5.8 KiB
Markdown
# Changelog - 2026-04-14
|
||
|
||
Bu doküman, 14 Nisan 2026 tarihinde `Suggest-Bet-BE` üzerinde yapılan önemli teknik değişiklikleri özetler.
|
||
|
||
## 1. Full Stack Çalıştırma Scriptleri
|
||
|
||
- `src/scripts/run-full-stack.ts` eklendi.
|
||
- `src/scripts/run-all-fe-compatible.ts` eklendi.
|
||
- `package.json` içine şu scriptler eklendi veya güncellendi:
|
||
- `full:run`
|
||
- `run:all`
|
||
- Amaç:
|
||
- AI engine ve NestJS'i birlikte ayağa kaldırmak
|
||
- AI engine health check tamamlanmadan backend başlatmamak
|
||
- process shutdown akışını kontrollü yönetmek
|
||
- FE uyumlu profile ile `NestJS:3000`, `AI engine:8000` kullanabilmek
|
||
|
||
## 2. Port ve Env Standardizasyonu
|
||
|
||
- `.env.example` port değerleri netleştirildi.
|
||
- Kullanım ayrımı:
|
||
- `npm run full:run`: backend-native profile
|
||
- `npm run run:all`: frontend-compatible profile
|
||
|
||
## 3. Matches Browse Davranışı
|
||
|
||
- `src/modules/matches/matches.service.ts` güncellendi.
|
||
- Varsayılan browse filtresi sadece upcoming yerine `live + upcoming` davranacak şekilde düzenlendi.
|
||
- Etki:
|
||
- `/api/matches/query` status verilmeden çağrıldığında canlı maçlar da döner.
|
||
- `/tr/matches` sayfası live match'leri de görebilir.
|
||
|
||
## 4. VQWEN Model Entegrasyonu
|
||
|
||
- `ai-engine/models/betting_engine.py` güncellendi.
|
||
- `ai-engine/services/v2_router.py` güncellendi.
|
||
- Davranış:
|
||
- `v2_artifacts/calibrated_*.joblib` yoksa sistem artık doğrudan `ai-engine/models/vqwen/*.pkl` modellerine fallback yapıyor.
|
||
- Bu sayede predictor boş priors yerine gerçek model kullanıyor.
|
||
|
||
## 5. Feature Extraction İyileştirmeleri
|
||
|
||
- `ai-engine/features/extractor.py` güncellendi.
|
||
- Eklendi veya iyileştirildi:
|
||
- gerçek `rest_diff`
|
||
- gerçek `h2h_home_win_rate`
|
||
- lineup/sidelined JSON'ından availability türetimi
|
||
- rolling form fallback'leri
|
||
- `matches` ve `live_matches` tablo farkları dikkate alındı.
|
||
- Tarihsel maçlarda olmayan kolonlar yüzünden extractor patlamayacak hale getirildi.
|
||
|
||
## 6. AI Engine PostgreSQL Bağlantı Düzeltmesi
|
||
|
||
- `ai-engine/data/database.py` güncellendi.
|
||
- Düzeltmeler:
|
||
- `.env` otomatik yükleme
|
||
- `DATABASE_URL` içindeki Prisma `?schema=public` parametresini asyncpg ile uyumlu normalize etme
|
||
- `search_path` ayarı ile bağlantıyı kararlı hale getirme
|
||
|
||
## 7. Runtime Backtest Scripti
|
||
|
||
- `ai-engine/scripts/backtest_v2_runtime.py` eklendi.
|
||
- `package.json` içine `ai:backtest` scripti eklendi.
|
||
- Amaç:
|
||
- V2/VQWEN tahminlerini bitmiş maçlar üstünde hızlıca ölçebilmek
|
||
- accuracy, playable accuracy ve ROI görmek
|
||
|
||
## 8. VQWEN Top League Re-Training
|
||
|
||
- `ai-engine/scripts/train_vqwen_v3.py` güncellendi.
|
||
- `top_leagues.json` okunacak şekilde düzenlendi.
|
||
- Sadece top league maçlarıyla eğitim yapılacak hale getirildi.
|
||
- `package.json` içine `ai:train:vqwen` scripti eklendi.
|
||
- Eğitim metadata dosyası üretildi:
|
||
- `ai-engine/models/vqwen/vqwen_training_meta.json`
|
||
- Sonuç:
|
||
- `vqwen_ms.pkl`
|
||
- `vqwen_ou25.pkl`
|
||
- `vqwen_btts.pkl`
|
||
dosyaları top league dataset ile yeniden üretildi.
|
||
|
||
## 9. V20+ Market Coverage Genişletmesi
|
||
|
||
Korner hariç daha fazla bahis tipini V20+ orchestration içinde görünür ve kullanılabilir hale getirmek için değişiklikler yapıldı.
|
||
|
||
### 9.1 Odds Parsing Genişletmesi
|
||
|
||
- `ai-engine/services/single_match_orchestrator.py` güncellendi.
|
||
- `RELATIONAL_ODDS_KEYS` genişletildi.
|
||
- Yeni parse edilen market/odds anahtarları:
|
||
- `ht_ou15_o`
|
||
- `ht_ou15_u`
|
||
- `cards_o`
|
||
- `cards_u`
|
||
- `hcap_h`
|
||
- `hcap_d`
|
||
- `hcap_a`
|
||
|
||
### 9.2 Yeni Helper Fonksiyonları
|
||
|
||
- `single_match_orchestrator.py` içine eklendi:
|
||
- `_is_first_half_ou15_category`
|
||
- `_is_cards_ou_category`
|
||
- `_is_football_handicap_category`
|
||
- `_set_football_handicap_odds`
|
||
|
||
### 9.3 Market Requirement Genişletmesi
|
||
|
||
- `ODDS_REQUIRED_MARKETS` genişletildi.
|
||
- Yeni marketler:
|
||
- `HT_OU15`
|
||
- `CARDS`
|
||
- `HCAP`
|
||
|
||
### 9.4 Market Board ve Bet Summary Genişletmesi
|
||
|
||
- `single_match_orchestrator.py` içinde response üretimi genişletildi.
|
||
- `market_board` artık şu marketleri de içeriyor:
|
||
- `HT_OU15`
|
||
- `CARDS`
|
||
- `HCAP`
|
||
- `_build_market_rows()` artık şu marketler için de row üretiyor:
|
||
- `HT_OU15`
|
||
- `CARDS`
|
||
- `HCAP`
|
||
|
||
### 9.5 Market Calibration
|
||
|
||
- Yeni marketler için calibration / minimum confidence tanımları eklendi:
|
||
- `HT_OU15`
|
||
- `CARDS`
|
||
- `HCAP`
|
||
|
||
## 10. Other Markets Calculator İyileştirmesi
|
||
|
||
- `ai-engine/core/calculators/other_markets_calculator.py` yeniden düzenlendi.
|
||
- Eklendi:
|
||
- `cards_over_prob`
|
||
- `cards_under_prob`
|
||
- `cards_confidence`
|
||
- `handicap_home_prob`
|
||
- `handicap_draw_prob`
|
||
- `handicap_away_prob`
|
||
- `handicap_confidence`
|
||
- Korner tarafı özellikle kapsam dışı bırakıldı.
|
||
|
||
## 11. V20 Ensemble Model Genişletmesi
|
||
|
||
- `ai-engine/models/v20_ensemble.py` güncellendi.
|
||
- `FullMatchPrediction` içine şu alanlar eklendi:
|
||
- `cards_over_prob`
|
||
- `cards_under_prob`
|
||
- `cards_confidence`
|
||
- `handicap_home_prob`
|
||
- `handicap_draw_prob`
|
||
- `handicap_away_prob`
|
||
- `handicap_confidence`
|
||
- `to_dict()` çıktısı da cards ve handicap için daha zengin veri dönecek şekilde genişletildi.
|
||
|
||
## 12. Derleme ve Doğrulama Notları
|
||
|
||
- Python tarafında şu dosyalar `py_compile` ile doğrulandı:
|
||
- `ai-engine/core/calculators/other_markets_calculator.py`
|
||
- `ai-engine/models/v20_ensemble.py`
|
||
- `ai-engine/services/single_match_orchestrator.py`
|
||
- `npm run build` son denemede kullanıcı tarafından manuel olarak kesildi.
|
||
- Bu yüzden changelog yazıldığı anda en son TypeScript/Nest build sonucu tekrar alınmış kabul edilmemeli.
|
||
|
||
## 13. Açık Kalan / Sonraki Adımlar
|
||
|
||
- Yeni marketlerin runtime API çıktısı gerçek maç üstünde uçtan uca test edilmeli.
|
||
- `npm run build` tekrar tam çalıştırılmalı.
|
||
- Mümkünse bir örnek `/v20plus/analyze/:matchId` çağrısıyla şu marketler doğrulanmalı:
|
||
- `HT_OU15`
|
||
- `CARDS`
|
||
- `HCAP`
|
||
- Korner marketleri bilinçli olarak dahil edilmedi.
|