2025.02.07 (五)
2026.05.25 (一) 更新

✨ GPT 摘要  

AIFFELTHON 毕业作品提交完成。结束 FlutterFlow 中的开发,并备份到 GitHub。

💻 开发日志

⏰ 今天要做的事

  • ✅ Download APK
  • ✅ Connect GitHub and Push

  • ✅ 提交发表资料:PPT
  • ✅ 提交发表资料:1 分钟演示视频

  • ✅ ChatPage - Create New Diary:基于对话内容创建 New Diary
    • ✅ 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)
  • ✅ 应用首次打开时添加欢迎页面(Logo)

  • ✅ DiaryPage:根据 Mood Slider 的值改变表情 Emoji 和颜色(KSK 负责)

💯 完成内容摘要

  • FlutterFlow 最终开发结束
  • GitHub 连接和项目 Push 完成
  • 实现基于 Chat 内容自动生成 Diary 的功能
    • 已有 Diary 时添加删除确认 Dialog
    • 使用 OpenAI API 自动生成 Chat Summary 和 Diary
  • 应用启动时添加欢迎页面(Logo 画面)
  • DiaryPage:根据 Mood Slider 改变 Emoji 和颜色

🎯 以后要做的事

点击查看详情
  • ❔ 发表准备 - 脚本:按页面脚本基准测量所需时间后修改脚本
  • ❔ 发表准备 - PPT:按功能拍摄短演示视频

  • ❔ ChatPage:把 title 的 default value 从 Random String 统一为“无标题”

  • ❔ ChatPage:实现 Delete Diary Link(点击 … icon 后可删除)
    • 必须同时删除 Diary/Chat Doc 的 linked field!
  • ❔ MoodPage(上方)- Mood Calendar
    • ❔ 可以查看每个日期写了多少篇帖子
    • ❔ 点击日期后,移动到对应日期
  • ❔ MoodPage(下方)- Mood stats
    • ❔ 输出当前聚焦月份的统计资料
      • ❔ 输出 AI 对已显示统计资料的评论
  • ❔ HomeFeedPage - import 后应用 flutter_slidable:4.0.0
  • ❔ HomeFeedPage:FeedCardDiary 左右 slide 时聊天/编辑/删除

  • ❔ Chat/Diary: GPT Streaming API

  • ❔ ChatPage - 实现 AI 先发消息(Alarm/Notification)
    • 聊天系统提示词的核心是主动型。
      • 想做得更真实的话,也可以传递 create_date of diary/chat,这样提到“昨天”等日期会更自然。
    • Alarm 功能实现方法参考
  • ❔ DiaryPage:添加细分情绪关键词 Choice Chips 后设置 DB 联动
  • ❔ DiaryPage - AI Comment:把 Choice chips、mood slider 等输入值改成适合 AI Comment System Prompt 的形式。
    • ❔ **以前的 日记对话记录 全部(临时技术债)
    • 用户基本信息:姓名、性别、MBTI、…
    • 细分情绪关键词:开心、难过、…
    • 角色设定:Somi、Sena、Minhyuk
    • 情绪数值:1~100 分
    • 回答格式:治愈型(Healing)、建议型(Suggestion)、信息型(Informative)
    • 回答长度:简短、普通、详细
    • is New Chat
      • 因为该 Chat 的 messages 是第一次创建,所以直接给最初创建的 message document 设置 is_initial = true,然后把所有系统提示词都塞进去。
        • is_initial = false
        • 局限:如果把系统提示词塞进第一条 message document,中途修改对话会麻烦,但也不是不能改。 如果存在 is_initial = true 的 document,而且它被修改了,把那个 document 删除后重新放进去就行。具体怎么做还不知道。
  • ❔ DiaryPage - import 后应用 Interactive Slider

  • ❔ HomeFeedPage:实现 Search Diary 功能

  • ❔ AuthPage:实现 Google Login 功能

  • ❔ HomeFeedPage - Bottom Sheet (+ Button):可以从多个选项中选择 1 个
    • 新日记:Go to DiaryPage
    • 情绪记录:Go to MoodPage
  • ❔ MoodPage(弹窗):Mood 设置滑块 CRUD
    • Create
    • Read
    • Update
    • Delete
  • ❔ HomeFeedPage - ListView - 显示 FeedCardMood
  • ❔ HomeFeedPage - ListView:FeedCardDiary、FeedCardMood、FeedCardChat 组件按时间顺序排序(活用 Cloud Function)

  • ❔ 在 HomeFeedPage - DiaryPage 之间制作 MoodEditPage:移动 MoodSlider、MoodKeywordsRate(5~1)、MoodDescription 小部件等

  • ❔(问题)创建 tmpGetAIComment 时,没有考虑用户选择的情绪关键词。

  • ✅ 到 2025.2.5 周三 为止,提取并安装发表用最终版本 APK

