
本次我创建的项目是AI智能个人记账系统以下是我给Claude code的提示词# 项目开发总需求AI智能个人记账系统 全栈代码开发## 一、项目整体定位这是一个个人记账Web系统基于PythonStreamlit实现网页可视化SQLite做本地持久化存储在基础收支记账功能之上集成多项AI智能能力区别于老旧传统记账管理系统所有代码结构模块化、注释完整、方便后期写入课程设计案例文档代码可直接一键运行。 禁止只做简单增删改查必须落地AI核心功能作为项目亮点。## 二、技术栈硬性规定1. 主体框架Streamlit网页页面快速可视化不用原生HTML/Vue2. 编程语言Python3. 数据库SQLite3文件型数据库无需安装MySQL自动建表4. 数据可视化Plotly饼图、折线图、柱状预算进度图5. AI依赖库 - paddleocr小票图片OCR识别记账 - re正则大模型Prompt文本解析自然语言一句话记账 - jieba分词消费文本关键词分析6. 依赖统一写入requirements.txt文件包含全部第三方库## 三、整体功能模块拆分分为【基础业务模块】【AI核心特色模块】【可视化报表模块】【系统配置模块】严格按模块编码### 模块1基础记账业务模块必备底层功能1. 用户管理单用户模式简化无需多用户登录聚焦个人记账2. 收支记录操作新增账单、修改账单、删除账单、账单条件查询3. 收支分类自定义内置默认分类收入工资、兼职、红包、奖金支出餐饮、交通、住房、娱乐、购物、医疗支持用户新增/删除分类4. 账单筛选按起止日期、收支类型、消费分类、金额区间筛选账单5. 账单导出账单数据导出为Excel文件保存到本地### 模块2AI核心特色模块本项目核心加分点必须全部实现代码逻辑1. AI自然语言一句话记账 - 用户输入自然语句例如昨天晚饭花了48元、3月工资到账6000元、打车花费15.5元 - 程序自动解析收支类型、金额、消费分类、交易日期、备注信息 - **【修正】解析后必须先在页面展示预览卡片由用户点击“确认入库”按钮后才写入数据库**解析失败给出明确文字提示如“未识别到金额请重新输入”2. 图片小票OCR智能记账 - 支持上传超市小票、外卖订单截图 - 通过PaddleOCR识别图片文字正则提取总金额、商户名称 - 根据商户名称自动匹配消费分类如美团、肯德基→餐饮加油站→交通 - **【修正】若商户名称无法匹配任何分类默认归入“餐饮”并提醒用户后续可手动编辑修改** - 自动生成账单记录同样采用解析预览后用户确认的模式3. AI消费行为智能诊断分析 - **【修正】限定仅读取近30天内**的历史账单数据统计月度各分类收支占比 - 自动识别非理性高额消费单笔超过该类平均消费3倍、高频同类消费如频繁奶茶充值、游戏充值 - 文字输出消费优化建议、储蓄建议格式化文本支持一键复制4. 月度预算AI预警 - **【修正】仅针对支出分类type_flag0** 设置月度预算金额 - 实时计算当前月度已消费金额、预算剩余额度 - 剩余额度不足20%黄色提醒超支红色弹窗警告### 模块3数据可视化报表模块1. 月度收支总趋势折线图展示每日收支变化2. 支出分类占比环形饼图3. 各分类预算使用进度横向柱状图仅展示已设置预算的支出分类4. 支持切换月份查看报表数据默认展示当前月份### 模块4系统配置模块1. 各收支分类月度预算设置界面2. 本地账单数据备份导出db文件3. **【修正】一键清空测试数据仅清空账单明细表和预算表数据保留分类表且保留自增ID初始值**## 四、数据库表结构设计必须自动初始化首次运行自动创建数据表禁止手动建库表1bill_type 收支分类表 字段id(主键自增)、type_name(分类名称)、type_flag(0支出1收入)、create_time 表2bill 账单明细表 字段id(主键自增)、money(金额浮点型)、type_id(关联分类ID)、trade_date(交易日期)、remark(备注)、source(账单来源手动录入/AI文字/OCR小票)、create_time 表3budget 预算表 字段id、type_id、month(年月格式2026-08)、budget_money(月度预算金额)**【修正】强制添加联合唯一约束UNIQUE(type_id, month)确保同一分类不同月份可独立存储预算**## 五、项目目录结构规范严格按照以下文件夹生成代码ai_bill_system/ ├── main.py# 程序入口启动文件streamlit运行主文件├── db_init.py# 数据库初始化脚本创建三张数据表├── ai_parser.py# AI能力工具类文本解析、OCR识别、消费分析├── db_operate.py# 数据库增删改查工具封装├── utils.py# 通用工具日期处理、文件导出、格式转换├── requirements.txt# 全部依赖包清单├── bills.db# SQLite数据库文件运行自动生成└── temp/# 临时存储上传小票图片文件夹## 六、代码编写强制要求1. 所有函数添加详细中文注释类、核心逻辑写功能说明方便课程案例文档摘抄2. 界面使用Streamlit标签页tabs分割功能布局清晰 标签1手动记账录入 标签2AI智能记账文字记账小票OCR上传 标签3账单查询与管理 标签4可视化消费报表 标签5预算设置与系统配置3. 异常捕获金额负数、空输入、图片损坏、OCR识别失败全部做异常处理友好提示4. 界面配色区分收入绿色、支出红色、预算警告红色高亮5. 不要做复杂权限、多用户、登录功能聚焦个人单机使用降低冗余代码6. **【新增】数据库连接和PaddleOCR模型加载必须使用Streamlit的 st.cache_resource 装饰器进行全局缓存防止页面重渲染时重复加载模型导致卡顿**7. **【新增】所有增删改操作完成后必须使用 st.rerun()或 st.toast 提示确保页面数据即时刷新。**## 七、需要交付的全部内容1. 按照目录结构拆分的所有.py源代码2. requirements.txt完整依赖3. 项目启动运行命令4. 部署使用说明文档5. 核心功能逻辑说明用于AI Coding项目案例报告撰写## 八、额外优化需求1. 对于PaddleOCR初始化时设置use_gpuFalse,langch,show_logFalse 降低硬件占用同时添加模型下载异常捕获若网络原因下载失败给出中文提示2. 自然语言解析增加模糊日期识别今天、昨天、上周、月初自动转为标准日期 YYYY-MM-DD3. 消费AI总结生成一段格式化文本可以直接复制保存。新建一个文件夹把他拖到VScode里面在里面用Claude code开发项目提示词输入后一般来讲就是无脑yes在终端输入streamlit run main.py指令以上是我用Claude code 做出来的AI智能个人记账系统这个项目所有的源代码全部在 https://github.com/shuyingxiaoxiao/ai-bill-system