GoshawkVortexAI commited on
Commit
f514727
·
verified ·
1 Parent(s): 2982d8f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -20
app.py CHANGED
@@ -2,7 +2,7 @@ import os
2
  import numpy as np
3
  import xgboost as xgb
4
  import gradio as gr
5
- from groq import Groq # Gemini kütüphanesi yerine Groq kütüphanesi eklendi
6
 
7
  # ==========================================
8
  # 🔌 1. GROQ CLIENT BAŞLATMA
@@ -15,19 +15,16 @@ if api_key:
15
  # ==========================================
16
  # 📊 2. SENTETİK XGBOOST MODELİ (MOCK TRAIN)
17
  # ==========================================
18
- # Arayüz açıldığında hızlıca kalibre edilen örnek XGBoost sınıflandırıcısı.
19
- # Özellikler: [Ev_Sırası, Dep_Sırası, Ev_Form_Puanı, Dep_Form_Puanı, Ev_Sakat_Sayısı, Dep_Sakat_Sayısı]
20
  def train_baseline_xgboost():
21
  X_synthetic = np.array([
22
- [1, 18, 13, 3, 0, 3], # Güçlü ev sahibi favori
23
- [15, 2, 4, 12, 2, 0], # Güçlü deplasman favori
24
- [8, 9, 7, 8, 1, 1], # Denk takımlar
25
- [4, 5, 10, 9, 0, 1], # Kafa kafaya zirve mücadelesi
26
- [20, 19, 2, 1, 3, 2], # Alt sıraların mücadelesi
27
- [3, 16, 11, 4, 1, 2], # Ev favori
28
- [17, 4, 3, 11, 2, 0] # Deplasman favori
29
  ])
30
- # Hedef Değişkenler: 0 -> Ev Sahibi Kazanır, 1 -> Beraberlik, 2 -> Deplasman Kazanır
31
  y_synthetic = np.array([0, 2, 1, 0, 1, 0, 2])
32
 
