GameQuest is an intelligent game recommendation system that leverages multi-modal vector search and Agentic RAG technologies to help users discover their next favorite game. The system integrates multiple AI models including SentenceTransformers for semantic search, DINOv2 for visual similarity, and Qwen3 LLM for intelligent reasoning, providing both traditional filtering and advanced AI-powered recommendations with detailed explanations.
Note: The demo above showcases the basic application functionality. GPU inference on Hugging Face Spaces requires paid credits, so I recommend viewing the demo GIF to see all features in action!
Try GameQuest live: Hugging Face Spaces Demo (The provided GPU is limited, so performance may be slow.)
- Advanced Filtering: Platform, genre, score, year, and scored-only filters
- Text Search: Find games by description, title, or metadata
- Semantic Search: Vector-based similarity search using SentenceTransformers embeddings
- AI Agentic RAG: Intelligent recommendations with reasoning using Qwen3 LLM
- Visual Search: Find similar games by cover art or screenshots using DINOv2
- Interactive UI: Clickable game cards with detailed modals
Frontend (Flask/Gradio)
↓
Core Backend
├── Models (SentenceTransformers, DINOv2, Qwen3)
├── Retrieval (Vector Search, Reranking)
├── Database (PostgreSQL + ChromaDB)
└── AI Agent (Agentic RAG)
gamequest/
├── flask/ # Flask web application
│ ├── app.py # Main Flask app
│ ├── static/ # CSS, JS, images
│ └── templates/ # HTML templates
├── gradio/ # Gradio interface
│ ├── app.py # Main Gradio app
│ ├── components.py # UI components
│ └── search_handlers.py # Search logic
├── core/ # Shared backend logic
│ ├── models/ # Model loading and inference
│ ├── retrieval/ # Search services and RAG
│ ├── utils/ # Database utilities
│ └── database/ # Database migration scripts
├── data/ # Database files and embeddings
├── notebooks/ # Jupyter notebooks for analysis
├── Dockerfile # Container configuration
├── requirements.txt # Python dependencies
└── README.md
- Search by game description, title, or metadata
- Filter by platform, genre, score, year
- Supports both exact and fuzzy matching
- Vector-based similarity search
- Uses SentenceTransformers embeddings
- Finds conceptually similar games
- Intelligent recommendations with reasoning
- Uses Qwen3 LLM for natural language understanding
- Provides detailed explanations for recommendations
- Upload cover art or screenshots
- Find visually similar games using DINOv2
- Supports both cover and screenshot similarity
- 188,000+ games from MobyGames database
- 600,000+ critic reviews and ratings
- Vector embeddings for semantic search
- Image embeddings for visual similarity
- Structured metadata (platforms, genres, scores, years)
- Frontend: HTML5, CSS3, JavaScript (Flask) / Gradio
- Backend: Python 3.11+, Flask/Gradio
- AI/ML: Hugging Face Transformers, SentenceTransformers, DINOv2
- Database: PostgreSQL (Neon), ChromaDB
- LLM: Qwen3 (Ollama local / HF Transformers cloud)
- Deployment: Docker, Hugging Face Spaces
- SentenceTransformers:
all-MiniLM-L6-v2for text embeddings - DINOv2:
dinov2-basefor image embeddings - Reranker:
BAAI/bge-reranker-basefor result ranking - LLM:
qwen3:0.6b(for lightweight reasoning)
- Game Discovery: Find games by description or visual similarity
- AI Recommendations: Get intelligent suggestions with reasoning
- Research: Explore game database with advanced filtering
- Development: Build on top of the vector search infrastructure
MIT License - see LICENSE file for details.