Skip to content

nolanbconaway/moomoo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

moomoo: Nolan's Homemade Music Recommendation System.

I want to ditch Spotify and the other major streaming platforms, but I also love the recommendation/playlisting products they provide. I'll never do it so long as I cannot get that service elsewhere, so let's see if I can't use open source software to get what I need.

Moomoo is very much an ongoing effort. Nobody else should even read this, let alone try to deploy it themselves.

CI Status

  • ingest
  • ml
  • dbt
  • client
  • playlist
  • http

Architecture

Moomoo is composed of (currently) 6 components that work together through the use of a central postgres database. pgvector is needed in that database to store and manage ML embeddings.

The general setup is:

  • ml, ingest populate base tables in postgres (with some exception in ingest). These modules are run via a scheduler like airflow, etc.
  • dbt merges tables and populates tested/consumable data. It also populates a main list of mbids which are consumed by some ingest jobs.
  • playlist contains a combination of library code for creating playlists (for re-use in http) and CLI handlers for saving collections of playlists to the database.
  • http provides a webserver through which playlists are requested. Database access from the client is managed exclusively through the http api.
  • client provides an installable (via pipx, etc) package for local clients. Its requirements are minimal and should be lightweight. It currently only contains a CLI to generate playlists, but will likely evolve into a larger GUI application.

Each component requires some special envvars, etc. So see the docs within the folder for each. I have no advice on how to orchestrate these services.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages