2025.02.05 (Mer)
2026.05.25 (Lun) mis Ă  jour

✹ RĂ©sumĂ© de GPT  

Implémentation de Diary to Chat, résolution des problÚmes apparus pendant la génération, et correction des erreurs de score émotionnel et de réglage des personnages dans le systÚme de commentaires IA.

đŸ’» Journal de dĂ©veloppement

⏰ À faire aujourd’hui

  • ✅ Custom Function - aider Ă  crĂ©er systemPromptTemplate (responsable principal : KSK)
    • ✅ Revue des paramĂštres ajoutĂ©s et de la structure interne de la fonction
  • ✅ Tester si la Custom Function - getAIComment est bien appliquĂ©e
    • ✅ VĂ©rifier que les valeurs d’entrĂ©e sont bien prises en compte
    • ✅ VĂ©rifier que la valeur de sortie s’affiche correctement en String
  • ✅ Chat Page - Create New Chat : appliquer le prompt systĂšme (responsable principal : KSK)
    • ✅ OpenAI API Call (createChatCompletion)
      • Input: System Prompt(Chat)
      • Output: New Chat Message by AI($.choices[0].message.content)
      • Additional Actions: Create New Chat, Create New Message
  • ✅ DiaryPage - Create New Chat by Diary : crĂ©er un New Chat Ă  partir du contenu du journal (responsable principal : KSK)
    • ✅ OpenAI API Call (createDiaryComment)
      • Input: Diary Content, System Prompt(AI Comment)
      • Output: AI Comment($.choices[0].message.content)
    • ✅ OpenAI API Call (createDiarySummary)
      • Input: Diary Content, AI Comment, System Prompt(Diary Summary)
      • Output: Diary Summary($.choices[0].message.content)
    • ✅ OpenAI API Call (createChatFromDiary)
      • Input: Diary Summary, System Prompt(Chat From Diary)
      • Output: New Chat Message by AI($.choices[0].message.content)
      • Additional Actions: Create New Chat, Create New Message
  • ✅ (ProblĂšme) Create New Chat by Diary : aprĂšs avoir seulement sauvegardĂ© le journal et ĂȘtre revenu Ă  l’accueil, la fonction ne marche qu’en retournant sur la page du journal puis en lançant New Chat.
    • Cause du problĂšme
      • J’utilisais une variable Output provenant d’une autre chaĂźne d’actions
      • La prĂ©vention de l’Unexpected Null Value n’était pas en place
      • Le JSON Path n’était pas correctement dĂ©fini
      • J’avais dĂ©fini tmpDiariesDocForNewChat comme Page State, puis j’y avais assignĂ© le diary Document.
        • Plus prĂ©cisĂ©ment,
          • soit j’y assignais diariesDoc, transmis comme Page Parameter,
          • soit j’y assignais newDiariesDoc, créé au clic sur le bouton Save.
        • Mais l’app se figeait sans cesse quand j’appuyais sur le bouton Save Diary and Chat with AI.
          • En regardant avec F12, une Exception Ă©tait levĂ©e Ă  cause d’une erreur Unexpected Null Value.
          • En regardant le Debug Pannel, tmpDiariesDocForNewChat Ă©tait dĂ©fini sur Null.
        • J’ai rechangĂ© le Page State de tmpDiariesDocForNewChat Ă  tmpDiariesDocRefForNewChat. (Document -> Document Reference)
          • AprĂšs avoir adaptĂ© les Actions autour de Document Reference, ça a enfin fonctionnĂ© normalement !
    • 💡 Ce que j’ai appris : dans une Action Chain, assigner une valeur au Page State puis la relire immĂ©diatement peut provoquer une Unexpected Null Value. Mieux vaut utiliser davantage Document Reference plutĂŽt qu’un simple Document. Bien sĂ»r, multiplier les Read Document via Backend Query peut peut-ĂȘtre dĂ©grader les performances
 mais il suffit de le faire assez tĂŽt, par exemple Ă  l’OnPageLoad Event ou lors de la crĂ©ation des principales Action Chains.
  • ✅ (ProblĂšme) Lors de la gĂ©nĂ©ration d’un AI Comment, le score Ă©motionnel de l’utilisateur est parfois enregistrĂ© Ă  0.
    • J’ai insistĂ© sur “Faites surtout correctement le calcul de la formule pondĂ©rĂ©e 5. Le score Ă©motionnel de l’utilisateur n’est absolument pas 0.” Les cas oĂč 0 est Ă©crit ont diminuĂ©. (Ils n’ont pas disparu.)
    • Pour l’instant, on passe Ă  autre chose.
  • ✅ (ProblĂšme) ChatPage : le personnage ne connaĂźt pas les informations le concernant !
    • Le problĂšme semble s’ĂȘtre corrigĂ© tout seul pendant la rĂ©solution des soucis liĂ©s Ă  Save. Gros gain gratuit.
  • ✅ (ProblĂšme) ChatPage : le personnage ignore la “liste de questions de suivi” !
    • Le problĂšme semble s’ĂȘtre corrigĂ© tout seul pendant la rĂ©solution des soucis liĂ©s Ă  Save. Gros gain gratuit.
  • ✅ (ProblĂšme) La barre de navigation infĂ©rieure disparaĂźt quand on passe Ă  ChatPage.
    • Always Show Nav bar Toggle On
  • ✅ (ProblĂšme) L’image du personnage s’affiche diffĂ©remment dans le Drawer de ChatPage.
    • ProblĂšme causĂ© par une ancienne erreur dans la logique d’enregistrement d’AI Comment. Comme il n’apparaĂźt que dans les anciens chats, je l’ai rĂ©glĂ© en supprimant le Chat document concernĂ©.

