338c72f7a53805e5c8fbd060acafe87bf90f102c
将各 AI 服务中散落构造的提示词集中到 resources/prompts 的 Thymeleaf 文本模板,并把同一功能的系统提示词与用户提示词合并到同一文件的不同片段,由 __fragment 变量经 th:if 选择渲染,使提示词与 Java 代码进一步解耦、便于集中维护。 变更内容: - 新增用户提示词模板,覆盖记账、图片记账、查询、统计、转 SQL、生成分类/标签/渠道、账单关系、Emoji 与配色建议、分类标签建议、规则生成及连接测试等全部 AI 调用。 - 将系统提示词与用户提示词合并为 14 个 ai-*.tpl,每个文件含 system/user 片段(建议功能含 strictSystem/newSystem/user 三段),经 git mv 重命名、git rm 删除旧模板。 - PromptTemplateService 新增 13 个 xxxUserPrompt 方法,render 改为整模板渲染并注入 __fragment 选择片段。 - 各 AI 服务改为调用模板渲染用户提示词,白名单字段筛选与去重逻辑仍保留在 Java 侧。 说明: - 用户提示词载荷仅发送白名单字段,不含 amount、rawData、externalNo 等敏感信息。 - JSON 载荷中的字符串值在模板内用 #strings.escapeJavaScript 转义,保证输出为合法 JSON。 - 相较改造前,JSON 中值为 null 的字符串字段渲染为空串,category 为 null 时仍输出 null,语义等价。
汇账
个人汇账应用:收支记录、分类标签、账单导入、归类规则、AI 智能记账、统计图表、定时提醒与系统日志。
功能特性
- 收支记录:增删改查、筛选分页、批量操作、Excel 导出,支持「计入统计」「备注隐藏」开关。
- 分类与标签:增删改查与默认数据,分类图标/标签颜色支持 AI 推荐。
- 交易渠道:内置渠道 + 自定义渠道(改名不影响历史账单,有账单使用时不可删除)。
- 统计与图表:月度收支、分类占比、收支趋势、分组统计与概览(ECharts)。
- 账单导入:支付宝/微信/美团/淘宝/京东/交行/招行,支持 zip(含加密压缩包),预览后确认导入并按交易号去重。
- 自定义规则:关键词、收支类型、金额区间组合,命中后自动应用分类与标签。
- AI 能力:分类/标签建议与一键采纳、自然语言查询与记账、图片记账(SSE 进度)、生成分类标签与图标颜色、用量统计。
- 定时提醒与通知:每天/每周/每月提醒,邮箱与 Server 酱推送。
- 系统日志:访问/登录日志查询,运行日志在线查看(SSE 实时推送)。
- 账号与多语言:JWT 登录、注册开关、运行时切换 SQLite/MySQL、中英日界面。
快速开始
前置条件:JDK 21(Temurin)、Node.js。
# 后端(默认 8080,接口文档 http://localhost:8080/doc.html)
gradlew.bat bootRun
# 前端(默认 5173)
cd frontend && npm run dev
数据库无需预先准备:启动后在页面按引导选择 SQLite(本地文件,零配置)或 MySQL,保存后立即生效并自动建表;配置持久化于 config/database.json。
构建与打包
gradle bootJar bootGuiJar # 普通 jar + 带 GUI 启动器的 jar,产物在 build/libs/
gradle jpackageAppImage # 免安装应用(普通 + GUI),产物在 build/jpackage/
- GUI jar 内嵌前后端与跨平台 JavaFX,单文件即可运行;配置与日志默认落在 jar 所在目录,可用
--home=<目录>或环境变量LEDGERLY_HOME指定。 - app-image 自带运行时、免安装,但只能为当前操作系统生成。
更详细的目录结构、启动器、jpackage、图标与开发环境说明见
AGENTS.md。
Languages
Java
62%
Vue
26.2%
TypeScript
10.8%
Go Template
0.9%