信用卡积分精算 - 题解
一、题目分析
本题要求根据《白金卡积分通用准则 v5.0》计算一笔信用卡交易的最终积分。规则链路:
- [R.5] 负面清单检查(优先级最高,命中则 0 分)
- [R.1] 基础积分 = 消费金额
- [R.2] 场景倍数(餐饮/酒旅 5x,网络支付 2x,取最高)
- [R.3] 生日月翻倍(倍数 ×2)
- [R.4] BlackCard 额外 +888
- [R.6] 封顶 20000
输出 final_score 和 triggered_rules 两个字段。
二、难点分析
- 倍数取最高而非叠加:支付宝+餐厅同时满足 2x 和 5x,需取 max=5x,模型容易叠加为 7x 或 10x
- 生日月翻倍作用于倍数后的结果:是先乘场景倍数再乘2,不是单独加成
- BlackCard +888 不参与翻倍:固定加赠在所有倍数计算之后,模型容易把 888 也翻倍
- 封顶在 BlackCard 加成之后:顺序敏感,先加 888 再判断是否超 20000
- triggered_rules 格式:需要带方括号
[R.1]而非R.1
三、Prompt 设计思路
3.1 严格的步骤化流程(Step1-Step7)
将 6 条规则转为 7 步顺序执行的流水线,每步有明确的输入输出变量名(base、current),避免模型跳步或乱序。
3.2 负面清单前置短路
Step1 就检查黑名单,命中直接输出 0 分,不进入后续计算。这种"短路"设计减少了模型在边界情况下的出错概率。
3.3 品类关键词扩展
将"餐饮"扩展为"餐饮/餐厅/米其林/饭店/餐","酒旅"扩展为"酒店/旅游/民宿",增加模型的匹配准确率。还特别标注"星巴克/咖啡店也属于餐饮"。
3.4 多场景完整示例
提供 5 个示例覆盖:
- BlackCard + 生日月 + 多品类 → 取 max 倍率
- 高金额触发封顶
- 普通卡 + 酒旅 + 生日月 → 封顶
- 普通卡 + 网络支付(非餐饮)→ 2x
- 各种边界组合
3.5 区分"普通卡"和"BlackCard"
显式标注"普通卡不加",避免模型对非 BlackCard 用户也加 888。
四、关键技巧
- 思维链引导:
<thinking>标签要求模型先计算再输出 - 变量名传递:用 base、current 等变量名让每步的计算结果串联起来
- 示例中展示完整算式:如
200×5=1000, ×2=2000, +888=2888,让模型学会计算过程 - 封顶检查位置明确:显式说明"这一步在 BlackCard 加成之后执行"
- 格式约束:结尾给出空 JSON 模板锚定输出格式,triggered_rules 示例中带方括号
- 普通卡也要检查封顶:用示例(5000×5×2=50000→20000)打破"只有 BlackCard 才会封顶"的假设



京公网安备 11010502036488号