Files
iddaai-be/run-prediction.py
T
fahricansecer 7814e0bc6b
Deploy Iddaai Backend / build-and-deploy (push) Failing after 4s
first (part 1: root files)
2026-04-16 15:09:10 +03:00

171 lines
6.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
VQWEN v3 Model - Manual Prediction Script
Match ID: 558o1fq1vbfsi3m5gm4ekpyc4
Match: Kaiserslautern vs F. Düsseldorf
League: 2. Bundesliga
"""
import requests
import json
from datetime import datetime
# AI Engine base URL
AI_ENGINE_URL = "http://127.0.0.1:8000"
MATCH_ID = "558o1fq1vbfsi3m5gm4ekpyc4"
def check_engine_health():
"""Check if AI Engine is running"""
try:
response = requests.get(f"{AI_ENGINE_URL}/health", timeout=5)
return response.status_code == 200
except:
return False
def run_prediction():
"""Run VQWEN v3 prediction for the match"""
print("=" * 80)
print("🤖 VQWEN v3 MODEL - MANUEL TAHMİN SİSTEMİ")
print("=" * 80)
print(f"\n📊 Maç Bilgileri:")
print(f" ID: {MATCH_ID}")
print(f" Ev Sahibi: Kaiserslautern")
print(f" Deplasman: F. Düsseldorf")
print(f" Lig: 2. Bundesliga")
print(f" Maç Zamanı: 2026-04-01 (MS: 1775300400000)")
print(f" Hakem: D. Schlager")
print()
# Check engine health
print("🔍 AI Engine kontrol ediliyor...")
if not check_engine_health():
print("❌ AI Engine (Python FastAPI) çalışmıyor!")
print()
print("️ Lütfen AI Engine'i başlatın:")
print(" cd ai-engine")
print(" uvicorn main:app --host 0.0.0.0 --port 8000 --reload")
print()
print("📋 Alternatif olarak, maç verilerini hazırlayabilirim:")
print()
# Prepare match data for analysis
match_data = {
"match_id": MATCH_ID,
"home_team": "Kaiserslautern",
"away_team": "F. Düsseldorf",
"league": "2. Bundesliga",
"match_date_ms": "1775300400000",
"referee": "D. Schlager",
"odds": {
"MS_1": 2.13,
"MS_X": 3.23,
"MS_2": 2.34,
"Alt_2.5": 2.09,
"Ust_2.5": 1.38,
"KG_Var": 1.32,
"KG_Yok": 2.25
},
"lineups_available": True,
"sidelined_count": 0
}
print("✅ Maç verileri hazırlandı:")
print(json.dumps(match_data, indent=2, ensure_ascii=False))
print()
print("⚠️ Tahmin almak için AI Engine'in çalışması gerekiyor.")
print()
return
# If engine is running, call the analysis endpoint
print("✅ AI Engine çalışıyor!")
print()
print("🎯 Tahmin yapılıyor...")
try:
response = requests.post(
f"{AI_ENGINE_URL}/v20plus/analyze/{MATCH_ID}",
json={},
timeout=60
)
if response.status_code == 200:
result = response.json()
print("\n" + "=" * 80)
print("📊 TAHMİN SONUÇLARI")
print("=" * 80)
# Main Pick
if 'main_pick' in result:
main = result['main_pick']
print(f"\n🎯 ANA TAHMİN:")
print(f" Market: {main.get('market', 'N/A')}")
print(f" Tahmin: {main.get('pick', 'N/A')}")
print(f" Oran: {main.get('odds', 'N/A')}")
print(f" Güven: {main.get('confidence', 0):.1f}%")
print(f" Olasılık: {main.get('probability', 0):.1f}%")
print(f" Bahis Derecesi: {main.get('bet_grade', 'N/A')}")
# Value Pick
if 'value_pick' in result:
value = result['value_pick']
print(f"\n💎 DEĞER TAHMİNİ:")
print(f" Market: {value.get('market', 'N/A')}")
print(f" Tahmin: {value.get('pick', 'N/A')}")
print(f" Oran: {value.get('odds', 'N/A')}")
print(f" Güven: {value.get('confidence', 0):.1f}%")
print(f" Edge: {value.get('edge', 0):.2f}")
# Score Prediction
if 'score_prediction' in result:
score = result['score_prediction']
print(f"\n⚽ SKOR TAHMİNİ:")
print(f" İlk Yarı: {score.get('ht', 'N/A')}")
print(f" Maç Sonu: {score.get('ft', 'N/A')}")
print(f" xG (Ev): {score.get('xg_home', 0):.2f}")
print(f" xG (Dep): {score.get('xg_away', 0):.2f}")
print(f" Toplam xG: {score.get('xg_total', 0):.2f}")
# Bet Summary
if 'bet_summary' in result:
print(f"\n📋 TÜM TAHMİNLER:")
for bet in result['bet_summary']:
print(f"{bet.get('market', 'N/A')}: {bet.get('pick', 'N/A')} "
f"(Güven: {bet.get('calibrated_confidence', 0):.1f}%, "
f"Derece: {bet.get('bet_grade', 'N/A')})")
# AI Commentary
if 'ai_commentary' in result:
print(f"\n💬 AI YORUMU:")
print(f" {result['ai_commentary']}")
# Risk Assessment
if 'risk' in result:
risk = result['risk']
print(f"\n⚠️ RİSK DEĞERLENDİRMESİ:")
print(f" Seviye: {risk.get('level', 'N/A')}")
print(f" Skor: {risk.get('score', 0):.1f}")
if risk.get('warnings'):
print(f" Uyarılar: {', '.join(risk['warnings'][:3])}")
# Data Quality
if 'data_quality' in result:
quality = result['data_quality']
print(f"\n📊 VERİ KALİTESİ:")
print(f" Seviye: {quality.get('label', 'N/A')}")
print(f" Skor: {quality.get('score', 0):.1f}")
print("\n" + "=" * 80)
else:
print(f"❌ Hata: HTTP {response.status_code}")
print(f" {response.text}")
except requests.exceptions.Timeout:
print("❌ Zaman aşımı! AI Engine yanıt vermiyor.")
except Exception as e:
print(f"❌ Hata: {str(e)}")
if __name__ == "__main__":
run_prediction()