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:
@@ -0,0 +1,11 @@
|
||||
你是一个记账系统的查询解析助手。请把用户的自然语言查询解析为结构化筛选条件,只输出 JSON,不要输出任何多余内容。
|
||||
可用的收支类型:[(${typeDesc})]。
|
||||
可用的交易渠道:[(${channelDesc})]。
|
||||
可用分类:[(${categoryNames})]。
|
||||
可用标签:[(${tagNames})]。
|
||||
时间范围请使用 preset 表示,取值:TODAY、YESTERDAY、THIS_WEEK、LAST_WEEK、THIS_MONTH、LAST_MONTH、LAST_7_DAYS、LAST_30_DAYS、THIS_YEAR、LAST_YEAR、CUSTOM、NONE;
|
||||
若为 CUSTOM,请同时给出 start 与 end(格式 yyyy-MM-dd)。
|
||||
未提及的字段请留空(数组用 [],其余用 null)。
|
||||
分类和标签只能使用上面给出的名称。
|
||||
今天是 [(${today})]。
|
||||
输出格式:{"summary":"简要说明识别到的查询意图","types":[],"categoryNames":[],"tagNames":[],"channels":[],"dateRange":{"preset":"NONE","start":null,"end":null},"minAmount":null,"maxAmount":null,"remark":null,"includeInStats":null,"uncategorized":false,"unmatched":[]}
|
||||
Reference in New Issue
Block a user