目录
概述
-
轻松记账是一款简洁易用的个人财务记录工具,帮助用户高效管理日常收支,实现理财目标。
-
实现记账软件基本功能:
-
微信一键登录/注册
-
资产账户管理
-
用户账本管理
-
记账功能
-
转账功能
-
账单显示,多条件账单过滤
-
日历视图展示每日收支情况
-
AI记账和聊天
-
-
使用主流技术栈,易于进行二次开发。
项目源码在文章最后.
开发文档
飞书文档:https://scnw01ap0tqh.feishu.cn/wiki/JFTSwgGkwiql4mk7V9mcNGYanQe?from=from_copylink
文档包含:数据库表设计,原型图设计,开发日志(软件实现细节)...
软件技术栈
-
前端
-
uni-app项目:运行测试环境为【微信小程序】。
-
vue3:使用Vue3组合式语法进行开发。
-
@escook/request-miniprogram:网络请求工具,更方便的与后端做数据交互。
-
dayjs:格式化时间处理。
-
uni-ui:uni-app的组件用于快速搭建页面。
-
-
后端
-
SPringBoot后端开发框架。
-
MyBatisPlus持久层框架。
-
dashscope-sdk-java:阿里百炼AI开发SDK,用于开发AI模块。
-
RabbitMQ消息中间件:在软件逻辑中做异步处理。
-
java-jwt:登录鉴权模块。
-
lombok开发工具库。
-
-
数据库
-
MYSQL数据库管理系统
-
Druid德鲁伊数据源
-
AI记账模块
软件中接入deepseek实现聊天和记账,记账采用聊天对话的方式进行记账参数构建。
AI记账逻辑-时序图
简述:用户向AI大模型输入内容,大模型解析用户输入内容,如果解析判断为需要记账则返回特定的记账参数JSON数据,前端使用返回的记账参数显示给用户并调用记账接口实现记账。如果解析判断为“仅聊天”则正常与用户正常进行输出聊天。
使用平台:阿里云百炼
使用模型:qwen-plus
-
经在此场景下实测qwen-plus(阿里千问)比deepseek-v3在此场景下效果稍稍好些。
-
至于deepseek-r1用在这就是杀鸡用牛刀了,并且在此没有推理需求。
-
所以综合成本,需求能力和速度最终决定使用qwen-plus模型。
关于AI的准确性
AI记账核心需求是将用户输入内容进行理解并生成JSON结构化数据输出。
当前软件选择的方案是【基于规则引擎的简单记账】,即通过设计结构化Prompt模板,引导大语言模型(LLM)完成以下任务:
-
意图识别:判断用户输入是否包含记账请求
-
实体抽取:提取金额、分类、时间等关键字段
-
数据格式化:输出预定义JSON结构
比如prompt如下(完整prompt请到Gitee源码中查看):
此方案的核心优势在于:
-
开发成本低:无需训练专用模型
-
快速迭代:通过Prompt工程优化准确率
-
可解释性强:所有规则可见可控
但也存在局限性:
-
泛化能力弱:无法处理训练数据外的表述变体
-
误差累积:规则间冲突可能导致意外行为
-
长尾问题:人类思想还是太超前/抽象,根本没有办法覆盖所有边缘情况。
因此更完美的解决方案应当是【预训练模型 + 微调】...
AI模块开发流程
-
后端引入开发SDK(dashscope-sdk-java);
-
编写用户管理器:使得软件AI模块支持多用户连续对话。
-
编写AI工具类:实现调用阿里百炼AI模型。
-
编写接口实现与前端互通调试。
-
前端localstorage本地存储聊天消息做到持久化。
// AI处理之后的记账JSON结构示例
{
"type": "bookkeeping",
"content": {
"category": {"id":6, "name":"零食", "type":2},
"amount": 18.0,
"transactionTime": "2023-08-20 14:00:00",
"remark": "零食消费",
"account": {
"id": 1,
"name": ”支付宝“,
"balance": 100.00
}
}
}
项目演示
登录注册
使用微信一键登录/注册.
资产账户管理
账本管理
记账功能
转账
查看账单
日历
AI记账与聊天
Gitee源码地址
访问地址:gitee.com/maohe101/easy-bookkeeping
关于项目的数据库数据和项目静态文件都在Gitee代码仓库中。
以及项目的运行启动流程也在Gitee中有详细阐述。