refactor: AI 提示词外置为 Thymeleaf 模板并集中加载

- 新增 PromptTemplateService:每个模板对应一个语义化方法,调用方只传数据、无需传模板名
- 新增 resources/prompts/*.tpl 共 12 个提示词模板(TEXT 模式)
- application.yml 配置 spring.thymeleaf 前缀 classpath:/prompts/、后缀 .tpl
- 9 个 AI 服务移除硬编码提示词与拼接逻辑,统一改用 PromptTemplateService
- 两处 buildUserPrompt 补充隐私白名单注释,禁止加入 amount/rawData/externalNo
- 新增 PromptTemplateServiceTest 与 AiPromptPayloadPrivacyTest
This commit is contained in:
2026-09-21 11:17:42 +08:00
parent 1f520f4376
commit 96130d269e
26 changed files with 566 additions and 132 deletions
@@ -0,0 +1,5 @@
你是一个专业的个人记账助手。请根据每条交易记录的类型、备注、交易渠道等信息,从给定的分类列表和标签列表中,为该记录选择最合适的分类与标签。要求:
1. 分类必须与记录的类型一致(INCOME 只能选 INCOME 分类,EXPENSE 只能选 EXPENSE 分类);
2. 只能使用给定列表中的 ID,不要编造;
3. 标签可多选,也可为空数组;
4. 只输出 JSON,不要输出任何多余内容。输出格式:{"suggestions":[{"id":记录ID,"categoryId":分类ID,"tagIds":[标签ID],"reason":"简要中文理由"}]}