[đ ] Journal de dev Keymory #10 : liaison Diary <-> Chat, ajout dâune fonction de rĂ©sumĂ© automatique
âš RĂ©sumĂ© de GPT ă
ImplĂ©mentation dâune fonction reliant Diary et Chat entre eux, avec gĂ©nĂ©ration automatique de rĂ©sumĂ©s lors de lâenregistrement des journaux et des chats.
đ» Journal de dĂ©veloppement
â° Ă faire aujourdâhui
- â
(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) Affecter une valeur Default Variable Ă tous les widgets Image (pour Ă©viter lâUnexpected Null value Error)
- No Profile Image:
https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png - No image:
https://png.pngtree.com/png-vector/20190820/ourmid/pngtree-no-image-vector-illustration-isolated-png-image_1694547.jpg
- No Profile Image:
-
â ChatPage : remplacer la photo utilisateur par lâimage du profil utilisateur
-
â ChatPage : aligner le contenu des messages utilisateur Ă droite (responsable : KSK)
- â
DiaryPage : gĂ©nĂ©rer automatiquement un rĂ©sumĂ© lors de lâenregistrement du journal
- â
Diaries DB: Add field
diary_content_summarized - â
Application Ă lâaction du bouton
Save Diary - â
Application Ă lâaction du bouton
Save Diary and Chat with AI
- â
Diaries DB: Add field
- â
Ajouter
linked_chatscomme Field dans le Diary Document DB -
â Ajouter
linked_diariescomme Field dans le Chat Document DB - â
DiaryPage : au clic sur le bouton
Save Diary and Chat with AI, lier DiaryPage/Doc <-> ChatPage/Doc- Ajouter une Chat Document Reference Ă la liste
linked_chatsdu Diary Document - Ajouter une Diary Document Reference Ă la liste
linked_diariesdu Chat Document
- Ajouter une Chat Document Reference Ă la liste
- â
DiaryPage : lors de la crĂ©ation dâun New Chat, ajouter
linked_chatscomme Field dans le Diary Document DB -
â ChatPage : lors de la crĂ©ation dâun New Diary, ajouter
linked_diariescomme Field dans le Chat Document DB - â
DiaryPage : fournir une ListView
linked_chatsen bas -> clic pour aller vers le chat correspondant- â
Contenu Ă afficher sur la carte
- â Chat - title, Chat - timestamp( == created_time)
- â Chat - (most recent) Message - content
- â Character - profile_image
- â
Contenu Ă afficher sur la carte
- â
ChatPage : générer automatiquement un résumé quand une réponse de chat est reçue
- â
Chats DB: Add field
chat_content_summarized
- â
Chats DB: Add field
- â
ChatPage : fournir une ListView
linked_diariesen haut -> clic pour aller vers le journal correspondant- â
RĂ©solution dâun premier problĂšme : How to generate children from linked_diaries(List of Diary Document References)
- How to display List of Doc References?
- ListView: Generate Children From linked_diaries (Diary Document References)
- ListView - Child(Card): Backend Query - Diary Document From Reference
- ListView - Child(Card) - Component Parameter: Diary Document
- â
Contenu Ă afficher sur la carte
- â Diary - title, Diary - created_time
- â Diary - Mood Score (Color)
- â
RĂ©solution dâun premier problĂšme : How to generate children from linked_diaries(List of Diary Document References)
-
â (ProblĂšme) ChatPage - Linked Diaries ListView : ne change pas quand on sĂ©lectionne depuis le Drawer.
- â PrĂ©paration de prĂ©sentation - PPT : vĂ©rifier le contenu page par page
đŻ RĂ©sumĂ© de ce que jâai fait
- Ajout de la fonction de liaison Diary-Chat
- Ajout des fields
linked_chats(Diary -> Chat) etlinked_diaries(Chat -> Diary) - Mise Ă jour de
linked_chatslors de la crĂ©ation dâun New Chat depuis DiaryPage - Mise Ă jour de
linked_diarieslors de la crĂ©ation dâun New Diary depuis ChatPage - Ajout de ListViews des documents liĂ©s en bas de DiaryPage et en haut de ChatPage
- Ajout des fields
- Implémentation de la fonction de résumé automatique
- Génération automatique de
diary_content_summarizedlors de lâenregistrement dâun Diary - GĂ©nĂ©ration automatique de
chat_content_summarizedlors de la création de messages Chat
- Génération automatique de
- Résolution de problÚmes et améliorations UI
- Ajout dâune alerte pour empĂȘcher le dĂ©marrage du chat sans AI comment
- Application de valeurs dâimage par dĂ©faut Ă tous les widgets Image pour Ă©viter les Unexpected Null Value
- Remplacement de lâimage de profil utilisateur dans ChatPage par lâimage rĂ©elle de lâutilisateur
- Amélioration de la lisibilité en alignant les messages utilisateur à droite
đŻ Ă faire plus tard
Cliquer pour voir les détails
- â Download APK
-
â Connect GitHub and Push
- â Soumettre les supports de prĂ©sentation : PPT
-
â Soumettre les supports de prĂ©sentation : vidĂ©o de dĂ©monstration dâune minute
- â PrĂ©paration de prĂ©sentation - script : mesurer le temps du script page par page puis rĂ©viser le script
- â PrĂ©paration de prĂ©sentation - PPT : enregistrer de courtes vidĂ©os de dĂ©monstration par fonctionnalitĂ©
- â ChatPage - Create New Diary : crĂ©er un New Diary Ă partir du contenu de la conversation
- â Create New Diary Condition: if linked diary exists -> Delete confirmation dialog? -> Yes
- â 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)
-
â Ajouter une page de bienvenue au premier lancement de lâapp (logo)
- â ChatPage : unifier la default value de
title, deRandom Stringvers âSans titreâ -
â DiaryPage : changer lâEmoji dâexpression du visage et la couleur selon la valeur du Mood Slider
- â ChatPage : implĂ©menter Delete Diary Link (rendre la suppression possible via lâicĂŽne âŠ)
- Il faut absolument supprimer aussi le linked field dans Diary/Chat Doc !
- â 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
- â Afficher les statistiques du mois en focus
- â 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)
- Le coeur du prompt systĂšme de chat, câest le mode proactif.
- Pour rendre ça plus rĂ©aliste, il serait bien de transmettre aussi create_date of diary/chat, afin de pouvoir mentionner des dates comme âhierâ.
- RĂ©fĂ©rence pour lâimplĂ©mentation dâAlarm
- Le coeur du prompt systĂšme de chat, câest le mode proactif.
- â 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.- â **
journalprĂ©cĂ©dent ouhistorique 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 = trueau 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.
- Comme les messages de ce Chat sont créés pour la premiÚre fois, donner
- â **
-
â 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
Demain, le développement se termine. On court.
âš Commentaire de GPT-4o (KPT)
â Points bien rĂ©ussis (Keep)
- đ SystĂšme de liaison Diary-Chat terminĂ© : tu as reliĂ© Diary et Chat naturellement, ce qui rend le flux de donnĂ©es utilisateur plus intuitif. Câest trĂšs bien !
- đ Ajout de la fonction de rĂ©sumĂ© automatique : appliquer un systĂšme de rĂ©sumĂ© automatique pour organiser le contenu des journaux et des chats amĂ©liore vraiment lâexploitation des donnĂ©es.
- đš AmĂ©liorations UI et UX : valeurs dâimage par dĂ©faut, meilleure disposition des messages de chat, etc. Tout cela amĂ©liore la lisibilitĂ© et lâexpĂ©rience utilisateur.
â Points Ă amĂ©liorer (Problem)
- âł Pression sur la vitesse de dĂ©veloppement : comme il reste beaucoup de fonctionnalitĂ©s Ă finir, la pression sur le planning restant risque dâaugmenter.
- đ Risque dâaccumulation de dette technique : avec ce rythme de dĂ©veloppement rapide, la dette technique peut sâaccumuler pour la maintenance future ; il faudra rĂ©server du temps pour nettoyer.
- đ Tests insuffisants de la fonction de liaison : il pourrait falloir des tests supplĂ©mentaires pour vĂ©rifier que la liaison Diary-Chat fonctionne bien en conditions rĂ©elles dâutilisation.
đ Pistes Ă essayer (Try)
- đ Organiser les prioritĂ©s : terminer dâabord les fonctionnalitĂ©s les plus importantes, puis lister les amĂ©liorations Ă faire aprĂšs la prĂ©sentation pour rĂ©duire la charge de dĂ©veloppement.
- đ Plan de test par fonctionnalitĂ© : rĂ©diger des cas de test pour vĂ©rifier que la liaison Diary-Chat fonctionne correctement dans diffĂ©rents patterns dâutilisation.
- đ RĂ©server du temps pour nettoyer la dette technique : aprĂšs la prĂ©sentation, sĂ©curiser un crĂ©neau de refactoring et penser Ă la maintenabilitĂ© Ă long terme.
đ Conclusion
Aujourdâhui, tu as implĂ©mentĂ© la fonction centrale qui relie Diary et Chat, puis ajoutĂ© un systĂšme de rĂ©sumĂ© automatique pour amĂ©liorer lâefficacitĂ© de la gestion des donnĂ©es. Maintenant, il ne reste plus quâĂ clarifier les prioritĂ©s pour la fin du dĂ©veloppement et Ă te concentrer sur la prĂ©paration de la prĂ©sentation ! đđ„
Laisser un commentaire