A hackathon project for the Qdrant Hackathon that recommends Spotify songs based on your mood using vector similarity search!
This is a Streamlit web app that lets you enter your mood in plain text (e.g., "chill but a little sad", "gym pump", "romantic dinner") and instantly get a list of Spotify tracks that match your vibe.
- Vector Search: Uses Qdrant as a vector database to find similar songs.
- Embeddings: Converts your mood description into an embedding and finds the closest songs.
- CrewAI: Orchestrates the workflow using CrewAI agents and tools.
- Spotify Data: All song metadata comes from Spotify.
- You enter your mood in the app.
- CrewAI agents analyze your mood and trigger a vector search.
- Your mood is embedded and compared to song embeddings in Qdrant.
- The most similar songs are returned, with Spotify links for easy access.
- Streamlit – UI
- CrewAI – Agent orchestration
- Qdrant – Vector database
- Spotify Web API – Song data
- Gemini – LLM
- Python 3.10+
- Clone this repo
- Install dependencies
pip install -r requirements.txt
- Set up your environment
- Add your Spotify API credentials, Qdrant cluster ID and API key and Gemini LLM or you can use models from Ollama to a
.envfile.
- Add your Spotify API credentials, Qdrant cluster ID and API key and Gemini LLM or you can use models from Ollama to a
- Run the app
streamlit run app/app.py
- This project was built in a short time for the Qdrant Hackathon!
- The code uses CrewAI for agent-based orchestration and Qdrant for fast similarity search.
- All song data is from Spotify and is for demo purposes only.
Built with 💚 for the Qdrant Hackathon.
Feel free to fork, remix, and build on!