# 轻松记账(AI记账) **Repository Path**: Lhq688/easy-bookkeeping ## Basic Information - **Project Name**: 轻松记账(AI记账) - **Description**: ①轻松记账是一款简洁易用的个人财务记录工具,帮助用户高效管理日常收支,实现理财目标。 ②实现记账软件基本功能,接入AI帮忙记账。 ③使用主流技术:uni-app项目运行为【微信小程序】、springboot - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 11 - **Created**: 2025-11-21 - **Last Updated**: 2025-11-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 轻松记账 #### 介绍 - 轻松记账是一款简洁易用的个人财务记录工具,帮助用户高效管理日常收支,实现理财目标。 - 实现记账软件基本功能: - 微信一键登录/注册 - 资产账户管理 - 用户账本管理 - 记账功能 - 转账功能 - 账单显示,多条件账单过滤 - 日历视图展示每日收支情况 - AI记账和聊天 - 使用主流技术栈,易于进行二次开发。 #### 软件演示和开发文档/日志 - CSDN:[点击访问CSDN文章](https://blog.csdn.net/m0_60155232/article/details/145963488?sharetype=blogdetail&sharerId=145963488&sharerefer=PC&sharesource=m0_60155232&spm=1011.2480.3001.8118) - 飞书文档:https://scnw01ap0tqh.feishu.cn/wiki/JFTSwgGkwiql4mk7V9mcNGYanQe?from=from_copylink > 飞书文档和CSDN中都有软件截图演示。 > > CSDN中有软件实现的一些细节描述。 > > 飞书文档中有更细的开发记录:数据库设计,原型图设计,开发日志等信息。 #### 软件技术栈 - **前端** - **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**德鲁伊数据源 #### 项目目录介绍 - **easy_bookkeeping_java**:java**后端**SpringBoot项目。 - **easy_bookkeeping_uniapp**:uni-app**前端微信小程序**vue3项目。 - **maohe_bookkeeping.nb3**:数据表数据。 - **项目静态文件.zip**:放置项目所需的静态文件(图片)。 #### 如何启动项目 - 数据库 - 在Gitee仓库下载好maohe_bookkeeping.nb3数据表备份文件。 - 到Navicat(或任意数据库数据管理工具)先创建数据库easy_bookkeeping,再使用nb3备份文件在数据库下"备份还原"出数据表即可。 - 静态文件 - 在Gitee仓库下载静态文件压缩包。 - 将压缩包解压到电脑上任意目录,后续在后端需要配置目录路径。 - RabbitMQ环境 - 因为软件后端有使用MQ做异步处理,所以需要你将**RabbitMQ**环境准备好。 - 如果**没有安装**RabbitMQ环境,也**不想去安装**,那么**你需要做的**: - 进入类com.mh.common.RabbitMessageListener中 - 将三个异步操作(转账异步添加资产变动数据,记账异步记录资产变动数据,异步添加默认账本)逻辑转写到MQ消息发送的位置(如**UserServiceImpl**中的**rabbitTemplate.convertAndSend("addBookForNewUser", openid)**代码位置),变成同步操作。 - 如果**没有MQ环境:**①用户注册不会自动为其添加默认账本 ②在记账或转账时不会添加资产变动和账户变动记录。 - 后端 - 准备好上面的数据库,静态文件和MQ环境之后,可以开始打开后端项目进行配置。 - 用IDEA打开后端项目目录【easy_bookkeeping_java】 - 打开**pom.xml**导入好依赖。 - 编辑配置文件**application-read.yml**: - 将文件名改为application.yml。 - 关于ssl配置,如果在本地跑,可以将ssl的配置注释掉。否则就需要把你的域名和对应域名的ssl证书和证书密码配置上(**Tomcat证书**)。 ``` server: port: 9090 # 本地环境测试可以将下面配置注释掉 ssl: protocol: TLS key-store: classpath:tally.meibug.cn_server.jks # 将ssl证书文件放到resources目录下 key-store-password: Am****&9s ``` - 关于数据源配置:将准备好的数据库信息配置好。 ``` datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/easy_bookkeeping?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: root type: com.alibaba.druid.pool.DruidDataSource ``` - 配置MQ连接信息 ``` rabbitmq: host: 你自己的RabbitMQ主机地址 port: 5672 username: 用户名 password: 密码 ``` - 配置微信小程序开发者账号信息 ``` # 微信"一键登录"所使用的配置 APPID: wx3cdd5***0261b4f # 微信小程序APPID APPSECRET: 自己的微信小程序对应的安全密钥 # 安全密钥 ``` - 配置好文件系统相关路径 ``` # 文件 存取 根路径 FILEPATH: D:\tmp\img\easy_bookkeeping\ # 本地环境:编写自己解压静态资源压缩包的路径 #FILEPATH: /maohe/code/bookkeeping/img/ # 线上环境 # 所使用环境,向前端返回图片时用来拼接URL MY_ENV: http://localhost:9090\ # 本地环境 #MY_ENV: https://tally.meibug.cn:9090 # 线上环境 ``` - 配置阿里云百炼AI KEY ``` # 阿里云百炼APIKEY DASHSCOPE_API_KEY: sk-6906d2*******614ef7cf5d8 ``` - **运行后端 EasyBookkeepingJavaApplication**。 - 前端 - HBuilderX打开前端项目目录easy_bookkeeping_uniapp。 - ①打开根目录下**main.js**文件修改: ``` // 定义文件系统服务器根地址 // 本地环境 uni.$baseUrl = "http://localhost:9090/commons/download?picName=" // 线上环境 //uni.$baseUrl = "https://tally.meibug.cn:9090/commons/download?picName=" ``` - ②打开**utils目录**下**request.js**文件修改: ``` // 配置请求根路径 $http.baseUrl = 'http://localhost:9090' // 线上环境 //$http.baseUrl = 'https://tally.meibug.cn:9090' ``` - 启动【运行—>运行到小程序模拟器—>微信开发者工具】 #### 关于软件AI大模型的选择 后端utils.AIUtils中的buildGenerationParam方法中修改: ``` private GenerationParam buildGenerationParam(List messages) { return GenerationParam.builder() .apiKey(apiKey) .model("在此书写AI模型名称") .messages(messages) .resultFormat(GenerationParam.ResultFormat.MESSAGE) .build(); } ``` **PS:**软件经具体场景"帮忙记账"实测模型**qwen-plus**比**deepseek-v3**效果稍稍好些,至于**deepseek-r1**用在这就是杀鸡用牛刀了,并且在此软件场景没有推理及展示推理过程需求。所以综合成本和效率决定使用**qwen-plus**。 阿里百炼AI平台大模型列表:[模型列表_大模型服务平台百炼(Model Studio)-阿里云帮助中心](https://help.aliyun.com/zh/model-studio/getting-started/models#0d841ef5caz0x) > 最后,软件版本为v0.1仅实现基本功能+AI赋能,功能代码仍存在部分不完善,如有时间会回头补充...