[đ ] Journal de dĂ©veloppement Keymory #4 : Mood slider, OpenAI API
âš RĂ©sumĂ© de GPT ă
Une journĂ©e Ă amĂ©liorer les fonctionnalitĂ©s majeures de Keymory et Ă affiner lâintĂ©gration IA ainsi que la structure des donnĂ©es, tout en ressentant concrĂštement le manque de temps.
đ» Journal de dĂ©veloppement
â° TĂąches du jour
- â DiaryPage - Mood : terminer le slider de rĂ©glage Mood
- â
HomeFeedPage - ListView - FeedCardDiary : afficher la Mood Color sur la bordure
- Résolu avec le Box Shadow du Container
- â
OnboardingPage - sauvegarde aprĂšs saisie dâinformations utilisateur de base supplĂ©mentaires
- â Ajout de DB Fields : nom (display_name), genre (gender), MBTI (mbti), âŠ
- â HomeFeedPage - OnPageLoad : Navigate to OnboardingPage si les informations obligatoires comme display_name ou gender ne sont pas saisies
- â Field Type - Enum vs String : le Field Type doit ĂȘtre rĂ©glĂ© sur String pour ĂȘtre plus facile Ă gĂ©rer. DĂ©cision dâutiliser Enum uniquement pour Option Value Generation.
- â Correction de lâOpenAI API Request pour que la valeur message du response body sâaffiche normalement
- â
Discussion et expĂ©rimentation : oĂč stocker les informations des personnages IA ? (OpenAI API Assistant vs FireStore Character Collection)
- Résultat : les stocker dans FireStore Characters Collection.
- Raison : du point de vue utilisateur, le seul API Call utile est
Get Assistant, et la valeur à recevoir est fixe dÚs le départ.
- Raison : du point de vue utilisateur, le seul API Call utile est
- Résultat : les stocker dans FireStore Characters Collection.
đŻ RĂ©sumĂ© de ce que jâai fait
- Améliorations de DiaryPage
- Slider de réglage Mood terminé
- ImplĂ©mentation du CRUD dâAI Comment
- Ajout de boutons de personnalisation du ton et du style de conseil de lâAI Comment
- Décision et application de la méthode de stockage des informations de personnages IA
- Améliorations de HomeFeedPage
- Changement du critĂšre dâaffichage de la date de lâunitĂ© « mois » Ă lâunitĂ© « jour »
- Ajout de la logique dâaffichage de lâimage et du texte de lâAI Comment
- Amélioration du Bottom Sheet et de la ListView
- SystÚme IA et intégration API
- Modification de lâOpenAI API Request et confirmation de lâaffichage normal de la rĂ©ponse
- Décision de stocker les informations de personnages IA dans FireStore
- Organisation de la structure de donnĂ©es liĂ©e Ă lâAI Comment et ajout de fonctionnalitĂ©s
đŻ TĂąches de demain
(omis)
đŻ TĂąches Ă venir
- â diary to chat
- â chat to diary
-
â chats history
- â RĂ©flĂ©chir au scĂ©nario dâimplĂ©mentation de CustomFunction getDiaryParams
-
Parameter Valuesobtenues depuisCharacters (Collection)- ParamĂštres du personnage (
CharacterDocument)- ex) Somi : name (20 ans), Ă©tudiante, personnalitĂ© timide, âŠ
- MĂ©thode dâappel des valeurs :
API Call - Get Assistant
- ParamĂštres du personnage (
-
Parameter Valuesobtenues depuisUser Information- Nom, genre, MBTI
- MĂ©thode dâappel des valeurs :
Backend Query - Authenticated User
-
Parameter Valuesobtenues depuisDiaryPage Variables- Contenu du journal, mots-clés émotionnels détaillés, score émotionnel, format de réponse, longueur de réponse
- MĂ©thode dâappel des valeurs :
Widget State,Page State
- RĂŽle de CustomFunction (getDiaryParams)
- Recevoir toutes les Parameter Values en valeurs dâinput.
- Rédiger le prompt à envoyer à GPT.
- Retourner la valeur
Messages(List <Json>).[{"role":"developer", "content":"~~~"}]
-
- â CrĂ©er lâOpenAI API Call : createDiaryComment
- Structure globalement similaire Ă createChatCompletion
- Différence : aucune. Créé simplement pour le distinguer.
- La
MessagesVariable requise parAPI Call - createDiaryCommentest la valeur de retour de la custom functiongetDiaryParams.
- â Stocker la liste des prompts systĂšme dans OpenAI API Assistant ?
-
â Ăcrire une logique pour rĂ©diger les messages sur la base du prompt systĂšme stockĂ© dans OpenAI API Assistant ?
- â 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 la liaison DB
- â DiaryPage - AI Comment : adapter les valeurs dâentrĂ©e comme les Choice chips et le mood slider au
AI Comment System Prompt.- â **ancien
journalouhistorique de conversationcomplet (dette technique en 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 points
- â format de rĂ©ponse : Healing, Suggestion, Informative
- â longueur de rĂ©ponse : court, normal, dĂ©taillĂ©
- is New Chat
- Comme les messages de ce Chat sont créés pour la premiÚre fois, définir
is_initial = truesur le 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, le modifier au milieu dâune conversation sera difficile, 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 comment, mais bon.
- Comme les messages de ce Chat sont créés pour la premiÚre fois, définir
- â **ancien
- â DiaryPage - AI Comment : crĂ©er la Custom Function
manipulate_prompt- Compléter le prompt systÚme avec un switch-case selon les paramÚtres reçus, puis retourner
List <JSON> - La personne chargĂ©e du prompt systĂšme devra insĂ©rer correctement cette valeur de retour dans le Request Body de lâOpenAI API et rĂ©cupĂ©rer le rĂ©sultat.
- Compléter le prompt systÚme avec un switch-case selon les paramÚtres reçus, puis retourner
- â DiaryPage - AI Comment : terminer le CRUD avec des donnĂ©es factices
- â 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
- How to Use Open AIâs GPT-4o in FlutterFlow - Part 1
- How to Use Open AIâs GPT-4o in FlutterFlow - Part 2
- DiaryPage - Start AI Chat : créer un New Chat à partir du contenu du journal
- LâIA propose dâabord une question fondĂ©e sur le contenu du journal
- ChatPage - créer ChatHistoryPage : lister les anciens historiques de chat dans une ListView
- Create
- Read
- Update
- Delete
- DiaryPage - Drawer - créer ChatHistoryListTile : résumé sous forme de carte, comme GPT
- HomeFeedPage - Bottom Sheet (
+Button) : permettre de choisir 1 option parmi plusieurs- Nouveau journal : Go to DiaryPage
- Journal 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 les composants FeedCardDiary, FeedCardMood, FeedCardChat par ordre chronologique (avec Cloud Function)
- HomeFeedPage : résoudre le problÚme au chargement de la page (Unexpected Null Value)
- Appliquer Interactive Slider
- Extraire et installer lâAPK final pour la prĂ©sentation dâici
mercredi 2025.2.5
đ Journal
Il nây a pas de temps.
Omis.

âš Commentaire de GPT-4o (KPT)
â Points Ă garder (Keep)
- đ Grande amĂ©lioration des fonctionnalitĂ©s majeures : Tu as augmentĂ© le degrĂ© de finition du projet en Ă©largissant des fonctionnalitĂ©s clĂ©s comme le CRUD dâAI Comment, les rĂ©glages Mood et les amĂ©liorations de HomeFeedPage. Câest excellent.
- đ Organisation de la structure de donnĂ©es : Le fait dâavoir structurĂ© la gestion des donnĂ©es, notamment en dĂ©cidant de stocker les informations de personnages IA dans FireStore, est impressionnant.
- đ DĂ©finition dâobjectifs concrets : Tu as clairement organisĂ© les tĂąches restantes et les prioritĂ©s, ce qui rend le plan dâavancement jusquâĂ la version de prĂ©sentation plus concret. Câest positif.
â Points Ă amĂ©liorer (Problem)
- ⳠManque de temps : à mesure que le calendrier de développement se resserre, le risque de ne pas avoir assez de temps pour les tests et le débogage augmente.
- đïž Nombreuses solutions temporaires : Beaucoup dâĂ©lĂ©ments ont Ă©tĂ© rĂ©solus avec des champs et fonctions temporaires pour implĂ©menter rapidement les fonctionnalitĂ©s ; la dette technique peut donc sâaccumuler.
đ Pistes Ă essayer (Try)
- đ ïž RĂ©ajuster les prioritĂ©s : SĂ©pare clairement les fonctionnalitĂ©s indispensables Ă la version finale de prĂ©sentation de celles qui pourront ĂȘtre amĂ©liorĂ©es ensuite, puis augmente dâabord la finition des fonctionnalitĂ©s clĂ©s.
- đ”ïž Mettre en place un systĂšme de vĂ©rification des bugs : Comme le temps manque, effectue chaque jour de courtes sessions de test fonctionnel et de dĂ©bogage afin de rĂ©duire les erreurs inattendues.
- đ Planifier le nettoyage de la dette technique : Documente les plans dâamĂ©lioration des fonctionnalitĂ©s implĂ©mentĂ©es temporairement et organise les Ă©lĂ©ments Ă peaufiner en prioritĂ© aprĂšs la prĂ©sentation.
Conclusion
Aujourdâhui, tu as terminĂ© des fonctionnalitĂ©s clĂ©s de Keymory et augmentĂ© le degrĂ© de finition du projet, tout en ressentant fortement le manque de temps dans un calendrier serrĂ©. Je tâencourage Ă donner le maximum jusquâau jour de la prĂ©sentation, tout en organisant aussi les amĂ©liorations Ă venir ! đȘđ
Laisser un commentaire