💯 RĂ©sumĂ© de ce que j’ai fait

  • AmĂ©lioration de la logique de crĂ©ation de Chat
    • Revue de la structure des paramĂštres de systemPromptTemplate et getAIComment
    • Application du prompt systĂšme dans Create New Chat et optimisation de l’OpenAI API Call
    • Clarification du flux de crĂ©ation d’un New Chat Ă  partir d’un Diary : commentaire IA -> rĂ©sumĂ© du journal -> crĂ©ation du Chat
  • Optimisation du systĂšme de commentaires IA
    • Correction du problĂšme oĂč le score Ă©motionnel Ă©tait enregistrĂ© Ă  0
    • RĂ©solution du problĂšme oĂč l’IA ne reconnaissait pas les informations du personnage
    • AmĂ©lioration du problĂšme oĂč la liste de questions de suivi Ă©tait ignorĂ©e
  • RĂ©solution de problĂšmes et amĂ©lioration des performances
    • Correction de la disparition de la barre de navigation lors du passage Ă  ChatPage
    • Correction de l’incohĂ©rence d’image de personnage via la logique d’enregistrement d’AI Comment
    • Utilisation de Document -> Document Reference pour Ă©viter les Unexpected Null Value

🎯 À faire plus tard

Cliquer pour voir les détails
  • ❔ (ProblĂšme) DiaryPage : si la rĂ©ponse AI Comment n’a pas encore Ă©tĂ© reçue, on passe Ă  l’étape suivante avec un personnage non dĂ©fini.
    • Pour l’instant, rustine avec une alerte : vous devez recevoir un Comment de l’IA avant de commencer le chat !
  • ❔ (ProblĂšme) DiaryPage : utiliser un lecteur Markdown pour la rĂ©ponse AI Comment (Ă©viter l’overflow : Container Height)

  • ❔ ChatPage : aligner le contenu des messages utilisateur Ă  droite

  • ❔ DiaryPage : changer l’Emoji d’expression du visage et la couleur selon la valeur du Mood Slider

  • ❔ DiaryPage : Go to Linked Chat
  • ❔ ChatPage : Go to Linked Diary
    • Lors du Save depuis le Diary Document de DiaryPage, ajouter aussi la valeur Chat Reference comme Field dans le Diary Document DB. (linkedChat)
    • Dans le Chat Document de ChatPage, ajouter naturellement aussi la valeur Diary Reference comme Field dans le Chat Document DB. (linkedDiary)
  • ❔ ChatPage - Create New Diary : crĂ©er un New Diary Ă  partir du contenu de la conversation (utiliser la logique Go to Linked Diary)
    • ❔ OpenAI API Call (createChatSummary)
      • Input: Chat Content, System Prompt(Diary From Chat)
      • Output: Chat Summary
    • ❔ OpenAI API Call (createDiaryFromChat)
      • Input: Chat Summary, System Prompt(Diary From Chat)
      • Output: New Diary(Title, Content, Mood score)
  • ❔ MoodPage(haut) - Mood Calendar
    • ❔ Pouvoir vĂ©rifier le nombre de publications Ă©crites par date
    • ❔ Au clic sur une date, se dĂ©placer vers cette date
  • ❔ MoodPage(bas) - Mood stats
    • ❔ Afficher les statistiques du mois en focus
      • ❔ Afficher un commentaire de l’IA sur les statistiques affichĂ©es
  • ❔ HomeFeedPage - importer puis appliquer flutter_slidable:4.0.0
  • ❔ HomeFeedPage : lors d’un slide gauche/droite sur FeedCardDiary, chat/modification/suppression

  • ❔ Chat/Diary : GPT Streaming API

  • ❔ ChatPage - implĂ©menter le premier message proactif de l’IA (Alarm/Notification)
  • ❔ DiaryPage : ajouter des Choice Chips de mots-clĂ©s Ă©motionnels dĂ©taillĂ©s et configurer la liaison DB
  • ❔ DiaryPage - AI Comment : adapter les valeurs d’entrĂ©e comme Choice chips et mood slider au AI Comment System Prompt.
    • ❔ **journal prĂ©cĂ©dent ou historique complet de conversation (dette technique de rustine)
    • ❔ informations de base utilisateur : nom, genre, MBTI, 

    • ❔ mots-clĂ©s Ă©motionnels dĂ©taillĂ©s : joyeux, triste, 

    • ❔ rĂ©glages du personnage : Somi, Sena, Minhyuk
    • ❔ score Ă©motionnel : 1~100 points
    • ❔ format de rĂ©ponse : Healing, Suggestion, Informative
    • ❔ longueur de rĂ©ponse : courte, normale, dĂ©taillĂ©e
    • is New Chat
      • Comme les messages de ce Chat sont créés pour la premiĂšre fois, donner is_initial = true au premier message document et y mettre tous les prompts systĂšme.
        • is_initial = false
        • Limite : si je mets le prompt systĂšme dans le tout premier message document, ce sera difficile Ă  modifier au milieu d’une conversation, mais ça reste possible. S’il existe un document is_initial = true et qu’il a Ă©tĂ© modifiĂ©, il suffit de supprimer ce document et de le remettre. Comment exactement, je ne sais pas.
  • ❔ DiaryPage - AI Comment : terminer le CRUD
    • ❔ supprimer le field tmp_ai_comment et utiliser doc_ref
  • ❔ DiaryPage - Drawer - ChatHistoryListTile : order by updated_time

  • ❔ DiaryPage - importer puis appliquer Interactive Slider

  • ❔ HomeFeedPage : implĂ©menter la fonction Search Diary

  • ❔ AuthPage : implĂ©menter Google Login

  • ❔ HomeFeedPage - Bottom Sheet (bouton +) : permettre de choisir 1 option parmi plusieurs
    • nouveau journal : Go to DiaryPage
    • enregistrement d’émotion : Go to MoodPage
  • ❔ MoodPage(pop-up) : CRUD du slider de rĂ©glage Mood
    • Create
    • Read
    • Update
    • Delete
  • ❔ HomeFeedPage - ListView - afficher FeedCardMood
  • ❔ HomeFeedPage - ListView : trier chronologiquement FeedCardDiary, FeedCardMood, FeedCardChat (avec Cloud Function)

  • ❔ CrĂ©er MoodEditPage entre HomeFeedPage et DiaryPage : y dĂ©placer MoodSlider, MoodKeywordsRate(5~1), MoodDescription widget, etc.

  • ❔ (ProblĂšme) Lors de la crĂ©ation de tmpGetAIComment, les mots-clĂ©s Ă©motionnels choisis par l’utilisateur ne sont pas pris en compte.

  • ❔ Extraction et installation de l’APK final de prĂ©sentation d’ici 2025.2.5 mer