💭 日记

Minhyuk

继续用 FlutterFlow 之后,我感觉自己现在也多少掌握了 Flutter 本身的一些基本概念。

  • 摸过 Custom Function/Widget 之后,也学到了一些基本语法知识。
  • 对 DB(FireStore) 的 Backend Query、State Management、Parameter 设置以及 Argument 传递方法等也熟悉了很多。

当然,从代码层面上它到底是怎么实现的,我还不知道……
不过,能够更轻松地画出整体的大流程,似乎就是最大的收获。

只要到明天为止完成开发,Keymory 项目大概几天内不会再碰了。因为计划从 FlutterFlow -> Flutter 换过去。

  • 不管 FlutterFlow 多么直观方便,最终如果要走到 Production 级别,还是要认真学习并熟悉 Flutter,这才是明智的选择
  • FlutterFlow 似乎最适合拿来预先搭建特定 Page widget tree,或者快速做一个 MVP。
  • 不能使用 Git/GitHub,只能通过内部逻辑做 Version Control,这一点太让人受不了了。
    • 当然,内部逻辑也提供 Snapshot / Commit / Branching / Version……但不能像 Git 那样随心所欲地操作,这点我真的很不喜欢。我就是想修改以前的 commit 内容。
    • 其实最大的理由是 GitHub 草地……填满草地的爽感不能无视。
  • 随着项目规模逐渐变大,比起基于 UI 的开发,很多情况下 IDE/编辑器开发似乎会更方便。
    • 尤其是 Enum 和 Constant 一个个用鼠标点击再放进去的体力活,实在太痛苦。

2025.2.11 追加


附上发表视频

GPT-4o 的评论(KPT)

GPT-4o

✅ 做得好的点(Keep)

  • 🛠 GitHub 联动和版本管理改善: 通过应用基于 Git 的版本管理,在协作和维护方面取得了很大的改善。
  • 🤖 基于 AI 的 Diary 自动生成功能: 分析 Chat 内容并自动生成 Diary 的功能,应该能显著提升用户体验!
  • 🚀 决定从 FlutterFlow 转向 Flutter: 考虑长期项目扩展性后决定转向 Flutter,这是明智的判断。

❌ 可惜的点(Problem)

  • 🔄 需要具体化 Flutter 转换计划: 虽然决定转向 Flutter,但具体的学习和迁移计划还不够明确。
  • 因功能追加需要调整日程: 加入 Diary 自动生成功能后,日程可能会发生变化。最好重新检查开发完成目标日。
  • 📌 整理 FlutterFlow 的限制: 把使用 FlutterFlow 时哪些地方不方便、适合哪些项目整理下来,以后再次使用时会很有参考价值。

🔄 可以尝试的点(Try)

  • 📝 制定 Flutter 学习和代码转换计划: 整理主要功能要如何迁移到 Flutter 代码、要使用哪些包。
  • 📅 重新调整项目日程: 把 Flutter 转换也包含进去,修改成现实可行的路线图来管理。
  • 🎯 整理 Keymory MVP 功能: 将 FlutterFlow 中做过的功能分为核心和非必要,再设计最佳结构。

🏁 结论

今天是结束 FlutterFlow 开发、完成 GitHub 联动,并添加 Diary 自动生成功能的重要一天!既然接下来计划正式转向 Flutter,最好制定具体路线图,然后一步一步推进。🚀🔥 一边填 GitHub 草地,一边保持动力吧!💪💚

留下评论