import streamlit as st import pandas as pd import pickle import plotly.express as px import os # 1. Sayfa Ayarları st.set_page_config(page_title="Movie Recommender AI", layout="wide") # 2. Şık Görsel Stil (CSS) - Senin beğendiğin tam tasarım st.markdown(""" """, unsafe_allow_html=True) # 3. Veri ve Model Yükleme (Hugging Face / Xet uyumlu) @st.cache_resource def load_assets(): try: # Dosya kontrolü if not os.path.exists('netflix_titles.csv'): return None, None, None df = pd.read_csv('netflix_titles.csv') with open('similarity.pkl', 'rb') as f: similarity = pickle.load(f) with open('indices.pkl', 'rb') as f: indices = pickle.load(f) return df, similarity, indices except Exception as e: st.error(f"Yükleme hatası: {e}") return None, None, None df, similarity, indices = load_assets() # Türkçe Çeviri Simülasyonu def get_turkish_desc(text): return f"Bu yapım genel olarak şunu konu almaktadır: {text[:100]}..." # Uygulama Başlangıcı if df is not None: st.title("🎬 Movie Recommendation System / Film Öneri Sistemi") st.write("---") col_left, col_main = st.columns([1.5, 3]) # --- SOL TARAF: ÖRNEKLER --- with col_left: st.subheader("💡 Suggestions / Örnekler") samples = [ ("Kota Factory", "Eğitim"), ("Ganglands", "Aksiyon"), ("Midnight Mass", "Korku"), ("Squid Game", "Gerilim"), ("The Witcher", "Fantastik"), ("Peaky Blinders", "Dram"), ("Dark", "Gizem"), ("Lucifer", "Suç") ] for i in range(0, len(samples), 2): c1, c2 = st.columns(2) with c1: if st.button(samples[i][0], key=f"btn_{samples[i][0]}"): st.session_state.selected_movie = samples[i][0] st.caption(f"({samples[i][1]})") with c2: if i+1 < len(samples): if st.button(samples[i+1][0], key=f"btn_{samples[i+1][0]}"): st.session_state.selected_movie = samples[i+1][0] st.caption(f"({samples[i+1][1]})") st.markdown("""
İpucu: Beğendiğiniz bir filmi sağdaki listeden seçebilir veya ismini yazarak aratabilirsiniz.
{row['listed_in']}
🇬🇧 Summary:
{row['description'][:60]}...
🇹🇷 Özet:
{get_turkish_desc(row['description'])}