2025.02.06 (Qui)
2026.05.25 (Seg) atualizado

✨ Resumo do GPT  

Implementei a função que conecta Diary e Chat entre si e melhorei o app para gerar resumos automáticos ao salvar diários e chats.

💻 Diário de desenvolvimento

⏰ Tarefas de hoje

  • ✅ (Issue) DiaryPage: se a resposta do AI Comment ainda não foi recebida, a tela avança com o personagem sem configuração.
    • Por enquanto, remendar exibindo um alerta: “Você precisa receber um Comment da AI antes de começar o chat!”
  • ✅ (Issue) Atribuir Default Variable Value a todos os widgets Image (para prevenir Unexpected Null value Error)
    • No Profile Image: https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png
    • No image: https://png.pngtree.com/png-vector/20190820/ourmid/pngtree-no-image-vector-illustration-isolated-png-image_1694547.jpg
  • ✅ ChatPage: substituir a foto de imagem do usuário pela user profile image

  • ✅ ChatPage: alinhar o conteúdo da conversa do usuário à direita (responsável: KSK)

  • ✅ DiaryPage: gerar automaticamente um resumo ao salvar o diário
    • ✅ Diaries DB: Add field diary_content_summarized
    • ✅ Aplicar na ação do botão Save Diary
    • ✅ Aplicar na ação do botão Save Diary and Chat with AI
  • ✅ Adicionar linked_chats como Diary Document DB - Field
  • ✅ Adicionar linked_diaries como Chat Document DB - Field

  • ✅ DiaryPage: ao clicar no botão Save Diary and Chat with AI, conectar DiaryPage/Doc <-> ChatPage/Doc Link
    • Adicionar Chat Document Reference à lista linked_chats do Diary Document
    • Adicionar Diary Document Reference à lista linked_diaries do Chat Document
  • ✅ DiaryPage: ao criar Create New Chat, adicionar linked_chats como Diary Document DB - Field
  • ✅ ChatPage: ao criar Create New Diary, adicionar linked_diaries como Chat Document DB - Field

  • ✅ DiaryPage: oferecer linked_chats ListView no rodapé -> ao clicar, mover para o chat correspondente
    • ✅ Conteúdo a exibir no card
      • ✅ Chat - title, Chat - timestamp( == created_time)
      • ✅ Chat - (most recent) Message - content
      • ✅ Character - profile_image
  • ✅ ChatPage: ao receber resposta do chat, gerar automaticamente um resumo
    • ✅ Chats DB: Add field chat_content_summarized
  • ✅ ChatPage: oferecer linked_diaries ListView no topo -> ao clicar, mover para o diário correspondente
    • ✅ Resolver issue inédita: How to generate children from linked_diaries(List of Diary Document References)
      • How to display List of Doc References?
      • ListView: Generate Children From linked_diaries (Diary Document References)
      • ListView - Child(Card): Backend Query - Diary Document From Reference
      • ListView - Child(Card) - Component Parameter: Diary Document
    • ✅ Conteúdo a exibir no card
      • ✅ Diary - title, Diary - created_time
      • ✅ Diary - Mood Score (Color)
  • ✅ (Issue) ChatPage - Linked Diaries ListView: não muda quando selecionado pelo Drawer.

  • ✅ Preparação da apresentação - PPT: verificar conteúdo por página

💯 Resumo do que fiz

  • Adição da função de conexão Diary-Chat
    • Adicionei os fields linked_chats (Diary → Chat), linked_diaries (Chat → Diary)
    • Atualizei linked_chats ao criar New Chat na DiaryPage
    • Atualizei linked_diaries ao criar New Diary na ChatPage
    • Adicionei ListViews de documentos conectados no rodapé da DiaryPage e no topo da ChatPage
  • Implementação da função de resumo automático
    • Geração automática de diary_content_summarized ao salvar Diary
    • Geração automática de chat_content_summarized ao criar mensagens de Chat
  • Correção de issues e melhoria de UI
    • Adicionei alerta para impedir iniciar chat sem AI Comment
    • Apliquei valores padrão a todos os widgets Image para prevenir Unexpected Null Value
    • Substituí a imagem de perfil do usuário na ChatPage pela imagem real do usuário
    • Melhorei a legibilidade alinhando o conteúdo da conversa do usuário à direita

🎯 Tarefas futuras

