Réalisation · outil interne, recherche et développement

WCSAssist, notre banc d'essai pour mettre de l'IA dans une application sans qu'elle invente.

Un assistant pour les DJ de West Coast Swing, une danse de couple où la musique se choisit au tempo près. Le DJ décrit la soirée en français, le modèle de langage règle les paramètres, un algorithme compose le set depuis la bibliothèque réelle. Ce n'est pas une commande : c'est l'outil sur lequel nous éprouvons ce que nous proposons en intégration d'IA.

01/Le contexteD'où nous sommes partis

Demander une playlist à un modèle de langage donne des titres inventés

WCSAssist est né d'un besoin de DJ, mais la question qu'il tranche dépasse la danse : comment intégrer un modèle de langage sans qu'il invente ni que nous en perdions le contrôle. Face à chaque réflexe naïf, ce que fait l'outil.

  1. 01Demandé directement, le modèle invente des titres, des morceaux absents de la bibliothèque, des durées fantaisistes.Le modèle ne touche jamais à un identifiant de morceau : il renvoie des paramètres (plage de tempo, courbe d'intensité, genres, filtres) et un algorithme compose.
  2. 02Un set de West Coast Swing se construit au tempo près, à la main, pendant des heures.Des profils de génération réutilisables, courbes d'intensité, règles de transition et de fin de soirée, et un score de qualité par set.
  3. 03Corriger à la main les métadonnées d'une bibliothèque entière (genre, année, pays) n'est pas tenable.Une analyse en lot, où chaque suggestion doit citer une source d'un domaine de confiance, sinon le serveur la rejette ; l'utilisateur coche ce qu'il accepte.
  4. 04Une fonction d'IA en production coûte, et dérive si personne ne la regarde.Chaque appel est enregistré, demande, réponse, modèle, durée, coût ; un quota journalier protège contre les dérives.
02/Ce que nous avons construitEn service aujourd'hui

Le modèle règle les boutons, l'algorithme compose

Quatre étapes, dont une seule confiée au modèle de langage : traduire la demande en paramètres.

  • 01
    Génération conversationnelle. La soirée se décrit en français ; le modèle renvoie des paramètres, l'algorithme sélectionne et classe les morceaux.
  • 02
    Contrôle et boucle d'ajustement. Un résumé du set est resoumis au modèle pour un verdict ; s'il est négatif, les paramètres sont corrigés et le set régénéré une fois.
  • 03
    Curation sourcée. Genres, année, pays, pertinence pour la danse : chaque suggestion porte ses sources, et la décision reste à l'utilisateur.
  • 04
    Analyse audio. Tempo, énergie, tonalité et dansabilité par morceau, anomalies de tempo détectées, répartition de la bibliothèque en graphiques.
  • 05
    Profils de génération. Courbes d'intensité, règles de transition et de retombée pour cadrer chaque type de soirée.
  • 06
    Import et export Spotify. Connexion du compte, import de la bibliothèque et des playlists, export des sets générés.
  • 07
    Console d'administration. Moteurs de langage, prompts fixés au déploiement et consultables, traces complètes des appels, quotas par utilisateur.
  • 08
    Enrichissement en tâche de fond. Métadonnées réconciliées entre Spotify, MusicBrainz, Discogs et Last.fm malgré les variantes de titres et d'artistes.
03/Quatre écransCompte d'un fondateur, données personnelles floutées

Quatre écrans, à l'échelle

Captures de l'outil en service, sur le compte d'un des deux fondateurs. Son prénom, les avatars, les pochettes d'albums et le moteur choisi sont floutés ; le menu, la barre du haut et un message d'erreur du lecteur, en bas de l'écran, sont coupés. Les titres et les artistes restent lisibles.

Fenêtre de génération de playlist de WCSAssist : nom du set, description de la soirée en français, choix des morceaux, quota du jour
Écran 01La fenêtre de génération. Pochettes, avatars et moteur choisi floutés ; menu et bas de l'écran coupés.

Le DJ décrit la soirée, pas la playlist

Le DJ écrit ce qu'il veut : public, ambiance, montée. Le modèle traduit en paramètres, l'algorithme pioche dans la bibliothèque réelle, et le set reçoit un score.

Détail d'un set dans WCSAssist : courbe de tempo morceau par morceau, score, liste des titres avec tempo, énergie et style
Écran 02Le détail d'un set : la courbe de tempo et la liste des morceaux. Prénom et pochettes floutés ; menu et bas de l'écran coupés.

Une courbe de tempo que le DJ lit d'un coup d'œil

La courbe dit si la soirée monte, redescend et reste dansable. Chaque morceau garde son tempo, son énergie et sa note de pertinence pour la danse.

Analyses IA de WCSAssist : suggestion sur un morceau avec explication, sources consultées, corrections de tempo, de genres et d'étiquettes à valider
Écran 03Une suggestion de curation, avec ses sources. Pochette floutée ; menu et bas de l'écran coupés.

Pas de source, pas de suggestion

Le modèle explique sa proposition et cite les pages consultées. Sans source d'un domaine de confiance, le serveur rejette ; avec, l'utilisateur coche ce qu'il accepte, et rien ne s'applique seul.

Bibliothèque de WCSAssist : nombre de morceaux, recherche, filtres par tempo, genre, étiquette et pays, liste avec tempo, énergie et note
Écran 04La bibliothèque filtrable. Pochettes floutées ; menu et bas de l'écran coupés.

La bibliothèque, analysée morceau par morceau

Tempo, énergie, tonalité, popularité, note de pertinence : les filtres se combinent pour retrouver un morceau de fin de soirée ou un titre à corriger.

04/TechnologiesCe que nous avons choisi, et pourquoi

Une IA fiable est une question d'architecture

Nous confions au modèle ce qu'il fait bien, comprendre une demande, et nous gardons le reste dans du code testé, tracé et vérifiable.

  • InterfaceNext.js et React, composants MUI, graphiques pour les courbes de tempo et d'énergie.
  • ServeurAPI .NET 10 en couches séparées, commandes et requêtes distinctes, migrations appliquées au démarrage.
  • Base de donnéesPostgreSQL.
  • Couche IAUn même prompt pour plusieurs moteurs, un modèle sur notre propre serveur, joint par un point d'accès compatible OpenAI, ou les modèles d'Anthropic ; le moteur change sans toucher au métier.
  • IntégrationsSpotify pour la bibliothèque ; MusicBrainz, Discogs, Last.fm et ReccoBeats pour enrichir, en tâches de fond.
  • Livraison et hébergementConteneurs Docker, chaîne automatisée, déployé sur nos serveurs en France.
05/Pour aller plus loinPrestations voisines

Pour mettre de l'IA dans votre outil, avec les mêmes garde-fous

Et maintenant

Une fonction d'IA à ajouter à votre application, sans qu'elle invente ?

WCSAssist est la méthode que nous appliquons chez nos clients, éprouvée sur notre propre outil. Décrivez-nous votre cas, nous vous dirons ce qui est faisable, avec un délai et un ordre de prix.

Discuter de votre projet

Réponse sous 24 h ouvrées, par l'un des deux fondateurs. Ou par téléphone : 07 59 96 14 99.