Fix duplicate session billing and align pricing with DeepSeek ×3.
Serialize billSessionUsage with row locks, expose rates on recharge, add compensation script and admin usage views. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+21
-3
@@ -1,11 +1,29 @@
|
||||
// DeepSeek V4 Flash 公开价($/1M tokens,cache-miss 输入);见 api-docs.deepseek.com
|
||||
export const DEEPSEEK_FLASH_INPUT_USD_PER_1M = 0.14;
|
||||
export const DEEPSEEK_FLASH_OUTPUT_USD_PER_1M = 0.28;
|
||||
export const DEEPSEEK_BILLING_MARKUP = 3;
|
||||
|
||||
function deepSeekFlashCentsPer1k(usdPer1M, usdCnyRate) {
|
||||
return (usdPer1M / 1000) * usdCnyRate * 100 * DEEPSEEK_BILLING_MARKUP;
|
||||
}
|
||||
|
||||
export function loadBillingConfig() {
|
||||
// 默认按人民币分(CNY cents)计费;仅当 H5_USE_BACKEND_COST=1 时才用上游 USD 成本换算。
|
||||
const useBackendCost = process.env.H5_USE_BACKEND_COST === '1';
|
||||
const usdCnyRate = Number(process.env.H5_USD_CNY_RATE ?? 7.2);
|
||||
const defaultInputCentsPer1k = deepSeekFlashCentsPer1k(
|
||||
DEEPSEEK_FLASH_INPUT_USD_PER_1M,
|
||||
usdCnyRate,
|
||||
);
|
||||
const defaultOutputCentsPer1k = deepSeekFlashCentsPer1k(
|
||||
DEEPSEEK_FLASH_OUTPUT_USD_PER_1M,
|
||||
usdCnyRate,
|
||||
);
|
||||
return {
|
||||
useBackendCost,
|
||||
usdCnyRate: Number(process.env.H5_USD_CNY_RATE ?? 7.2),
|
||||
inputCentsPer1k: Number(process.env.H5_BILL_INPUT_CENTS_PER_1K ?? 2),
|
||||
outputCentsPer1k: Number(process.env.H5_BILL_OUTPUT_CENTS_PER_1K ?? 6),
|
||||
usdCnyRate,
|
||||
inputCentsPer1k: Number(process.env.H5_BILL_INPUT_CENTS_PER_1K ?? defaultInputCentsPer1k),
|
||||
outputCentsPer1k: Number(process.env.H5_BILL_OUTPUT_CENTS_PER_1K ?? defaultOutputCentsPer1k),
|
||||
minBillCents: Number(process.env.H5_MIN_BILL_CENTS ?? 1),
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user