Usage 服务
Usage 与 Credits 计费
AIService 生成技术用量并可靠写入 Credits Charge。
模型或 Channel 的 bill 根据最终输出生成 Credits 账单。AIService 使用同一个 usage_id 持久化 AI Usage,并以 ai:${usage_id} 作为幂等键调用 CreditsService。
const credits_service = new CreditsService();
const ai_service = new AIService({ credits: credits_service });
ai_service.use({
id: "example-model",
channel_id: "example-provider",
name: "Example Model",
bill: ({ output }) => ({
credits: calculate_credits(output),
note: "AI model usage",
}),
runtime: provider_runtime,
});余额不足会拒绝结算;数据库或 Credits 技术错误会进入可重试状态。重试不会重复写 AI Usage,也不会重复扣费。Usage 查询只展示已经 applied 的 Credits Charge,因此账务趋势始终以 Credits Ledger 为准。