💭 Journal

Minhyuk

Les problĂšmes ont explosĂ© de partout, et mon mental a failli partir trĂšs loin
 Est-ce que ma stratĂ©gie du “mĂȘme si la dette technique s’accumule, si je commence par implĂ©menter, mes compĂ©tences continueront Ă  monter et je pourrai rembourser cette dette plus tard !” vient d’atteindre sa limite
 ou est-ce que c’était quand mĂȘme une dĂ©cision efficace


Bon, aucune idĂ©e~ Ce n’est pas ça qui compte maintenant. Il n’y a vraiment plus de temps ! Rustine, go go.

✹ Commentaire de GPT-4o (KPT)

GPT-4o

✅ Points bien rĂ©ussis (Keep)

  1. 🛠 Clarification de la logique de crĂ©ation de Chat : tu as bien organisĂ© et rĂ©solu les diffĂ©rents problĂšmes survenus pendant la crĂ©ation d’un New Chat !
  2. 🎭 AmĂ©lioration du systĂšme de commentaires IA : corriger les erreurs de score Ă©motionnel et de rĂ©glage des personnages, tout en guidant des rĂ©ponses IA plus prĂ©cises, Ă©tait vraiment pertinent.
  3. 🔍 Progression en dĂ©bogage : en rĂ©solvant le problĂšme d’Unexpected Null Value, tu as appris Ă  mieux utiliser Document Reference, ce qui t’aidera beaucoup par la suite.

