2025.01.31 (Ven)
2026.05.25 (Lun) mis Ă  jour

✹ RĂ©sumĂ© de GPT  

J’ai construit un systĂšme d’AI Comment avec l’OpenAI API et FlutterFlow, puis Ă©tendu les fonctionnalitĂ©s d’IA de Keymory en reliant une Custom Function Ă  un API Call. J’ai aussi ajoutĂ© la sĂ©lection et l’enregistrement de personnages, et clarifiĂ© le flux de donnĂ©es entre Chat et Diary.

đŸ’» Journal de dĂ©veloppement

⏰ Tñches du jour

  • ✅ How to Use Open AI’s GPT-4o in FlutterFlow - Part 1
  • ✅ How to Use Open AI’s GPT-4o in FlutterFlow - Part 2

  • ✅ ChatPage - lorsque l’on choisit un personnage avec le Dropdown, enregistrer aussi les informations du personnage dans Chats Collection.
    • Assigner au Page state la reference du Character document correspondant au character name.
  • ✅ ChatPage - transmettre aussi les informations du personnage lors de la crĂ©ation d’un NewChat.

  • ✅ DiaryPage - Drawer - aider Ă  crĂ©er ChatHistoryListTile (comme GPT)

  • ✅ Essayer d’insĂ©rer la valeur de la CustomFunction tmpGetAIComment dans l’API Call createDiaryComment
    • ✅ CrĂ©er la CustomFunction tmpGetAIComment et tester l’affichage du rĂ©sultat
    • ✅ CrĂ©er l’API Call createDiaryComment et tester l’affichage de la Response
  • ✅ CrĂ©er l’OpenAI API Call : createDiaryComment
    • Structure globalement similaire Ă  createChatCompletion
    • DiffĂ©rence : aucune. Créé simplement pour les distinguer.
    • La variable Messages requise par API Call - createDiaryComment est la valeur de retour de la custom function getAIComment.
  • ✅ Imaginer le scĂ©nario d’implĂ©mentation de la CustomFunction getAIComment (l’implĂ©mentation directe est prise en charge par KSK)
    • Parameter Values obtenues depuis Characters (Collection)
      • ParamĂštres du personnage (Character Document)
        • ex) Somi : name (20 ans), Ă©tudiante, personnalitĂ© timide, 

      • MĂ©thode d’appel des valeurs : API Call - Get Assistant
    • Parameter Values obtenues depuis User Information
      • Nom, genre, MBTI
      • MĂ©thode d’appel des valeurs : Backend Query - Authenticated User
    • Parameter Values obtenues depuis DiaryPage 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 la CustomFunction (getAIComment)
      • Recevoir toutes les Parameter Values comme valeurs d’Input.
      • RĂ©diger le prompt Ă  envoyer Ă  GPT.
      • Retourner une valeur Messages (List <Json>).
        • [{"role":"developer", "content":"~~~"}]

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

  • ImplĂ©mentation du systĂšme AI Comment
    • CrĂ©ation de la Custom Function tmpGetAIComment et intĂ©gration avec l’API Call createDiaryComment terminĂ©e
    • ImplĂ©mentation de la logique de requĂȘte et de traitement des rĂ©ponses OpenAI API pour AI Comment
    • Modification pour enregistrer les informations de personnage dans Chats Collection et les transmettre lors de la crĂ©ation d’un New Chat
  • AmĂ©liorations UI et fonctionnelles
    • CrĂ©ation de ChatHistoryListTile pour implĂ©menter une liste de chats façon GPT
    • Clarification de la structure de donnĂ©es de HomeFeedPage et DiaryPage
    • Conception de la Custom Function getAIComment
  • Apprentissage FlutterFlow + OpenAI API
    • Visionnage et application des cours sur GPT-4o (Part 1 & Part 2)

