caganirmak/SteamBot
0
1---2title: SteamBot3emoji: 🤖4colorFrom: blue5colorTo: green6sdk: streamlit7main: app.py8sdk_version: 1.50.09---10 11 12````markdown13# 🤖 SteamBot: Dinamik FPS Performans Asistanı14 15Bu proje, Akbank Generative AI Giriş Bootcamp için geliştirilmiş,16**Google Gemini** modelini ve **Steam API**'sini kullanarak oyunlar için17gerçek zamanlı FPS tahmini yapan bir chatbot projesidir.18 19## 📋 Proje Hakkında20 21Bu asistan, kullanıcıların oynamak istedikleri Steam oyunları için22sistemlerinin yeterli olup olmadığını analiz eden ve bir FPS23(saniyedeki kare sayısı) tahmini sunan bir yapay zeka asistanıdır.24 25Projenin temel amacı, statik ve zamanla eskiyen veri setlerinin aksine,26**canlı ve güncel verilerle** beslenen bir RAG (Retrieval-Augmented Generation)27mimarisi kurmaktır.28 29Bu sayede, oyunların sistem gereksinimleri güncellendiği anda botun analizleri de30otomatik olarak güncellenmiş olur.31 32## 🛠️ Kullanılan Teknolojiler33 34* **Streamlit**: Web arayüzü ve kullanıcı etkileşimi.35* **Google Gemini (gemini-2.5-flash)**: Yanıt ve analiz üretimi (LLM).36* **Requests**: Steam API'sinden anlık veri çekmek için.37* **BeautifulSoup4**: Steam'den gelen HTML verisini temizlemek ve işlemek için.38* **Python-dotenv**: API anahtarlarını güvenli bir şekilde saklamak için.39 40## 💡 Veri Akışı ve Mimarisi (Nasıl Çalışır?)41 42Bu proje, mentor (Rumeysa Bakar) tavsiyesi doğrultusunda43**Steam API'sini dinamik bir veri seti** olarak kullanır. Statik bir44vektör veritabanı yerine, her sorguda "Anlık Veri Çekme" (Real-time Retrieval)45yöntemini uygular:46 471. **Giriş (Input):**48 Kullanıcı, sistem özelliklerini (CPU, GPU, RAM) ve oyunun Steam mağaza49 URL'ini (`https://store.steampowered.com/app/...`) sohbete girer.50 512. **Kimlik Çıkarımı (ID Extraction):**52 `extract_app_id` fonksiyonu, verilen URL'i analiz eder ve oyunun benzersiz53 Steam App ID'sini çıkarır.54 553. **Dinamik Veri Çekme (Retrieval):**56 `fetch_steam_requirements` fonksiyonu, bu App ID'yi kullanarak o an Steam'in57 resmi API'sine (`store.steampowered.com/api/appdetails`) bir `GET` isteği atar.58 594. **Veri İşleme (Processing):**60 API'den dönen JSON yanıtının içindeki (HTML içeren) minimum ve önerilen61 sistem gereksinimleri metinleri, `parse_requirements` fonksiyonu ve62 `BeautifulSoup` kütüphanesi ile temizlenerek anlamlı bir metin bloğuna63 dönüştürülür.64 655. **Bağlam Zenginleştirme (Augmentation):**66 Çekilen bu **güncel ve resmi** sistem gereksinimleri, kullanıcının kendi sistem67 bilgileriyle ve `SYSTEM_PROMPT` ile birleştirilerek Google Gemini için68 zenginleştirilmiş bir bağlam (`augmented_content`) oluşturulur.69 706. **Yanıt Üretimi (Generation):**71 Gemini, bu zenginleştirilmiş bağlamı analiz eder. Bir "tahmin" yapmak yerine,72 elindeki *gerçek* verilere dayanarak kullanıcıya mantıklı bir FPS aralığı ve73 performans analizi sunar.74 757. **Verimlilik:**76 Steam API'sinden gelen yanıtlar `st.cache_data`, Gemini bağlantısı ise77 `st.cache_resource` ile önbelleğe alınarak performans optimize edilir.78 79## 🚀 Kurulum ve Çalıştırma80 81### 1. Depoyu Klonlama82 83```bash84git clone https://github.com/caganirmakii/SteamBot.git85cd SteamBot86````87 88### 2\. Gerekli Kütüphaneler89 90Proje için gerekli Python kütüphanelerini yükleyin:91 92```bash93pip install -r requirements.txt94```95 96### 3\. API Anahtarlarını Ayarlama97 98Proje ana dizininde `.env` adında bir dosya oluşturun ve içine99[Google AI Studio](https://aistudio.google.com/app/apikey) üzerinden100aldığınız API anahtarınızı ekleyin.101 102```103GOOGLE_API_KEY="AIzaSy...SİZİN-API-ANAHTARINIZ"104GEMINI_MODEL="gemini-2.5-flash"105```106 107### 4\. Uygulamayı Başlatma108 109Streamlit uygulamasını yerel makinenizde başlatmak için:110 111```bash112streamlit run app.py113```114 115## 🎯 Örnek Kullanım116 117Bot açıldığında, aşağıdaki formata benzer bir soru sorabilirsiniz:118 119> "Selam, sistemim Ryzen 7 5800X, ekran kartım RTX 4070 ve 32GB RAM var."120> "Sence bu oyunu 1080p'de kaç FPS alırım?"121> "https://[store.steampowered.com/app/1086940/Baldurs\_Gate\_3/](https://store.steampowered.com/app/1086940/Baldurs_Gate_3/)"122 123```124```