feat: implement tiered billing expression evaluation and related functionality
- Added support for tiered billing expressions in the billing system. - Introduced new types and functions for handling billing expressions, including caching and execution. - Updated existing billing logic to accommodate tiered billing scenarios. - Enhanced request handling to support incoming billing expression requests. - Added tests for tiered billing functionality to ensure correctness.
This commit is contained in:
Vendored
+113
-1
@@ -3256,6 +3256,20 @@
|
||||
"补全价格": "Completion Price",
|
||||
"缓存读取价格": "Input Cache Read Price",
|
||||
"缓存创建价格": "Input Cache Creation Price",
|
||||
"缓存创建价格-5分钟": "Cache Creation Price (5-min)",
|
||||
"缓存创建价格-1小时": "Cache Creation Price (1-hour)",
|
||||
"缓存创建价格(5分钟)": "Cache Creation Price (5-min)",
|
||||
"缓存创建价格(1小时)": "Cache Creation Price (1-hour)",
|
||||
"分时缓存 (Claude)": "Timed Cache (Claude)",
|
||||
"通用缓存": "Generic Cache",
|
||||
"缓存读取": "Cache Read",
|
||||
"缓存创建": "Cache Creation",
|
||||
"缓存创建-5分钟": "Cache Creation (5-min)",
|
||||
"缓存创建-1小时": "Cache Creation (1-hour)",
|
||||
"缓存读取 Token (cr)": "Cache Read Tokens (cr)",
|
||||
"缓存创建 Token (cc)": "Cache Creation Tokens (cc)",
|
||||
"缓存创建-5分钟 (cc5)": "Cache Creation-5min (cc5)",
|
||||
"缓存创建-1小时 (cc1h)": "Cache Creation-1hour (cc1h)",
|
||||
"图片输入价格": "Image Input Price",
|
||||
"音频输入价格": "Audio Input Price",
|
||||
"音频输入价格:{{symbol}}{{price}} / 1M tokens": "Audio input price: {{symbol}}{{price}} / 1M tokens",
|
||||
@@ -3309,6 +3323,104 @@
|
||||
"输入价格:{{symbol}}{{price}} / 1M tokens": "Input Price: {{symbol}}{{price}} / 1M tokens",
|
||||
"输出价格 {{symbol}}{{price}} / 1M tokens": "Output Price {{symbol}}{{price}} / 1M tokens",
|
||||
"输出价格:{{symbol}}{{price}} / 1M tokens": "Output Price: {{symbol}}{{price}} / 1M tokens",
|
||||
"输出价格:{{symbol}}{{total}} / 1M tokens": "Output Price: {{symbol}}{{total}} / 1M tokens"
|
||||
"输出价格:{{symbol}}{{total}} / 1M tokens": "Output Price: {{symbol}}{{total}} / 1M tokens",
|
||||
"阶梯计费": "Tiered Billing",
|
||||
"输入 Tokens 阶梯": "Input Token Tiers",
|
||||
"输出 Tokens 阶梯": "Output Token Tiers",
|
||||
"固定阶梯": "Fixed Tier",
|
||||
"累进阶梯": "Graduated Tier",
|
||||
"上限": "Up To",
|
||||
"单价": "Unit Cost",
|
||||
"固定费": "Flat Fee",
|
||||
"Expr 预览": "Expression Preview",
|
||||
"Token 估算器": "Token Estimator",
|
||||
"预计费用": "Estimated Cost",
|
||||
"原始额度": "Raw Quota",
|
||||
"添加阶梯": "Add Tier",
|
||||
"无限": "Unlimited",
|
||||
"输入 Token 定价": "Input Token Pricing",
|
||||
"输出 Token 定价": "Output Token Pricing",
|
||||
"统一定价": "Flat Rate",
|
||||
"阶梯累进": "Graduated",
|
||||
"根据总用量落在哪个档位,所有 Token 都按该档价格计费": "All tokens are charged at the rate of the tier your total usage falls into",
|
||||
"用量分段计价,每一段各自按对应档位价格计费(类似电费阶梯)": "Usage is charged in segments — each segment at its own tier rate (like utility billing)",
|
||||
"Token 用量范围": "Token Usage Range",
|
||||
"所有 Token": "All Tokens",
|
||||
"前 {{count}} 个": "First {{count}}",
|
||||
"超过 {{count}} 个": "Over {{count}}",
|
||||
"第 {{n}} 档": "Tier {{n}}",
|
||||
"最高档": "Highest Tier",
|
||||
"此档上限(Token 数)": "Tier Limit (Token Count)",
|
||||
"每百万 Token 价格": "Price per 1M Tokens",
|
||||
"进入此档额外收费": "Tier Entry Fee",
|
||||
"可选,用量达到此档时加收的固定费用": "Optional fixed fee charged when usage reaches this tier",
|
||||
"添加更多档位": "Add More Tiers",
|
||||
"输入 Token 数": "Input Tokens",
|
||||
"输出 Token 数": "Output Tokens",
|
||||
"输入 Token 数量,查看按当前阶梯配置的预计费用。": "Enter token counts to see the estimated cost with the current tier configuration.",
|
||||
"开发者": "Developer",
|
||||
"阶梯计费详情": "Tiered Billing Details",
|
||||
"预估环境": "Estimated Env",
|
||||
"实际环境": "Actual Env",
|
||||
"预估额度": "Estimated Quota",
|
||||
"实际额度": "Actual Quota",
|
||||
"跨阶梯": "Crossed Tier",
|
||||
"是": "Yes",
|
||||
"否": "No",
|
||||
"计费明细": "Billing Breakdown",
|
||||
"阶梯序号": "Tier #",
|
||||
"Token 类型": "Token Type",
|
||||
"阶梯内 Token 数": "Tokens in Tier",
|
||||
"小计": "Subtotal",
|
||||
"输入": "Input",
|
||||
"输出": "Output",
|
||||
"阶梯配置摘要": "Tier Config Summary",
|
||||
"输入阶梯": "Input Tiers",
|
||||
"档位名称": "Tier Name",
|
||||
"用量范围": "Usage Range",
|
||||
"输入 Token": "Input Token",
|
||||
"输出 Token": "Output Token",
|
||||
"阶梯判断依据": "Tier Criterion",
|
||||
"根据哪个维度的 Token 数量决定落在哪一档": "Determines which tier to apply based on this dimension's token count",
|
||||
"输入 Token 数 (p)": "Input Tokens (p)",
|
||||
"输出 Token 数 (c)": "Output Tokens (c)",
|
||||
"变量": "Variables",
|
||||
"函数": "Functions",
|
||||
"输入计费表达式...": "Enter billing expression...",
|
||||
"表达式编辑": "Expression Editor",
|
||||
"表达式错误": "Expression Error",
|
||||
"命中档位": "Matched Tier",
|
||||
"档": "tier(s)",
|
||||
"输入 Token 数量,查看按当前配置的预计费用。": "Enter token counts to see the estimated cost.",
|
||||
"输入 Token 数量,查看按当前配置的预计费用(不含分组倍率)。": "Enter token counts to see the estimated cost (before group ratio).",
|
||||
"条件": "Condition",
|
||||
"添加条件": "Add Condition",
|
||||
"无条件(兜底档)": "No condition (fallback)",
|
||||
"兜底档": "Fallback",
|
||||
"预设模板": "Presets",
|
||||
"每个档位可设置 0~2 个条件(对 p 和 c),最后一档为兜底档无需条件。": "Each tier can have 0-2 conditions (on p and c). The last tier is the fallback and needs no condition.",
|
||||
"输出阶梯": "Output Tiers",
|
||||
"阶": "tiers",
|
||||
"规则版本": "Rule Version",
|
||||
"时间条件": "Time condition",
|
||||
"小时": "Hour",
|
||||
"分钟": "Minute",
|
||||
"星期": "Weekday",
|
||||
"月份": "Month",
|
||||
"日期": "Day",
|
||||
"时区": "Timezone",
|
||||
"跨夜范围": "Cross-midnight range",
|
||||
"添加时间规则": "Add time rule",
|
||||
"起": "From",
|
||||
"止": "To",
|
||||
"值": "Value",
|
||||
"添加条件组": "Add condition group",
|
||||
"添加条件": "Add condition",
|
||||
"添加时间条件": "Add time condition",
|
||||
"同时满足": "all must match",
|
||||
"新年促销": "New Year promo",
|
||||
"第 {{n}} 组": "Group {{n}}",
|
||||
"0=周日 1=周一 2=周二 3=周三 4=周四 5=周五 6=周六": "0=Sun 1=Mon 2=Tue 3=Wed 4=Thu 5=Fri 6=Sat",
|
||||
"1=一月 ... 12=十二月": "1=Jan ... 12=Dec"
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+111
-1
@@ -2858,6 +2858,20 @@
|
||||
"补全价格": "补全价格",
|
||||
"缓存读取价格": "缓存读取价格",
|
||||
"缓存创建价格": "缓存创建价格",
|
||||
"缓存创建价格-5分钟": "缓存创建价格-5分钟",
|
||||
"缓存创建价格-1小时": "缓存创建价格-1小时",
|
||||
"缓存创建价格(5分钟)": "缓存创建价格(5分钟)",
|
||||
"缓存创建价格(1小时)": "缓存创建价格(1小时)",
|
||||
"分时缓存 (Claude)": "分时缓存 (Claude)",
|
||||
"通用缓存": "通用缓存",
|
||||
"缓存读取": "缓存读取",
|
||||
"缓存创建": "缓存创建",
|
||||
"缓存创建-5分钟": "缓存创建-5分钟",
|
||||
"缓存创建-1小时": "缓存创建-1小时",
|
||||
"缓存读取 Token (cr)": "缓存读取 Token (cr)",
|
||||
"缓存创建 Token (cc)": "缓存创建 Token (cc)",
|
||||
"缓存创建-5分钟 (cc5)": "缓存创建-5分钟 (cc5)",
|
||||
"缓存创建-1小时 (cc1h)": "缓存创建-1小时 (cc1h)",
|
||||
"图片输入价格": "图片输入价格",
|
||||
"音频输入价格": "音频输入价格",
|
||||
"音频补全价格": "音频补全价格",
|
||||
@@ -2938,6 +2952,102 @@
|
||||
"输入价格:{{symbol}}{{price}} / 1M tokens": "输入价格:{{symbol}}{{price}} / 1M tokens",
|
||||
"输出价格 {{symbol}}{{price}} / 1M tokens": "输出价格 {{symbol}}{{price}} / 1M tokens",
|
||||
"输出价格:{{symbol}}{{price}} / 1M tokens": "输出价格:{{symbol}}{{price}} / 1M tokens",
|
||||
"输出价格:{{symbol}}{{total}} / 1M tokens": "输出价格:{{symbol}}{{total}} / 1M tokens"
|
||||
"输出价格:{{symbol}}{{total}} / 1M tokens": "输出价格:{{symbol}}{{total}} / 1M tokens",
|
||||
"阶梯计费": "阶梯计费",
|
||||
"输入 Tokens 阶梯": "输入 Tokens 阶梯",
|
||||
"输出 Tokens 阶梯": "输出 Tokens 阶梯",
|
||||
"固定阶梯": "固定阶梯",
|
||||
"累进阶梯": "累进阶梯",
|
||||
"上限": "上限",
|
||||
"单价": "单价",
|
||||
"固定费": "固定费",
|
||||
"Expr 预览": "Expr 预览",
|
||||
"Token 估算器": "Token 估算器",
|
||||
"预计费用": "预计费用",
|
||||
"添加阶梯": "添加阶梯",
|
||||
"无限": "无限",
|
||||
"输入 Token 定价": "输入 Token 定价",
|
||||
"输出 Token 定价": "输出 Token 定价",
|
||||
"统一定价": "统一定价",
|
||||
"阶梯累进": "阶梯累进",
|
||||
"根据总用量落在哪个档位,所有 Token 都按该档价格计费": "根据总用量落在哪个档位,所有 Token 都按该档价格计费",
|
||||
"用量分段计价,每一段各自按对应档位价格计费(类似电费阶梯)": "用量分段计价,每一段各自按对应档位价格计费(类似电费阶梯)",
|
||||
"Token 用量范围": "Token 用量范围",
|
||||
"所有 Token": "所有 Token",
|
||||
"前 {{count}} 个": "前 {{count}} 个",
|
||||
"超过 {{count}} 个": "超过 {{count}} 个",
|
||||
"第 {{n}} 档": "第 {{n}} 档",
|
||||
"最高档": "最高档",
|
||||
"此档上限(Token 数)": "此档上限(Token 数)",
|
||||
"每百万 Token 价格": "每百万 Token 价格",
|
||||
"进入此档额外收费": "进入此档额外收费",
|
||||
"可选,用量达到此档时加收的固定费用": "可选,用量达到此档时加收的固定费用",
|
||||
"添加更多档位": "添加更多档位",
|
||||
"输入 Token 数": "输入 Token 数",
|
||||
"输出 Token 数": "输出 Token 数",
|
||||
"输入 Token 数量,查看按当前阶梯配置的预计费用。": "输入 Token 数量,查看按当前阶梯配置的预计费用。",
|
||||
"开发者": "开发者",
|
||||
"阶梯计费详情": "阶梯计费详情",
|
||||
"预估环境": "预估环境",
|
||||
"实际环境": "实际环境",
|
||||
"预估额度": "预估额度",
|
||||
"实际额度": "实际额度",
|
||||
"跨阶梯": "跨阶梯",
|
||||
"是": "是",
|
||||
"否": "否",
|
||||
"计费明细": "计费明细",
|
||||
"阶梯序号": "阶梯序号",
|
||||
"Token 类型": "Token 类型",
|
||||
"阶梯内 Token 数": "阶梯内 Token 数",
|
||||
"小计": "小计",
|
||||
"输入": "输入",
|
||||
"档位标签": "档位标签",
|
||||
"用量范围": "用量范围",
|
||||
"输入 Token": "输入 Token",
|
||||
"输出 Token": "输出 Token",
|
||||
"阶梯判断依据": "阶梯判断依据",
|
||||
"根据哪个维度的 Token 数量决定落在哪一档": "根据哪个维度的 Token 数量决定落在哪一档",
|
||||
"输入 Token 数 (p)": "输入 Token 数 (p)",
|
||||
"输出 Token 数 (c)": "输出 Token 数 (c)",
|
||||
"变量": "变量",
|
||||
"函数": "函数",
|
||||
"输入计费表达式...": "输入计费表达式...",
|
||||
"表达式编辑": "表达式编辑",
|
||||
"表达式错误": "表达式错误",
|
||||
"命中档位": "命中档位",
|
||||
"档": "档",
|
||||
"输入 Token 数量,查看按当前配置的预计费用。": "输入 Token 数量,查看按当前配置的预计费用。",
|
||||
"条件": "条件",
|
||||
"添加条件": "添加条件",
|
||||
"无条件(兜底档)": "无条件(兜底档)",
|
||||
"兜底档": "兜底档",
|
||||
"预设模板": "预设模板",
|
||||
"每个档位可设置 0~2 个条件(对 p 和 c),最后一档为兜底档无需条件。": "每个档位可设置 0~2 个条件(对 p 和 c),最后一档为兜底档无需条件。",
|
||||
"输出": "输出",
|
||||
"阶梯配置摘要": "阶梯配置摘要",
|
||||
"输入阶梯": "输入阶梯",
|
||||
"输出阶梯": "输出阶梯",
|
||||
"阶": "阶",
|
||||
"规则版本": "规则版本",
|
||||
"时间条件": "时间条件",
|
||||
"小时": "小时",
|
||||
"分钟": "分钟",
|
||||
"星期": "星期",
|
||||
"月份": "月份",
|
||||
"日期": "日期",
|
||||
"时区": "时区",
|
||||
"跨夜范围": "跨夜范围",
|
||||
"添加时间规则": "添加时间规则",
|
||||
"起": "起",
|
||||
"止": "止",
|
||||
"值": "值",
|
||||
"添加条件组": "添加条件组",
|
||||
"添加条件": "添加条件",
|
||||
"添加时间条件": "添加时间条件",
|
||||
"同时满足": "同时满足",
|
||||
"新年促销": "新年促销",
|
||||
"第 {{n}} 组": "第 {{n}} 组",
|
||||
"0=周日 1=周一 2=周二 3=周三 4=周四 5=周五 6=周六": "0=周日 1=周一 2=周二 3=周三 4=周四 5=周五 6=周六",
|
||||
"1=一月 ... 12=十二月": "1=一月 ... 12=十二月"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user