33
  model = xgb.XGBClassifier(
@@ -42,7 +39,6 @@ def train_baseline_xgboost():
42
  model.fit(X_synthetic, y_synthetic)
43
  return model
44
 
45
- # Uygulama başlarken modeli hafızaya yükle
46
  xgb_model = train_baseline_xgboost()
47
 
48
  # ==========================================
@@ -52,7 +48,6 @@ def predict_and_analyze(home_team, away_team, home_rank, away_rank, home_form, a
52
  if not home_team or not away_team:
53
  return "Lütfen ev sahibi ve deplasman takımlarının isimlerini giriniz.", {}
54
 
55
- # XGBoost Tahmin Girdisini Hazırlama
56
  features = np.array([[home_rank, away_rank, home_form, away_form, home_injuries, away_injuries]])
57
  probabilities = xgb_model.predict_proba(features)[0]
58
 
@@ -60,14 +55,12 @@ def predict_and_analyze(home_team, away_team, home_rank, away_rank, home_form, a
60
  p_draw = float(probabilities[1])
61
  p_away = float(probabilities[2])
62
 
63
- # Gradio grafiği için dictionary formatı
64
  prob_dict = {
65
  f"{home_team} Galibiyeti (1)": p_home,
66
  "Beraberlik (X)": p_draw,
67
  f"{away_team} Galibiyeti (2)": p_away
68
  }
69
 
70
- # Groq Analiz Promptu
71
  prompt = f"""
72
  Sen uzman bir spor analisti ve profesyonel bir veri modelleyicisisin.
73
 
@@ -90,16 +83,16 @@ def predict_and_analyze(home_team, away_team, home_rank, away_rank, home_form, a
90
  Yorumların rasyonel, nesnel ve profesyonel olsun.
91
  """
92
 
93
- # Groq API Çağrısı
94
  if client:
95
  try:
96
- # Groq'un desteklediği güncel ve başarılı bir model kullanıyoruz
97
  response = client.chat.completions.create(
98
- model="llama-3.3-70b-versatile",
99
  messages=[
100
  {"role": "user", "content": prompt}
101
  ],
102
  temperature=0.3,
 
103
  )
104
  analysis_result = response.choices[0].message.content
105
  except Exception as e:
@@ -110,13 +103,13 @@ def predict_and_analyze(home_team, away_team, home_rank, away_rank, home_form, a
110
  return analysis_result, prob_dict
111
 
112
  # ==========================================
113
- # 🎨 4. GRADIO ARAYÜZÜ (DARK THEME)
114
  # ==========================================
115
  with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue", secondary_hue="slate")) as demo:
116
  gr.Markdown(
117
  """
118
  # ⚽ XGBoost & Groq Hibrit Maç Tahmin Radarı
119
- Bu uygulama, girdiğiniz takım verilerini **XGBoost** sınıflandırıcısı ile tarayıp olasılıkları hesaplar ve **Groq (Llama 3.3)** yapay zekası ile matematiksel olarak yorumlar.
120
  """
121
  )
122
 
 
2
  import numpy as np
3
  import xgboost as xgb
4
  import gradio as gr
5
+ from groq import Groq
6
 
7
  # ==========================================
8
  # 🔌 1. GROQ CLIENT BAŞLATMA
 
15
  # ==========================================
16
  # 📊 2. SENTETİK XGBOOST MODELİ (MOCK TRAIN)
17
  # ==========================================
 
 
18
  def train_baseline_xgboost():
19
  X_synthetic = np.array([
20
+ [1, 18, 13, 3, 0, 3],
21
+ [15, 2, 4, 12, 2, 0],
22
+ [8, 9, 7, 8, 1, 1],
23
+ [4, 5, 10, 9, 0, 1],
24
+ [20, 19, 2, 1, 3, 2],
25
+ [3, 16, 11, 4, 1, 2],
26
+ [17, 4, 3, 11, 2, 0]
27
  ])
 
28
  y_synthetic = np.array([0, 2, 1, 0, 1, 0, 2])
29
 
30
  model = xgb.XGBClassifier(
 
39
  model.fit(X_synthetic, y_synthetic)
40
  return model
41
 
 
42
  xgb_model = train_baseline_xgboost()
43
 
44
  # ==========================================
 
48
  if not home_team or not away_team:
49
  return "Lütfen ev sahibi ve deplasman takımlarının isimlerini giriniz.", {}
50
 
 
51
  features = np.array([[home_rank, away_rank, home_form, away_form, home_injuries, away_injuries]])
52
  probabilities = xgb_model.predict_proba(features)[0]
53
 
 
55
  p_draw = float(probabilities[1])
56
  p_away = float(probabilities[2])
57
 
 
58
  prob_dict = {
59
  f"{home_team} Galibiyeti (1)": p_home,
60
  "Beraberlik (X)": p_draw,
61
  f"{away_team} Galibiyeti (2)": p_away
62
  }
63
 
 
64
  prompt = f"""
65
  Sen uzman bir spor analisti ve profesyonel bir veri modelleyicisisin.
66
 
 
83
  Yorumların rasyonel, nesnel ve profesyonel olsun.
84
  """
85
 
 
86
  if client:
87
  try:
88
+ # Model güncellendi ve max_tokens eklendi
89
  response = client.chat.completions.create(
90
+ model="openai/gpt-oss-120b",
91
  messages=[
92
  {"role": "user", "content": prompt}
93
  ],
94
  temperature=0.3,
95
+ max_tokens=1024
96
  )
97
  analysis_result = response.choices[0].message.content
98
  except Exception as e:
 
103
  return analysis_result, prob_dict
104
 
105
  # ==========================================
106
+ # 🎨 4. GRADIO ARAYÜZÜ
107
  # ==========================================
108
  with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue", secondary_hue="slate")) as demo:
109
  gr.Markdown(
110
  """
111
  # ⚽ XGBoost & Groq Hibrit Maç Tahmin Radarı
112
+ Bu uygulama, girdiğiniz takım verilerini **XGBoost** sınıflandırıcısı ile tarayıp olasılıkları hesaplar ve **Groq (GPT-OSS)** yapay zekası ile matematiksel olarak yorumlar.
113
  """
114
  )
115