[🛠] 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