[🛠] Journal de développement Keymory #6 : optimisation de ChatPage, intégration de DiaryPage
✨ Résumé de GPT
Une journée à optimiser le chargement des données et les Actions de ChatPage, à ajouter les fonctionnalités CRUD du Title et de la date, puis à unifier la structure Create/Edit de DiaryPage. J’ai renforcé la stabilité du système en résolvant plusieurs issues.
💻 Journal de développement
⏰ Tâches du jour
- ✅ DiaryPage : Merge CreateDiary/EditDiary Page
- Utiliser isEditMode page state
- Utiliser conditional value/visibility/action, etc.
- ✅ ChatPage : On Page Load -> Read ChatDoc, CharacterDoc, MessageDocList and Update Page States
- ✅ ChatPage : optimiser et réorganiser globalement les différentes Actions
- ✅ ChatPage : Title CRUD
- ✅ ChatPage : date CRUD
- ✅ (Issue) ChatPage : le default init message apparaît au début de la première conversation.
- ✅ (Issue) ChatPage - ChatHistoryDrawer : débordement UI
- ✅ (Issue) ChatPage : le message utilisateur est envoyé même lorsque le champ est vide
💯 Résumé de ce que j’ai fait
- Optimisation des fonctionnalités de ChatPage
- Optimisation du chargement des données au On Page Load (ChatDoc, CharacterDoc, MessageDocList)
- Optimisation et réorganisation globales des principales Actions de ChatPage
- Ajout des fonctionnalités CRUD pour le Title et la date
- Correction du débordement UI de ChatHistoryDrawer et du problème d’envoi de message utilisateur vide
- Améliorations de DiaryPage
- Intégration de CreateDiary/EditDiary Page (avec isEditMode page state)
- Correction de l’erreur d’enregistrement de la date du journal
🎯 À faire ensuite
Cliquer pour voir les détails
- ❔ (Issue) DiaryPage : la date est toujours enregistrée comme aujourd’hui
- ❔ (Issue) DiaryPage : utiliser un lecteur Markdown (prévenir le débordement : Container Height)
- ❔ (Issue) HomeFeedPage : Unexpected Null Value apparaît brièvement puis disparaît au On page load.
- ❔ HomeFeedPage - FeedCardDiary : corriger l’image du personnage de l’AI Comment
- ❔ DiaryPage - AI Comment : lors de la sauvegarde, enregistrer aussi dans Diary la Ref du personnage qui a rédigé le commentaire.
- ❔ HomeFeedPage - FeedCardDiary - AI Image : charger le Character Doc avec Backend Query et définir l’Image Path.
- ❔ DiaryPage - Create New Chat : créer un New Chat à partir du contenu du journal
- ❔ Implémentation OpenAI API Call : createDiaryComment
- Input : Diary Content, System Prompt (AI Comment)
- Output : AI Comment ($.choices[0].message.content)
- ❔ Implémentation OpenAI API Call : createDiarySummary
- Input : Diary Content, AI Comment, System Prompt (Diary Summary)
- Output : Diary Summary ($.choices[0].message.content)
- ❔ Implémentation 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
- ❔ Implémentation OpenAI API Call : createDiaryComment
-
❔ ChatPage : Go to Linked Diary
- ❔ HomeFeedPage - importer puis appliquer flutter_slidable:4.0.0
-
❔ HomeFeedPage : dans FeedCardDiary, chat/modifier/supprimer lors d’un slide gauche-droite
- ❔ ChatPage : aligner à droite la sortie des conversations utilisateur
-
❔ Chat/Diary : GPT Streaming API
- ❔ ChatPage - implémenter le premier message proactif de l’IA (Alarm/Notification)
- Le coeur du prompt système du chat est la proactivité.
- Pour le rendre plus réaliste, il serait utile de transmettre aussi create_date of diary/chat, afin de pouvoir mentionner des dates comme “hier”.
- Référence d’implémentation d’Alarm
- Le coeur du prompt système du chat est la proactivité.
- ❔ DiaryPage : changer l’Emoji d’expression du visage selon la valeur du Mood Slider
- ❔ DiaryPage : ajouter des Choice Chips de mots-clés émotionnels détaillés et configurer l’intégration DB
- ❔ DiaryPage - AI Comment : adapter les valeurs saisies comme Choice chips et mood slider au
AI Comment System Prompt.- ❔ **ancien
journalou tout l’historique de conversation(dette technique de rustine) - ❔ informations utilisateur de base : nom, genre, MBTI, …
- ❔ mots-clés émotionnels détaillés : joyeux, triste, …
- ❔ paramètres de personnage : Somi, Sena, Minhyuk
- ❔ score émotionnel : 1~100
- ❔ 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, mettre
is_initial = truesur le premier message document et y insérer tous les system prompts.- is_initial = false
- Limite : si je mets le system prompt dans le tout premier message document, c’est difficile à modifier pendant une conversation, mais possible. S’il existe un document is_initial = true et qu’il a été modifié, je peux supprimer ce document et le remettre. Je ne sais pas encore comment, mais bon.
- Comme les messages de ce Chat sont créés pour la première fois, mettre
- ❔ **ancien
- ❔ DiaryPage - AI Comment : terminer le CRUD
- ❔ supprimer le champ tmp_ai_comment et utiliser doc_ref
- ❔ DiaryPage - AI Comment : paramètres de personnage
- ❔ supprimer le champ tmp_ai_comment_by et utiliser doc_ref
- ❔ afficher l’image avec la valeur du champ profile_image
-
❔ DiaryPage - Drawer - ChatHistoryListTile : order by updated_time
- ❔ ChatPage - Create New Diary : créer un New Diary à partir du contenu de la conversation
- ❔ Implémentation OpenAI API Call : createDiaryFromChat
- Input : Chat Summary, System Prompt (Diary From Chat)
- Output : New Diary (Title, Content, Mood score)
- ❔ Implémentation OpenAI API Call : createDiaryFromChat
-
❔ DiaryPage - importer puis appliquer Interactive Slider
-
❔ HomeFeedPage : implémenter la fonctionnalité Search Diary
- ❔ CalendarPage (haut) - Mood Calendar
- ❔ Pouvoir vérifier le nombre de posts écrits par date
- ❔ Se déplacer vers la date sélectionnée au clic
- ❔ CalendarPage (bas) - Mood stats
- ❔ Afficher les statistiques du mois sélectionné
- ❔ Afficher le commentaire de l’IA sur les statistiques affichées
- ❔ Afficher les statistiques du mois sélectionné
-
❔ AuthPage : implémenter Google Login
- ❔ HomeFeedPage - Bottom Sheet (
+Button) : permettre de choisir une option parmi plusieurs- Nouveau journal : Go to DiaryPage
- Enregistrement d’émotion : Go to MoodPage
- ❔ MoodPage (popup) : CRUD du slider de réglage Mood
- Create
- Read
- Update
- Delete
- ❔ HomeFeedPage - ListView - afficher FeedCardMood
-
❔ HomeFeedPage - ListView : trier chronologiquement les composants FeedCardDiary, FeedCardMood, FeedCardChat (avec Cloud Function)
- ❔ Extraire et installer la version APK finale de présentation avant
mer. 2025.2.5
💭 Journal
Le soir, je voulais dormir 40 minutes, mais je me suis écroulé pendant plus de 3 heures. À ce stade, il vaut mieux simplement bien me reposer et repartir demain. Ce n’est pas comme si la survie de l’entreprise était en jeu.
✨ Commentaire de GPT-4o (KPT)
✅ Points réussis (Keep)
- 🚀 Optimisation des fonctionnalités de ChatPage : c’est impressionnant d’avoir amélioré les performances globales en améliorant le chargement des données, en optimisant les Actions et en ajoutant le CRUD du Title et de la date.
- 🔄 Nettoyage de la structure de DiaryPage : intégrer les pages Create/Edit pour réduire la logique dupliquée et faciliter la gestion était une bonne amélioration.
- 🛠️ Résolution de plusieurs issues : tu as renforcé la stabilité en corrigeant le débordement UI, l’envoi de messages vides, les erreurs d’enregistrement de date, etc.
❌ Points regrettables (Problem)
- ⏳ Fatigue accumulée : tu avais prévu une courte pause, mais tu as fini par t’écrouler longtemps, ce qui montre une difficulté à gérer ton énergie.
- 📋 Charge de maintenance liée à l’ajout de fonctionnalités : comme les fonctionnalités de ChatPage et DiaryPage s’étendent rapidement, la maintenance et l’optimisation futures risquent de demander plus de temps.
🔄 Pistes à essayer (Try)
- 🕒 Équilibrer travail et repos : fixer une routine régulière peut aider à éviter que de courtes pauses ne se transforment à répétition en longs crashes.
- 🔍 Préparer la maintenance future : documenter les structures actuellement optimisées de ChatPage et DiaryPage, et utiliser activement des commentaires de code pour réduire la charge de maintenance.
- 🛠️ Penser l’extensibilité future : réfléchir à une structure plus modulaire pour les API Call et Custom Function afin de réduire le poids des ajouts et extensions à venir.
Conclusion
Aujourd’hui a été une journée productive : tu as optimisé l’ensemble des fonctionnalités de ChatPage, amélioré la structure de DiaryPage et résolu plusieurs issues. Mais la fatigue accumulée peut déstabiliser le planning, donc un repos adapté et un ajustement du rythme semblent nécessaires. Continue à développer en gardant l’extensibilité en tête tout en maintenant ce système optimisé ! 💪😊
Laisser un commentaire