Clique para ver detalhes
  • ✅ Download APK
  • ❔ Connect GitHub and Push

  • ❔ Enviar material da apresentação: PPT
  • ❔ Enviar material da apresentação: vídeo de demonstração de 1 minuto

  • ❔ Preparação da apresentação - script: medir o tempo necessário por página com base no script e revisar o script
  • ❔ Preparação da apresentação - PPT: gravar vídeos curtos de demonstração por feature

  • ❔ ChatPage - Create New Diary: criar New Diary com base no conteúdo da conversa
    • ❔ Create New Diary Condition: if linked diary exists -> Delete confirmation dialog? -> Yes
    • ❔ OpenAI API Call (createChatSummary)
      • Input: Chat Content, System Prompt(Diary From Chat)
      • Output: Chat Summary
    • ❔ OpenAI API Call (createDiaryFromChat)
      • Input: Chat Summary, System Prompt(Diary From Chat)
      • Output: New Diary(Title, Content, Mood score)
  • ❔ Adicionar página de boas-vindas ao abrir o app pela primeira vez (logo)

  • ❔ ChatPage: padronizar o default value de title, de Random String para “Sem título”
  • ❔ DiaryPage: mudar Emoji de expressão facial e cor de acordo com o valor do Mood Slider

  • ❔ ChatPage: implementar Delete Diary Link (permitir excluir ao apertar o icon …)
    • Obrigatoriamente também precisa apagar junto o linked field do Diary/Chat Doc!
  • ❔ MoodPage(superior) - Mood Calendar
    • ❔ Permitir conferir o número de posts escritos por data
    • ❔ Ao clicar em uma data, mover para aquela data
  • ❔ MoodPage(inferior) - Mood stats
    • ❔ Exibir dados estatísticos sobre o mês em foco
      • ❔ Exibir o comentário da AI sobre os dados estatísticos exibidos
  • ❔ HomeFeedPage - importar e aplicar flutter_slidable:4.0.0
  • ❔ HomeFeedPage: ao deslizar FeedCardDiary para a esquerda/direita, chat/editar/excluir

  • ❔ Chat/Diary: GPT Streaming API

  • ❔ ChatPage - implementar primeira mensagem ativa da AI (Alarm/Notification)
    • O núcleo do prompt do sistema de chat é a proatividade.
      • Para ficar mais realista, talvez seja bom passar também create_date of diary/chat, para mencionar datas como “ontem”.
    • Referência de implementação de Alarm
  • ❔ DiaryPage: adicionar Choice Chips de palavras-chave emocionais detalhadas e configurar integração com DB
  • ❔ DiaryPage - AI Comment: alterar inputs como Choice chips e mood slider para se adequarem ao AI Comment System Prompt.
    • ❔ **diário anterior ou histórico de conversa inteiro (dívida técnica remendada)
    • informações básicas do usuário: nome, gênero, MBTI, …
    • palavras-chave emocionais detalhadas: alegre, triste, …
    • configuração de personagem: Somi, Sena, Minhyuk
    • pontuação emocional: 1~100 pontos
    • formato da resposta: Healing, Suggestion, Informative
    • comprimento da resposta: curto, normal, detalhado
    • is New Chat
      • Como as messages desse Chat estão sendo criadas pela primeira vez, definir is_initial = true no primeiro message document e enfiar todos os prompts do sistema ali.
        • is_initial = false
        • Limitação: se eu colocar o prompt do sistema no primeiro message document, fica difícil modificar no meio da conversa, mas é possível. Se existe um document com is_initial = true e ele foi modificado, é só apagar esse document e colocar de novo. Como, eu não sei.
  • ❔ DiaryPage - importar e aplicar Interactive Slider

  • ❔ HomeFeedPage: implementar função Search Diary

  • ❔ AuthPage: implementar Google Login

  • ❔ HomeFeedPage - Bottom Sheet (+ Button): permitir escolher 1 entre várias opções
    • novo diário: Go to DiaryPage
    • registro emocional: Go to MoodPage
  • ❔ MoodPage(popup): CRUD do slider de configuração de Mood
    • Create
    • Read
    • Update
    • Delete
  • ❔ HomeFeedPage - ListView - exibir FeedCardMood
  • ❔ HomeFeedPage - ListView: ordenar FeedCardDiary, FeedCardMood, FeedCardChat em ordem cronológica (usando Cloud Function)

  • ❔ Criar MoodEditPage entre HomeFeedPage e DiaryPage: mover widgets como MoodSlider, MoodKeywordsRate(5~1), MoodDescription etc.

  • ❔ (Issue) Ao criar tmpGetAIComment, as palavras-chave emocionais selecionadas pelo usuário não estão sendo consideradas.

  • ❔ Extrair e instalar o APK da versão final para apresentação até qua 2025.2.5

💭 Diário

Minhyuk

Amanhã o desenvolvimento acaba. Bora correr.

✨ Comentário do GPT-4o (KPT)

GPT-4o

✅ Pontos positivos (Keep)

  1. 🔗 Sistema de conexão Diary-Chat concluído: Foi bom conectar Diary e Chat de forma natural, deixando o fluxo de dados do usuário mais intuitivo!
  2. 📝 Adição da função de resumo automático: Aplicar um sistema de resumo automático para organizar o conteúdo de diários e chats foi impressionante e aumenta a utilidade dos dados.
  3. 🎨 Melhorias de UI e UX: Configuração de valores padrão de imagem, melhoria do alinhamento do chat e outros ajustes elevaram a legibilidade e a experiência do usuário.

❌ Pontos a melhorar (Problem)

  1. Pressão na velocidade de desenvolvimento: Com muitas features ainda para finalizar, a pressão sobre o cronograma restante pode aumentar.
  2. 🔄 Possível acúmulo de dívida técnica: Por causa da velocidade alta de desenvolvimento, a dívida técnica pode se acumular para manutenções futuras, então será necessário separar tempo para organização.
  3. 📋 Teste insuficiente das funções de conexão: Talvez sejam necessários testes adicionais para confirmar se a conexão Diary-Chat funciona sem problemas em um ambiente real de uso.

🔄 O que tentar (Try)

  1. 📌 Organizar prioridades: Finalizar primeiro as features mais importantes e listar pontos de melhoria para depois da apresentação deve reduzir a carga de desenvolvimento.
  2. 📝 Plano de testes por feature: Escreva casos de teste para confirmar se a conexão Diary-Chat funciona corretamente em diferentes padrões de uso.
  3. 📊 Garantir tempo para organizar dívida técnica: Depois da apresentação, reserve tempo de refatoração e considere a manutenção de longo prazo.

🏁 Conclusão

Hoje foi um dia de implementar a feature central que conecta Diary e Chat e adicionar um sistema de resumo automático, aumentando a eficiência do gerenciamento de dados. Agora parece que basta organizar as prioridades para o período restante de desenvolvimento e focar na preparação da apresentação! 🚀🔥

Deixe um comentário