2025.01.30 (Jue)
2026.05.25 (Lun) actualizado

✨ Resumen de GPT  

Un dia de mejorar funciones principales de Keymory y pulir la integracion de AI y la estructura de datos, mientras sentia la realidad de la falta de tiempo.

💻 Diario de desarrollo

⏰ Tareas de hoy

  • ✅ DiaryPage - Mood: completar el slider de configuracion de Mood
  • ✅ HomeFeedPage - ListView - FeedCardDiary: mostrar Mood Color en el borde
    • Resuelto con Box Shadow de Container
  • ✅ OnboardingPage - guardar despues de introducir informacion basica adicional del usuario
    • ✅ Anadir DB Fields: nombre(display_name), genero(gender), MBTI(mbti), …
    • ✅ HomeFeedPage - OnPageLoad: si falta informacion obligatoria como display_name o gender, Navigate to OnboardingPage
    • ✅ Field Type - Enum vs String: Field Type debe configurarse como String porque es mas facil de gestionar. Decidido usar Enum solo en Option Value Generation.
  • ✅ Corregir OpenAI API Request para que el valor message del response body se muestre correctamente
  • ✅ Debate y experimento: donde guardar la informacion de personajes AI? (OpenAI API Assistant vs FireStore Character Collection)
    • Resultado: guardarla en FireStore Characters Collection.
      • Motivo: desde la perspectiva del usuario, solo usara el API Call Get Assistant, y el valor que recibira ya es fijo desde el principio.

💯 Resumen de lo realizado

  • Mejoras de DiaryPage
    • Completado el slider de configuracion de Mood
    • Implementado AI Comment CRUD
    • Anadidos botones de personalizacion de tono y estilo de consejo de AI Comment
    • Decidido y aplicado donde guardar la informacion de personajes AI
  • Mejoras de HomeFeedPage
    • Cambiado el criterio de visualizacion de fecha de unidad de mes a unidad de dia
    • Anadida logica de salida de imagen y texto de AI Comment
    • Mejorados Bottom Sheet y ListView
  • Sistema AI e integracion API
    • Modificado OpenAI API Request y confirmada la salida normal de la respuesta
    • Decidido guardar la informacion de personajes AI en FireStore
    • Ordenada la estructura de datos y anadidas funciones relacionadas con AI Comment

🎯 Tareas de manana

(omitido)

