我用 AI 做记账 App:先做需求分析,再收敛 MVP

0 阅读7分钟

11_cover_ai_budget_app_case.png

很多人做 AI 编程项目,一上来就让 AI 生成页面、接口和数据库。

这样做的最大问题不是“生成得不够快”,而是你还没想清楚第一版到底要做什么。

这次我做的是一个个人记账 App,目标用户是刚开始工作、想控制日常开销的年轻人。这个项目非常适合拿来讲 AI 编程,因为它不算大,但业务规则是真实存在的:

  • 预算和账单是两类不同输入。
  • 收入和支出要区分。
  • 分类要能统计。
  • 识别失败时要有提示。
  • 第一版不能做成复杂财务软件。

这篇先讲第一步:如何让 AI 帮我把想法收敛成可以开发的 MVP。

为什么不能一开始就写代码

如果你只给 AI 一句话:

帮我做一个个人记账 App。

它大概率会直接开始生成:

  • 登录页
  • 记账页
  • 统计页
  • 用户表
  • 分类表
  • 图表组件
  • 一堆接口

看起来很快,但问题马上就会出现:

  • 是个人用,还是多人共享?
  • 支持文字输入,还是语音输入?
  • 第一版要不要自定义分类?
  • 预算提醒是不是必须做?
  • 统计做到什么程度才算够?

这些问题不先想清楚,AI 写得越多,返工越多。

我是怎么描述这个项目的

我给 AI 的输入不是“列功能”,而是先说背景:

我想做一个个人记账 App。目标用户是刚开始工作、想控制日常开销的年轻人。
他们的问题是:每月不知道钱花到哪里,也不想使用复杂的财务软件,只想通过语音或者文字输入来记录账单,不用填写复杂的表格。

请先不要写代码,帮我做需求分析。

这段描述里有 3 个关键点:

  • 用户是谁
  • 用户现在的痛点是什么
  • 产品体验要避免什么

尤其最后一点很重要。

“不想使用复杂的财务软件”这句话,实际上会直接影响后面的产品方案。它意味着第一版不能做重表单、不能做很长的录入流程,也不应该一开始就塞太多配置项。

需求分析阶段,我重点让 AI 输出什么

这一步我只要求 AI 回答几个核心问题:

  • 用户是谁
  • 核心使用场景是什么
  • 第一版必须做什么
  • 哪些功能先不要做
  • 核心流程怎么走
  • 数据对象有哪些

换句话说,这一步的目标不是“写文档”,而是“先把边界画清楚”。

对于这个记账 App,最终梳理出的核心使用场景是:

  1. 用户输入“我这个月预算1000元”,系统自动创建当月预算。
  2. 用户输入“今天加油300元”,系统自动识别为交通支出。
  3. 用户说一段语音,先转成文字,再完成识别和保存。
  4. 用户查看本月各类支出,知道钱主要花在什么地方。
  5. 用户接近或超出预算时,得到明确提示。

这 5 个场景已经足够支撑第一版产品价值。

06_flow_ai_requirement_analysis.png

MVP 不是功能越少越好,而是只做验证核心价值的那一部分

这个项目的 MVP 最终被拆成三层:

必须做:

  • 文本记账
  • 语音转文字记账
  • 月预算设置
  • 账单结构化识别
  • 数据库存储
  • 账单列表查看
  • 基础统计
  • 基础异常提示
  • 默认分类体系

可以后做:

  • 自定义分类
  • 编辑和删除账单
  • 更丰富图表
  • 更复杂的自然语言查询
  • 更细预算提醒

暂时不做:

  • 一句话拆分多笔账单
  • AI 理财建议
  • 家庭账本
  • 银行卡或支付平台同步
  • 专业财务报表

这里最关键的,不是“功能分组”本身,而是为什么这么分。

比如“自定义分类”这件事,很多人第一反应会觉得很基础,应该第一版就做。

但对这个项目来说,第一版的目标不是“让用户做完整财务管理”,而是验证一句话输入和自动识别这件事是否真的能降低记账门槛。只要默认分类够覆盖常见场景,自定义分类完全可以后放。

这就是 MVP 的意义:优先验证价值,而不是优先堆满功能。

flowchart LR
    A["产品想法"] --> B["目标用户"]
    B --> C["用户问题"]
    C --> D["核心场景"]
    D --> E["MVP 功能"]
    E --> F["暂不做功能"]
    F --> G["可开发方案"]

需求一旦收敛,核心流程就会变清楚

在这个项目里,最重要的核心流程其实只有一条:

输入一句话 -> 识别预算或账单 -> 确认结果 -> 保存数据库 -> 首页/账单页/统计页更新

一旦这个闭环被定义清楚,后面的很多设计都会跟着收敛。

比如:

  • 为什么要把 parsesave 分开? 因为用户需要先看识别结果,再确认是否保存。

  • 为什么要保留原始输入? 因为识别错误时,后面需要复盘用户到底说了什么。

  • 为什么异常提示是第一版必须做? 因为自然语言输入天然有歧义,不做提示就会直接影响用户信任。

你会发现,很多技术决策其实是需求阶段就种下的。

这个项目里,我刻意避免了哪些“看起来很高级”的需求

AI 很容易在需求阶段把产品往复杂方向推。

比如你一提“语音”,它可能继续建议:

  • 连续多轮对话记账
  • 自动语义纠错
  • 对历史账单做智能消费建议
  • 根据行为自动生成月报

这些都不是不能做,而是不适合第一版。

如果第一版连“今天加油300元”这种输入都还没稳定打通,就去做更复杂的智能能力,风险非常高。

所以这个项目在需求阶段最重要的一个判断其实是:

第一版不追求“像 AI 助手”,而是先把“轻量记账工具”做好。

需求分析阶段的产出,后面能直接复用

这一步不是空转。

它后面会直接变成:

  • PRD 的骨架
  • MVP 范围说明
  • 核心流程图
  • 数据模型草案
  • 接口设计输入
  • 测试验收标准

这也是为什么我不建议跳过需求分析。

AI 写代码很快,但真正拖慢项目的通常不是写代码,而是前面需求没收敛,后面所有人都在返工。

一个适合直接复用的提示词模板

如果你也想用 AI 做类似项目,可以直接用这段:

我想做一个【产品名称】。
目标用户是:【用户是谁】。
他们的问题是:【当前痛点】。
我希望产品体验是:【希望达成什么效果】。

请先不要写代码,帮我做需求分析。

请输出:
1. 目标用户
2. 核心使用场景
3. MVP 功能范围
4. 可以后做的功能
5. 暂时不做的功能
6. 核心用户流程
7. 关键数据模型
8. 验收标准
9. 还需要我确认的问题

要求:
- 不要过度设计
- 第一版优先验证核心价值
- 每个结论说明理由

最后

这次做记账 App,我最深的感受不是“AI 帮我省了多少代码时间”,而是:只要需求收敛得足够早,后面的架构、开发、测试都会顺很多。

AI 编程不是从代码开始,而是从定义问题开始。

下一篇我会继续写:这个记账 App 的架构是怎么收敛出来的,以及为什么我最后选了 Vue 3 + FastAPI + PostgreSQL + 规则引擎,而不是更复杂的一套方案。