Sajucat - un service d’analyse du saju créé avec son propre moteur de calendrier manseoryeok
Il s’agit d’un service d’analyse du saju que j’ai créé avec Claude alors que je n’avais quasiment aucune connaissance en Myeongrihak (les quatre piliers du destin) ni en développement.
J’avais terminé une version démo il y a environ une semaine et j’avais déjà écrit un post à ce sujet, mais depuis, j’ai plus que doublé le niveau de détail de l’analyse !! (À cause des limites assez radines de Claude, j’ai carrément lâché 100 dollars pour améliorer la qualité...)
Pourquoi je l’ai créé
Quand on utilise des apps de saju, on obtient souvent juste des résultats du genre « vous êtes fort en sin-gang, c’est positif », sans voir le processus qui mène à ce jugement. Que le Myeongrihak relève de la superstition ou des statistiques, je me suis dit que si la logique de décision était présentée de manière transparente, le saju pourrait peut-être devenir un « outil d’apprentissage ».
Ce qui était techniquement intéressant
Implémentation directe du manseoryeok : j’ai essayé d’utiliser la bibliothèque manseoryeok de npm (@fullstackfamily/manseryeok), mais elle affichait jusqu’à ~21 % d’erreur aux dates de changement de terme solaire. J’ai donc créé mon propre moteur de manseoryeok à partir des données de la KASI (Institut coréen de recherche en astronomie et sciences spatiales). Il inclut même la correction selon le temps solaire vrai et passe 43 cas de test.
Visualisation des relations hap/chung/hyeong/hae/pa : entre les 8 caractères du saju, il existe des relations de combinaison (合), conflit (沖), punition (刑), nuisance (害) et rupture (破). Les représenter visuellement s’est avéré plus compliqué que prévu. Si on n’affichait que les relations entre piliers adjacents, on ratait des relations non adjacentes comme entre l’heure et l’année. J’ai résolu ça en décomposant chaque relation en carte individuelle.
Logique de l’horoscope quotidien : je calcule un score global à partir des relations de conflit/combinaison entre le jour courant (日辰) et les 4 piliers du saju de l’utilisateur, plus les douze phases de fortune et les dix divinités des troncs célestes. J’ai aussi créé un script qui vérifie automatiquement 480 combinaisons afin que les recommandations favorables/défavorables ne se contredisent pas.
Résolution des hallucinations DeepSeek sur les ganji : j’utilise l’API DeepSeek pour le chat de consultation saju, mais elle hallucine par exemple en affirmant que « 2026 est l’année eulmyo » (bonne réponse : byeongo). J’ai ajouté au prompt la méthode de calcul des ganji et des exemples pour l’inciter à faire le calcul à rebours.
Stack
- Front : Vite + React (un seul
App.jsxd’environ 4 300 lignes...) - Back-end : Node.js + Express + SQLite
- IA : DeepSeek V3 (chat), Gemini Flash (analyse approfondie)
- Manseoryeok :
saju-core.jsmaison + données des termes solaires de la KASI - Rendu des caractères chinois : HanziWriter (style calligraphique)
- Serveur : VPS Contabo
Structure
L’onglet gratuit (personnage de chat) affiche une analyse de base du saju, et l’onglet payant (personnage de Barimansin) propose une interprétation approfondie. J’ai bien séparé gratuit et payant pour l’instant, mais la qualité est encore trop gênante pour faire payer, donc tout est gratuit !! J’ai aussi placé un peu partout des cartes explicatives où le chat commente les étapes pour que même quelqu’un qui ne connaît pas bien le saju puisse apprendre progressivement.
Quelques retours me seraient vraiment très utiles !!!
3 commentaires
Une très bonne interface utilisateur. Le ton condescendant du chat à mon égard m’a un peu surpris, mais c’est vraiment facile à utiliser et très agréable.
Le design est réussi et la qualité est élevée !
Waouh, merci !!