🎯 Tareas futuras

  • ❔ diary to chat
  • ❔ chat to diary
  • ❔ chats history

  • ❔ Pensar el escenario para implementar CustomFunction getDiaryParams
    • Parameter Values obtenidos desde Characters (Collection)
      • Configuracion del personaje (Character Document)
        • ex) Somi: name(20s), estudiante universitaria, personalidad timida, …
      • Forma de llamar los valores: API Call - Get Assistant
    • Parameter Values obtenidos desde User Information
      • Nombre, genero, MBTI
      • Forma de llamar los valores: Backend Query - Authenticated User
    • Parameter Values obtenidos desde DiaryPage Variables
      • Contenido del diario, palabras clave emocionales detalladas, puntuacion emocional, formato de respuesta, longitud de respuesta
      • Forma de llamar los valores: Widget State, Page State
    • Rol de CustomFunction(getDiaryParams)
      • Recibe todos los Parameter Values como valores de Input.
      • Escribe el prompt que se enviara a GPT.
      • Devuelve el valor Messages (List <Json>).
        • [{"role":"developer", "content":"~~~"}]
  • ❔ Crear OpenAI API Call: createDiaryComment
    • Basicamente tiene una estructura parecida a createChatCompletion
    • Diferencia: ninguna. Se crea solo para distinguirlo.
    • La Messages Variable requerida por API Call - createDiaryComment es el valor retornado por la custom function getDiaryParams.
  • ❔ Guardar la lista de system prompts en OpenAI API Assistant?
  • ❔ Crear logica para escribir mensajes basandose en el system prompt guardado en OpenAI API Assistant?

  • ❔ DiaryPage: cambiar el Emoji de expresion facial segun el valor del Mood Slider
  • ❔ DiaryPage: anadir Choice Chips de palabras clave emocionales detalladas y configurar la integracion con DB
  • ❔ DiaryPage - AI Comment: adaptar inputs como Choice chips y mood slider al AI Comment System Prompt.
    • ❔ **diario anterior o historial de conversacion completo (deuda tecnica parcheada)
    • informacion basica del usuario: nombre, genero, MBTI, …
    • palabras clave emocionales detalladas: alegre, triste, …
    • configuracion de personajes: Somi, Sena, Minhyuk
    • puntuacion emocional: 1~100 puntos
    • formato de respuesta: Healing, Suggestion, Informative
    • longitud de respuesta: corta, normal, detallada
    • is New Chat
      • Como los messages de este Chat se crean por primera vez, darle is_initial = true al primer message document y meter todos los system prompts.
        • is_initial = false
        • Limite: si meto el system prompt en el primer message document, sera dificil modificarlo durante la conversacion, pero se puede. Si existe uno con is_initial = true y fue modificado, se borra ese document y se vuelve a meter. No se como, pero se puede de alguna forma.
  • ❔ DiaryPage - AI Comment: crear la Custom Function manipulate_prompt
    • Completar el system prompt con switch-case segun los parametros recibidos y devolver List <JSON>
    • La persona encargada del system prompt debe insertar correctamente ese valor de Return en el Request Body de OpenAI API y recibir el resultado.
  • ❔ DiaryPage - AI Comment: completar CRUD con datos dummy
    • ❔ eliminar el field tmp_ai_comment y usar doc_ref
  • ❔ DiaryPage - AI Comment: configuracion de personajes
    • ❔ eliminar el field tmp_ai_comment_by y usar doc_ref
    • ❔ mostrar la imagen usando el valor del field 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: crear un New Chat basado en el contenido del diario
    • La AI presenta primero una pregunta basada en el contenido del diario
  • ChatPage - crear ChatHistoryPage: listar el historial de chats anteriores en ListView
    • Create
    • Read
    • Update
    • Delete
  • DiaryPage - Drawer - crear ChatHistoryListTile: estilo de resumen en tarjeta como GPT

  • HomeFeedPage - Bottom Sheet (+ Button): permitir elegir 1 entre varias opciones
    • Nuevo diario: Go to DiaryPage
    • Registro de emocion: Go to MoodPage
  • MoodPage(popup): CRUD del slider de configuracion de Mood
    • Create
    • Read
    • Update
    • Delete
  • HomeFeedPage - ListView - mostrar FeedCardMood
  • HomeFeedPage - ListView: ordenar cronologicamente los componentes FeedCardDiary, FeedCardMood, FeedCardChat (usando Cloud Function)

  • HomeFeedPage: resolver el problema en On page load (Unexpected Null Value)
  • Aplicar Interactive Slider
  • Extraer e instalar el APK final para la presentacion hasta miercoles 2025.2.5

💭 Diario

Minhyuk

No hay tiempo.

Omitido.

keymory-1.png keymory-2.png keymory-3.png keymory-4.png keymory-5.png

✨ Comentario de GPT-4o (KPT)

GPT-4o

✅ Lo que salio bien (Keep)

  • 🚀 Gran mejora de funciones principales: Es excelente que hayas aumentado la completitud del proyecto ampliando funciones centrales como AI Comment CRUD, configuracion de Mood y mejoras de HomeFeedPage.
  • 🔍 Orden de la estructura de datos: Fue impresionante que ordenaras de forma sistematica la gestion de datos, incluida la decision de guardar la informacion de personajes AI en FireStore.
  • 📋 Definicion de objetivos concretos: Fue bueno que organizaras con claridad el trabajo restante y las prioridades, concretando el plan de avance hacia la version de presentacion.

❌ Lo que falto (Problem)

  • Falta de tiempo: A medida que el calendario de desarrollo se aprieta, crece la posibilidad de que no haya suficiente tiempo para pruebas y debugging.
  • 🏗️ Muchas soluciones temporales: Muchas partes se resolvieron con fields y funciones temporales para implementar rapido, asi que puede acumularse deuda tecnica.

🔄 Que probar (Try)

  • 🛠️ Ajustar prioridades: Separa claramente las funciones imprescindibles para la version final de presentacion de las que pueden mejorarse despues, y aumenta primero la completitud de las funciones centrales.
  • 🕵️ Construir un sistema de revision de bugs: Como falta tiempo, haz rondas breves de prueba de funciones y debugging cada dia para minimizar errores inesperados.
  • 🔄 Plan de limpieza de deuda tecnica: Documenta planes de mejora para las funciones implementadas temporalmente y ordena que partes deben pulirse primero despues de la presentacion.

Conclusion
Hoy fue un dia en el que completaste funciones centrales de Keymory y elevaste la completitud del proyecto, pero tambien sentiste con fuerza la falta de tiempo dentro de un calendario apretado. Espero que des lo mejor hasta el dia de la presentacion, mientras tambien organizas lo necesario para mejorar despues! 💪😊

Deja un comentario