parhamrahmani / SongScope

AI-powered Music Recommendation Chatbot
0 stars 0 forks source link
ai chainlit flask openai-api python spotify-api spotify-web-api

SongScope

Introduction

SongScope is an AI powered music recommendation system that experiments with your spotify data such as your top tracks, liked songs , artists , etc. to recommend you new songs that you might like. The system can add a personal touch to the recommendations if you provide your mood and personal emotional data. The system can be also fine-tuned based on your liked songs and spotify recommendation system to experiment with fine-tuned models too. Other features include a function to search reviews from pitchfork or similar websites to get a better understanding of the song and artist and have a critical view. The features combined with personalized fine-tuning can experiment with a newly personalized recommendation system.

Pre-Installation Requirements

Python 3.10 is used as interpreter for the project.

Needed to install the dependencies.

A Spotify account is needed to use the system. You can create one here.

This project is built using locally, so you need to provide your own Spotify Client ID and Client Secret. Please read this documentation to create your own Spotify Developer Account and get your own Client ID and Client Secret. Getting Started with Spotify Web API

This project uses OpenAI API to generate song lyrics. You can get your own API key by signing up here.

We will also need OPENAI ASSISTANT ID which has functions available to it. We will do this later in the project setup.

We will be using MongoDB as our database, ChromaDB for storing reviews and chat history and Nginx for our web server configurations.

The details will follow in the installation section. However, install these before starting with the project setup.

Project Setup - Debian GNU/Linux 12 (bookworm)

1. Clone the repository

git clone https://github.com/parhamrahmani/SongScope.git

2. Install the dependencies

pip install -r requirements.txt

or

pip install requests python-dotenv Flask jsonify openai chromadb pymongo chainlit beautifulsoup4

3. Set up Nginx configurations

5. Set up ChromaDB

7. Fine-Tuning (Optional)

Fine-tuning is an optional step

Running the project

Start Nginx Service