ESMATUGBA commited on
Commit
bc7c8f5
·
verified ·
1 Parent(s): 2c8ded3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -26
app.py CHANGED
@@ -77,10 +77,6 @@ unlu_verileri = klasordeki_unluleri_getir()
77
  # --- ARAYÜZ AYARLARI ---
78
  st.set_page_config(page_title="CastMatch AI", layout="wide")
79
 
80
- # --- SESSION STATE (SENKRONİZASYON İÇİN) ---
81
- if 'shared_selected_actor' not in st.session_state:
82
- st.session_state.shared_selected_actor = None
83
-
84
  # --- SOL PANEL (SIDEBAR) ---
85
  st.sidebar.title("🔍 Control Panel / Kontrol Paneli")
86
  st.sidebar.markdown("---")
@@ -92,16 +88,14 @@ gender_choice = st.sidebar.radio(
92
 
93
  filtered_names = [name for name, data in unlu_verileri.items() if data['c'] == gender_choice]
94
 
95
- # Kategori değişince ilk ismi seçili yap (Hata önleme)
96
- if st.session_state.shared_selected_actor not in filtered_names and filtered_names:
97
- st.session_state.shared_selected_actor = filtered_names[0]
98
-
99
  st.sidebar.markdown(f"### 📋 Available Cast / Mevcut Oyuncular")
100
 
101
- # Sidebar'da butonlar oluşturuyoruz (Basınca ana seçimi günceller)
102
- for n in filtered_names:
103
- if st.sidebar.button(f"👤 {n}", key=f"btn_{n}"):
104
- st.session_state.shared_selected_actor = n
 
 
105
 
106
  # --- ANA EKRAN ---
107
  st.title("🎬 CastMatch AI: Talent Matching System / Yetenek Eşleştirme Sistemi")
@@ -113,30 +107,26 @@ col_actor, col_match = st.columns([1, 2])
113
  with col_actor:
114
  st.subheader("👤 Pick an Actor / Oyuncu Seç")
115
 
116
- # Seçili olanın listedeki sırasını bul (Senkronizasyonun kalbi burası)
117
  try:
118
- current_index = filtered_names.index(st.session_state.shared_selected_actor)
119
  except:
120
- current_index = 0
121
 
122
- # SELECTBOX: st.session_state ile index'i zorluyoruz
123
  selected_actor = st.selectbox(
124
  "Select from list / Listeden seçin:",
125
  filtered_names if filtered_names else ["Yok"],
126
- index=current_index,
127
- key="main_selectbox"
128
  )
129
 
130
- # Selectbox'dan manuel seçim yapılırsa state'i güncelle
131
- st.session_state.shared_selected_actor = selected_actor
132
-
133
  if selected_actor != "Yok":
134
  found_path = None
135
  search_target = selected_actor.replace(" ", "_").lower()
136
- for f in os.listdir(resim_klasoru):
137
- if f.lower().startswith(search_target) or selected_actor.lower() in f.lower():
138
- found_path = os.path.join(resim_klasoru, f)
139
- break
 
140
 
141
  if found_path:
142
  st.image(found_path, caption=f"Profile: {selected_actor}", use_container_width=True)
@@ -166,4 +156,4 @@ with col_match:
166
  st.error("Model dosyası eksik! / Model file missing!")
167
 
168
  st.markdown("---")
169
- st.info("💡 **How it works? / Nasıl çalışır?**: This AI analyzes career vectors based on available local assets. / Bu yapay zeka, mevcut yerel varlıklara (resimlere) dayanarak kariyer vektörlerini analiz eder.")
 
77
  # --- ARAYÜZ AYARLARI ---
78
  st.set_page_config(page_title="CastMatch AI", layout="wide")
79
 
 
 
 
 
80
  # --- SOL PANEL (SIDEBAR) ---
81
  st.sidebar.title("🔍 Control Panel / Kontrol Paneli")
82
  st.sidebar.markdown("---")
 
88
 
89
  filtered_names = [name for name, data in unlu_verileri.items() if data['c'] == gender_choice]
90
 
 
 
 
 
91
  st.sidebar.markdown(f"### 📋 Available Cast / Mevcut Oyuncular")
92
 
93
+ # ÇÖZÜM: Sol panelde Radio butonu kullanarak ortak state oluşturuyoruz
94
+ selected_actor_sidebar = st.sidebar.radio(
95
+ "Choose from list / Listeden seçin:",
96
+ filtered_names if filtered_names else ["Yok"],
97
+ label_visibility="collapsed" # Başlığı gizleyip sadece listeyi gösteriyoruz
98
+ )
99
 
100
  # --- ANA EKRAN ---
101
  st.title("🎬 CastMatch AI: Talent Matching System / Yetenek Eşleştirme Sistemi")
 
107
  with col_actor:
108
  st.subheader("👤 Pick an Actor / Oyuncu Seç")
109
 
110
+ # Selectbox'ın indexini, sidebar'da seçilen isme göre ayarlıyoruz
111
  try:
112
+ current_idx = filtered_names.index(selected_actor_sidebar)
113
  except:
114
+ current_idx = 0
115
 
 
116
  selected_actor = st.selectbox(
117
  "Select from list / Listeden seçin:",
118
  filtered_names if filtered_names else ["Yok"],
119
+ index=current_idx
 
120
  )
121
 
 
 
 
122
  if selected_actor != "Yok":
123
  found_path = None
124
  search_target = selected_actor.replace(" ", "_").lower()
125
+ if os.path.exists(resim_klasoru):
126
+ for f in os.listdir(resim_klasoru):
127
+ if f.lower().startswith(search_target) or selected_actor.lower() in f.lower():
128
+ found_path = os.path.join(resim_klasoru, f)
129
+ break
130
 
131
  if found_path:
132
  st.image(found_path, caption=f"Profile: {selected_actor}", use_container_width=True)
 
156
  st.error("Model dosyası eksik! / Model file missing!")
157
 
158
  st.markdown("---")
159
+ st.info("💡 **How it works? / Nasıl çalışır?**: This AI analyzes career vectors based on available local assets. / Bu yapay zeka, mevcut yerel varlıklara (resimlere) dayanarak kariyer vektörlerini analiz eder.")