A comprehensive web application built with Streamlit that provides interactive analytics, AI-powered game recommendations, and an intelligent chatbot for exploring Steam's vast gaming library.
- Comprehensive Analytics: Visualize 15,000+ Steam games with interactive charts
- Price Analysis: Distribution of game prices and discount patterns
- Genre Insights: Top 15 game genres with detailed breakdowns
- Platform Support: Cross-platform availability statistics (Windows, macOS, Linux, SteamOS)
- Release Trends: Monthly and yearly game release patterns
- Developer Statistics: Top developers and publishers by game count
- Review Analysis: User review distribution and sentiment
- Word Cloud: Visual representation of game descriptions and themes
- Smart Recommendations: Content-based filtering using cosine similarity
- Personalized Results: Get 1-15 similar game suggestions
- Rich Game Cards: Beautiful UI with game images, pricing, and discounts
- Detailed Information: Full game details including:
- Release dates
- Developer and publisher info
- Original pricing and current discounts
- Direct Steam store links
- Responsive Design: Mobile-friendly interface with modern aesthetics
- Conversational AI: Powered by Llama 3 (8B parameters) via Groq
- RAG Architecture: Retrieval-Augmented Generation using FAISS vector database
- Natural Language Understanding: Ask questions in plain English
- Game Discovery: Get personalized recommendations through conversation
- Context-Aware: Remembers chat history for coherent dialogues
- Rich Responses: Detailed game information and suggestions
- Python 3.8 or higher
- pip package manager
- Git
- Clone the repository
git https://github.com/HaFares/Game-Recommendation-System-.git
cd Game-Recommendation-System- Create a virtual environment
python -m venv venv
# On Windows
venv\Scripts\activate
# On macOS/Linux
source venv/bin/activate- Install dependencies
pip install -r requirements.txt- Set up API keys
Create a .env file in the root directory or set environment variables:
export HUGGINGFACEHUB_API_TOKEN="your_huggingface_token"
export GROQ_API_KEY="your_groq_api_key"- Prepare data files
Ensure the following files are in your project directory:
game_data_for_dashboard.csv- Main dataset for analyticsgames_data_recomendation.csv- Dataset for recommendationssimilarity_finale.pkl- Pre-computed similarity matrixfaiss_index/- FAISS vector database directory
steam-games-analytics/
│
├── app.py # Main Streamlit application
├── requirements.txt # Python dependencies
├── README.md # Project documentation
│
├── data/
│ ├── game_data_for_dashboard.csv
│ ├── games_data_recomendation.csv
│ └── similarity_finale.pkl
│
├── faiss_index/ # Vector database for chatbot
│ ├── index.faiss
│ └── index.pkl
│
└── assets/ # Images and static files
streamlit run app.pyThe application will open in your default browser at http://localhost:8501
Use the sidebar to switch between three main sections:
- Dashboard - Explore comprehensive game analytics
- Recommendation System - Find similar games based on your preferences
- Chatbot - Chat with AI to discover new games
- Streamlit - Web application framework
- Python 3.8+ - Programming language
- Pandas - Data manipulation and analysis
- NumPy - Numerical computing
- Plotly - Interactive visualizations
- Matplotlib & Seaborn - Statistical graphics
- WordCloud - Text visualization
- LangChain - LLM application framework
- Groq - Fast LLM inference (Llama 3)
- HuggingFace - Embeddings (all-MiniLM-L6-v2)
- FAISS - Vector similarity search
- Sentence Transformers - Text embeddings
- streamlit-shadcn-ui - Enhanced UI components
The application uses Steam game data including:
- Game titles and descriptions
- Pricing information and discounts
- Release dates
- Developer and publisher details
- Platform compatibility
- User reviews and ratings
- Genre classifications
- Game images and Steam store links
- Steam for providing the gaming data
- Groq for fast LLM inference
- HuggingFace for embedding models
- The Streamlit team for the amazing framework
- The open-source community for various libraries used
⭐ If you find this project useful, please consider giving it a star!
Made with ❤️ and ☕