Retour aux projets
Python FastAPI Milvus Sentence-Transformers Llama 3 UMAP Docker Streamlit

Music Recommender System

Moteur de recommandation musicale sémantique basé sur l'IA, la recherche vectorielle et la visualisation — une alternative plus fine aux systèmes fondés sur la popularité.

Voir la documentation en ligne GitHub
Interface de recherche sémantique — Music Recommender

Pourquoi ce projet ?

Les moteurs de recommandation traditionnels sont performants, mais ils ont des limites fondamentales. J'ai voulu explorer une autre approche.

Cold Start

Un nouvel album sans historique d'écoute est invisible pour les systèmes collaboratifs. Le contenu, lui, existe dès la sortie.

Filter Bubble

Les algorithmes ont tendance à enfermer l'utilisateur dans sa zone de confort, réduisant la découverte musicale à des variations du même univers.

Dimension émotionnelle ignorée

Les plateformes ne comprennent pas pourquoi deux albums se ressemblent. L'ambiance, le style, la texture sonore — tout ça est absent des modèles classiques.

L'idée : au lieu de dire "les utilisateurs qui aiment X aiment aussi Y", le système cherche à comprendre pourquoi deux albums se ressemblent — à travers leurs chroniques, leurs styles et leur texture sémantique.

4 fonctionnalités clés

Une application complète articulée autour de modes d'exploration complémentaires.

01 — Recherche sémantique

Trouver un album
par son univers

L'utilisateur décrit ce qu'il cherche avec des mots-clés de son choix. Le moteur convertit cette requête en vecteur et retourne les albums les plus proches dans l'espace sémantique, avec un score de similarité.

Embeddings 384 dimensions · similarité cosinus · index HNSW dans Milvus
02 — Vibe Wizard

Traduire une intention
en requête

L'utilisateur peut formuler une envie abstraite — "une musique pour conduire la nuit sous la pluie". Le LLM Llama 3 interprète cette intention et la transforme en descripteurs exploitables : genres, atmosphère, tempo, instrumentation.

Llama 3 · prompt engineering · traduction sémantique naturelle
03 — Carte musicale

Explorer l'espace
musical en 3D

Les embeddings à 384 dimensions sont projetés en 3D via UMAP, rendant visibles les proximités entre univers musicaux. Chaque point est un album. Des zones cohérentes émergent naturellement, révélant la structure latente du corpus.

14 000+ albums · UMAP · réduction dimensionnelle · visualisation interactive
04 — Music Pathfinder

Tracer un chemin
entre deux univers

Fonctionnalité expérimentale : interpolation vectorielle entre deux albums ou artistes pour générer des étapes de transition progressives. À chaque point interpolé, l'album réel le plus proche est retrouvé, avec un traitement spécifique de déduplication.

Interpolation vectorielle · déduplication · navigation progressive

Ce que ce projet démontre

Un projet à la croisée de l'IA appliquée, du génie logiciel et de l'UX autour d'un moteur intelligent.

NLP & Embeddings

Représentation de textes en vecteurs denses, Sentence-Transformers, similarité sémantique.

Vector Database

Indexation et recherche dans Milvus (HNSW), gestion de collections, requêtes vectorielles.

API Backend

Architecture FastAPI, endpoints RESTful, pipeline de données de bout en bout, Docker.

Intégration LLM

Prompt engineering avec Llama 3, traduction d'intentions naturelles en requêtes exploitables.

Data Visualisation

Projection UMAP, carte interactive de l'espace latent, exploration visuelle de 14 000 albums.

UX & Conception

Rendre accessibles des notions techniques complexes via une interface Streamlit ergonomique.

Architecture du projet

Le système repose sur une architecture découpée en briques indépendantes et orchestrées via Docker.

  • Frontend Streamlit — interface utilisateur interactive avec filtres, modes et visualisations
  • API FastAPI — couche applicative centrale, endpoints RESTful, logique métier
  • Milvus — base vectorielle pour stocker et interroger les embeddings (index HNSW)
  • Sentence-Transformers — conversion des textes en vecteurs 384 dimensions (all-MiniLM-L6-v2)
  • Llama 3 — interprétation LLM des requêtes abstraites (Vibe Wizard)
  • Docker — conteneurisation et orchestration des services

Ce que j'en retiens

Ce projet m'a permis d'aller plus loin qu'un projet purement académique classique — en abordant des sujets concrets comme la structuration d'un backend, l'indexation vectorielle, l'orchestration de services et l'expérience utilisateur autour d'un moteur intelligent.

Retour aux projets