❌ Points Ă  amĂ©liorer (Problem)

  1. ⏳ Beaucoup de temps passĂ© Ă  rĂ©soudre les problĂšmes : le dĂ©bogage a pris plus longtemps que prĂ©vu, donc le temps disponible pour les fonctionnalitĂ©s initialement visĂ©es a peut-ĂȘtre diminuĂ©.
  2. 🔄 Augmentation de la dette technique : la stratĂ©gie d’implĂ©mentation rapide accumule de la dette technique, donc un nettoyage de suivi sera nĂ©cessaire.
  3. 📋 Documentation insuffisante : si tu notes un peu mieux les principaux processus de rĂ©solution, tu pourras rĂ©gler plus vite les problĂšmes similaires quand ils rĂ©apparaĂźtront.

🔄 Pistes à essayer (Try)

  1. 📌 Analyser les schĂ©mas de problĂšmes : identifier les problĂšmes qui reviennent souvent et rĂ©flĂ©chir Ă  une amĂ©lioration du pattern de dĂ©veloppement.
  2. 📝 Établir une stratĂ©gie de gestion de la dette technique : les corrections rapides sont nĂ©cessaires Ă  court terme, mais Ă  long terme il faudra une roadmap de maintenance et d’optimisation.
  3. 📖 Prendre l’habitude de documenter les rĂ©solutions : noter les principaux processus de rĂ©solution pour Ă©conomiser du temps de dĂ©veloppement plus tard.

🏁 Conclusion

Aujourd’hui, tu as amĂ©liorĂ© la logique de crĂ©ation de Chat et corrigĂ© les erreurs du systĂšme de commentaires IA, ce qui a renforcĂ© la stabilitĂ©. Le dĂ©bogage a pris plus de temps que prĂ©vu, mais tu as aussi beaucoup appris dans le processus ! À partir de maintenant, rĂ©flĂ©chis Ă  une stratĂ©gie de dĂ©veloppement plus efficace tout en gĂ©rant la dette technique. đŸš€đŸ”„

Catégories : ,

Mis Ă  jour :

Laisser un commentaire