Skip to content

arghyaxcodes/intelliflix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎬 IntelliFlix – Semantic Movie Recommender App

Python Streamlit Hugging Face Spaces HF Dataset Last Commit GitHub stars GitHub forks

IntelliFlix is a semantic movie recommender app powered by Sentence Transformers and FAISS, with a clean UI built in Streamlit. It finds similar movies based on plot descriptions using powerful NLP embeddings and fast vector search.

🚀 Features

  • 🧠 Semantic search based on movie plot summaries
  • ⚡ Fast and scalable search via FAISS
  • ✨ Embeddings and index hosted on Hugging Face Datasets
  • 🖥️ UI hosted on Hugging Face Spaces
  • 🔍 Search any movie plot snippet to get relevant recommendations
  • 📊 Visualize results with a clean and interactive UI

🌐 Live Demo

👉 Try it now: IntelliFlix App

🛠️ Tech Stack

  • 🐍 Python – Core programming language
  • Streamlit – UI framework for interactive web apps
  • 💬 Sentence Transformers (all-MiniLM-L12-v2) – For semantic embeddings
  • FAISS – Fast similarity search and indexing
  • 🤗 Hugging Face Datasets & Spaces – For storing and deploying models/data
  • 📊 pandas, NumPy – Data manipulation and analysis
  • 🧠 scikit-learn – Model training and evaluation

📂 Project Structure

📁 intelliflix
│
├── app/ → [hosted]                  # Streamlit app files (on HF Spaces)
│   ├── app.py                       # Streamlit app script
│   ├── requirements.txt             # Streamlit app specific dependencies
│   ├── README.md                    # App-specific README for Spaces
│   └── .gitattributes               # Required for HF Spaces
│
├── requirements.txt                 # Root dependencies for local dev / CI
├── README.md                        # Main project README
│
├── data/ → [stored remotely]        # Movie metadata (on HF Datasets)
├── embeddings/ → [stored remotely]  # SentenceTransformer embeddings (on HF Datasets)
├── indexes/ → [stored remotely]     # FAISS index files (on HF Datasets)
│
├── notebooks/                       # Jupyter notebooks for exploration/training
    ├── 01-movies_exploration.ipynb
    └── 02-semantic_movie_recommender.ipynb

💾 Data & Model Hosting

🧪 Run Locally

  1. Clone the repo

    git clone https://github.com/uiuxarghya/intelliflix.git
    cd intelliflix
  2. (Optional) Create a virtual environment

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install requirements

    pip install -r requirements.txt
  4. Run the app

    streamlit run app.py

Note: The app will automatically download embeddings and FAISS index from Hugging Face on first run.

✅ Roadmap

  • 🎥 Trailer/poster preview via TMDB API
  • 🗂️ Genre or actor-based filtering
  • 💬 Natural language query support (e.g., "movies like Inception but romantic")
  • 🔍 Search by title, genre, or actor
  • 📅 Release year filtering
  • 📅 Release date sorting
  • 🔄 Feedback loop to improve recommendations
  • 📊 Show explanation of similarity scoring

🙌 Acknowledgements

License

AGPL-3.0

This project is licensed under the AGPL-3.0 License. See the LICENSE file for details.

🧑‍💻 Author

Arghya Ghosh 🌐 arghya.dev🐙 GitHub🔗 LinkedIn

Built with ❤️ for movie lovers and AI enthusiasts.