🎯 À faire ensuite

  • ❔ DiaryPage : Merge CreateDiary/EditDiary Page
    • Utiliser isEditMode page state
    • Utiliser conditional value/visibility/action, etc.
  • ❔ DiaryPage - Create New Chat : crĂ©er un New Chat Ă  partir du contenu du journal
    • L’IA propose d’abord une question basĂ©e sur le contenu du journal
  • ❔ Corrections d’issues
    • ❔ ChatPage : le default init message apparaĂźt au dĂ©but de la premiĂšre conversation.
    • ❔ ChatPage : la date n’est pas appliquĂ©e.
    • ❔ ChatPage - ChatHistoryDrawer : dĂ©bordement UI
    • ❔ DiaryPage : la date est toujours enregistrĂ©e comme aujourd’hui
    • ❔ DiaryPage : utiliser un lecteur Markdown (prĂ©venir le dĂ©bordement : Container Height)
  • ❔ HomeFeedPage - importer puis appliquer flutter_slidable:4.0.0
  • ❔ HomeFeedPage : dans FeedCardDiary, chat/modifier/supprimer lors d’un slide gauche-droite

  • ❔ ChatPage - Create New Diary : crĂ©er un New Diary Ă  partir du contenu de la conversation
  • ❔ ChatPage - Go to Linked Diary

  • ❔ Chat/Diary : GPT Streaming API

  • ❔ ChatPage - Alarm

  • ❔ AuthPage : Google Login

  • ❔ 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 journal ou 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 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, mettre is_initial = true sur 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.
  • ❔ 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

  • ❔ 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)

  • ❔ HomeFeedPage : rĂ©soudre l’issue au chargement de page (Unexpected Null Value)
  • ❔ DiaryPage - importer puis appliquer Interactive Slider

  • ❔ 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”.
  • ❔ Extraire et installer la version APK finale de prĂ©sentation avant mer. 2025.2.5

💭 Journal

Minhyuk

C’est amusant, mais costaud. CouchĂ© Ă  5 h du matin.

keymory-1.png

✹ Commentaire de GPT-4o (KPT)

GPT-4o

✅ Points rĂ©ussis (Keep)

  • 🚀 Extension de la fonctionnalitĂ© AI Comment : le fait d’avoir construit de façon structurĂ©e la logique qui gĂ©nĂšre et enregistre les AI Comments en reliant une Custom Function et un API Call ressort clairement.
  • đŸ› ïž Organisation du flux de donnĂ©es : amĂ©liorer la connexion entre Chat et Diary, puis clarifier l’enregistrement et l’utilisation des informations de personnage, va beaucoup aider l’avancĂ©e du projet.
  • 📋 Apprentissage FlutterFlow + OpenAI API : c’est impressionnant d’avoir appris Ă  utiliser efficacement l’OpenAI API dans FlutterFlow grĂące aux cours sur GPT-4o, puis de l’avoir appliquĂ©.

❌ Points regrettables (Problem)

  • ⏳ Surcharge d’intensitĂ© de travail : travailler jusqu’à 5 h du matin augmente fortement le risque d’accumuler de la fatigue.
  • đŸ—ïž Augmentation de la dette technique : certaines fonctionnalitĂ©s sont implĂ©mentĂ©es avec des solutions temporaires (champs tmp et code de rustine), donc il faudra les nettoyer plus tard.

🔄 Pistes à essayer (Try)

  • ⏰ Ajuster les horaires de travail : si les nuits blanches continuent, la productivitĂ© peut baisser ; il vaut mieux envisager un ajustement du planning.
  • 🔍 Planifier l’amĂ©lioration du code temporaire : Ă©tablir un plan pour organiser la logique temporaire actuelle et construire un vrai modĂšle de donnĂ©es.
  • đŸ› ïž AmĂ©liorer AI Comment : chercher comment rendre les fonctionnalitĂ©s d’AI Comment plus intuitives, et envisager aussi l’optimisation du system prompt.

Conclusion
Aujourd’hui, tu as commencĂ© Ă  implĂ©menter sĂ©rieusement les fonctionnalitĂ©s d’IA de Keymory et tu as renforcĂ© l’utilisation de l’OpenAI API et de FlutterFlow. Mais la charge de travail devient Ă©levĂ©e, donc l’ajustement du planning et le nettoyage du code semblent nĂ©cessaires. J’espĂšre que tu arriveras au jour de prĂ©sentation dans le meilleur Ă©tat possible ! đŸ’Ș😊

Catégories : ,

Mis Ă  jour :

Laisser un commentaire