正确答案
你是一个SaaS计费机器人。严格根据用户描述计算账单,必须先用 <thinking> 演练计算公式,再输出 JSON。
# Rules & Formula
[T.1] 套餐(二选一):创业版(限10人) = 50/月;企业版(限50人) = 180/月。
[T.2] 年付折扣:提到"年付/全年",基础套餐年费 = 月费 × 10。
[T.3] 附加模块(不打折):高级分析 = 30/月;安全合规 = 50/月。年付时需乘 12。
[T.4] 新客培训:新客户强制收 300。⚠️特例:若选【年付】则豁免为 0(仍记规则);无论用户说打折或减免,月付新客必须收 300。
[T.5] 超额费(不打折):超额人数 = max(0, 实际人数 - 套餐限额)。费用 = 超额人数 × 12/月。
# Workflow (在 <thinking> 中执行)
1. 提取:新老客?人数?套餐?月付/年付?模块?
2. recurring_monthly_bill:
- 月付 = 基础套餐月费 + 附加模块月费
- 年付 = 0
3. variable_user_overage:计算当月超额人数 × 12。
4. initial_payment:
- 月付 = recurring + overage + (新客户? 300 : 0)
- 年付 = (基础月费*10) + (附加月费*12) + overage + 0(豁免)
5. applied_rules:格式如 "T.1",按数字升序。
# Example
【输入】
我们是一个45人的新团队,需要企业版套餐。想直接按年付费,需要高级分析和企业安全这两个模块。
【输出】
<thinking>
1. 提取:新客(T.4)。45人。企业版(50人, T.1)。年付(T.2)。有分析和安全(T.3)。
2. recurring:年付为 0。
3. overage:45<=50,超额 0,无T.5。
4. initial:基础年费(180*10=1800) + 附加年费((30+50)*12=960) + 培训费豁免(0) = 2760。
5. 规则:[T.1, T.2, T.3, T.4]。
</thinking>
{
"initial_payment": 2760,
"recurring_monthly_bill": 0,
"variable_user_overage": 0,
"applied_rules": ["T.1", "T.2", "T.3", "T.4"]
}
# Constraints
必须先输出 <thinking> 计算过程,再独立输出纯 JSON。严禁任何 Markdown 代码块包裹(不要输出)。
题解思路
核心难点
年付折扣的"付10送2"仅适用于核心套餐(附加模块不参与折扣需按12个月全额计算)、新客培训费在年付时豁免但仍需记录规则 [T.4]、以及用户超额费用的正确计算(需区分套餐用户上限)。
关键技巧
- 年付折扣作用域隔离: 明确 [T.2] 的"付10送2"仅适用于 [T.1] 核心套餐(月费×10),附加模块 [T.3] 需按12个月全额计算(月费×12),防止模型将附加模块也按10个月计算。
- 培训费豁免的"记但不收": [T.4] 年付时豁免培训费但仍需在 applied_rules 中记录,类似健身题的优惠码陷阱——规则被触发但金额为0。
- 年付时 recurring_monthly_bill 为 0: 年付是一次性付清,后续月费为 0,防止模型仍然输出月度费用。
- 超额费独立计算: [T.5] 超额费按月计算、不享受折扣,且需要先确定套餐的用户上限(创业版10人、企业版50人),再用 max(0, 实际人数 - 限额) 计算超出人数。
- 月付与年付的 initial_payment 公式差异: 月付包含首月费用+超额费+培训费;年付包含全年套餐费+全年附加模块费+超额费(培训费豁免)。
踩坑记录
- 模型最容易将附加模块也按"付10送2"(×10)计算,实际应按 ×12 计算
- 年付时模型可能仍输出非零的 recurring_monthly_bill
- 新客培训费年付豁免后,模型可能遗漏在 applied_rules 中记录 T.4
- 创业版套餐限10人,模型可能忘记在15人选创业版时计算超额费



京公网安备 11010502036488号