https://github.com/vicba/movies-recommendation
Netflix clone with vector db for similar movie recommendation
https://github.com/vicba/movies-recommendation
docker flask nextjs python tailwindcss typescript
Last synced: about 2 months ago
JSON representation
Netflix clone with vector db for similar movie recommendation
- Host: GitHub
- URL: https://github.com/vicba/movies-recommendation
- Owner: Vicba
- Created: 2024-04-03T09:32:20.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-13T13:54:53.000Z (about 1 year ago)
- Last Synced: 2025-02-16T04:27:24.380Z (4 months ago)
- Topics: docker, flask, nextjs, python, tailwindcss, typescript
- Language: TypeScript
- Homepage: https://www.loom.com/share/2cff3d786df143879fc79fadf8e35af5?sid=b1a8a110-9c76-47f4-9418-6a74a77e1a21
- Size: 2.72 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Movie App
This is a movie app that uses 680 movies between 1990 and 2024 from TMDB stored in a vector database. The app uses a simple cosine similarity to find the most similar movies (recommendation) to a given movie.
## How to run ?
Make sure you have docker installed on your machine!
1. Clone the repo
```bash
git clone https://github.com/Vicba/movies-recommendation.git
```2. Run `docker-compose up` in the root directory
```bash
docker-compose up
```3. Populate the database with the movies.
```bash
curl -X GET http://localhost:5000/populate
```4. Open `http://localhost:3000` in your browser
5. Browse around!## Technologies
- Nextjs (typescript, Tailwindcss)
- Flask
- Weaviate
- Docker
- Huggingface API## The embedding model
The embedding model used is `sentence-transformers/paraphrase-MiniLM-L6-v2` from huggingface. It has 384 dimensions.
If you want to use something else, you can change it in the `/api/build_knowledge_base/embed.py` file.
Run the python script to generate the csv with embeddings csv in datasets folder.```bash
cd api/build_knowledge_base
python embed.py
```## Learnings
- Learned how to use Weaviate
- Refresh my knowledge in nextjs & docker
- Usign huggingface API
- Project went super smooth with the research and pre-defined scope