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
+177
View File
@@ -0,0 +1,177 @@
# 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.