Dograh使用量(Usage)计费机制详解:通话时长、Token费用如何统计
【免费下载链接】dograhOpen source voice AI platform. Self-hosted alternative to Vapi and Retell. On Prem, BYOK across Speech to Speech or LLM/STT/TTS, with a visual workflow builder, MCP native and telephony support.项目地址: https://gitcode.com/GitHub_Trending/do/dograh
Dograh是一个开源的语音 AI 平台(Open source voice AI platform),也是自托管场景下 Vapi、Retell 的免费替代方案。它支持 On-Prem 私有部署、BYOK(自带密钥),覆盖 Speech to Speech 或 LLM/STT/TTS 全链路,并提供可视化工作流构建器、MCP 原生支持与电话系统集成。对于自托管用户,最关心的莫过于一个问题:Dograh 的用量(Usage)到底是怎么统计和计费的?通话时长和 Token 费用各算在哪里?这篇文章带你从源码层面完整拆解 Dograh 使用量计费机制。
一、先搞懂两个计费维度:通话时长 vs Token 费用 📊
Dograh 的每一通对话(Workflow Run)在数据库中都保存了两个关键字段:
usage_info(用量信息):记录通话时长、Token 消耗等"用量"数据;cost_info(成本信息):记录换算后的美元成本,例如total_cost_usd。
这两个字段定义在运行记录模型 models.py 中:
一句话总结:时长是"物理量",Token 是"AI 消耗量"。使用 Dograh 托管模型时,平台按两者综合计费;使用 BYOK(自己的 OpenAI、Gemini 等密钥)时,模型费用直接由你的供应商账单产生,Dograh 只统计用量不赚差价。
二、通话时长如何统计:call_duration_seconds ⏱️
1. 时长从哪来?
每次通话结束后,系统会把实际通话秒数写入usage_info.call_duration_seconds字段。后续所有报表、筛选、计费都以这个字段为准。你可以在数据筛选层看到这个映射(filters.py):
duration→ 按usage_info.call_duration_seconds过滤tokenUsage→ 按cost_info.total_cost_usd过滤
2. 时长如何参与扣费?
通话结束后,Dograh 会触发一个"计费钩子",把完成状态上报给计费中心 MPS(Managed Platform Services),相关逻辑在 workflow_run_billing.py:
- 如果存在平台签发的MPS 关联 ID(correlation id),MPS 会以模型服务的实际用量为准绳计算时长;
- 否则,Dograh 直接上报本次运行的通话时长。
💡 注意:Dograh本身不扣费,它只负责"上报用量",真正的积分(Credits)账本由 MPS 统一持有。
运行完成后,你可以在运行详情页查看完整上下文与追踪信息:
三、Token 费用如何统计:cost_info 与缓存折扣 🤖
1. Token 用量的采集
在实时通话管线中,系统通过pipeline_metrics_aggregator持续累加每次 LLM 调用的 Token 用量,包括输入 Token、输出 Token,以及缓存 Token(cache_read_input_tokens、cache_creation_input_tokens)。缓存命中的输入 Token 在计费时按折扣计算,能显著降低长上下文对话的成本。
2. 费用如何换算?
累加完成后,按你所用模型的单价折算成cost_info.total_cost_usd(美元),这就是"Token 费用"的最终落点。使用 Dograh 托管模型(Dograh tab)时,费用计入你的 Dograh 积分余额;使用 BYOK 时,Token 费用由供应商直接向你收取。
四、通话前的余额预检:0.10 美元门槛 💰
并不是"先打电话后算钱"。在每次通话启动前,Dograh 会执行一次配额检查(Quota Check),核心规则在 quota_service.py:
- 账户剩余积分必须 ≥0.10 美元(
MINIMUM_DOGRAH_CREDITS_FOR_CALL),否则直接拒绝发起通话; - 托管版(Hosted):以"组织(Organization)"为计费主体;
- 开源版(OSS):以"服务密钥(Service Key)"为计费主体,每个密钥独立扣减积分。
服务密钥在开发者页面创建和管理,格式形如mps_sk_xxx:
⚠️ 如果服务密钥关联的组织积分不足,系统会明确提示"insufficient credits",并建议充值或切换为 BYOK 模型供应商。
五、月度用量报表:每天的费用是怎么算出来的 📅
Dograh 内置按自然月聚合的用量报表(organization_usage_client.py),计算规则非常直观:
| 指标 | 计算方式 |
|---|---|
| 通话分钟数 | 总通话秒数 ÷ 60 |
| 当日费用(USD) | 总秒数 × 组织每秒单价(price_per_second_usd) |
| Dograh Token | 费用(USD) × 100(1 美分 = 1 Token) |
| 报表周期 | 自然月(每月 1 日至月末) |
其中"每秒单价"是组织级配置字段(price_per_second_usd),自托管部署可自由定价。按天聚合时会先转换到你设置的时区再分组,保证跨时区团队看到的报表一致。
六、常见疑问 FAQ ❓
Q1:自托管(OSS)模式也收费吗?A:平台本身免费。只有当你选择使用 Dograh 托管的 AI 模型(填入 Dograh Service Key)时,才按服务密钥扣减积分;全部使用 BYOK 时,Dograh 不产生任何模型费用。
Q2:通话时长和 Token 会重复计费吗?A:不会。通话时长对应平台侧的通话/语音链路成本,Token 对应 LLM 推理成本,两者分属不同账目,各自独立统计。
Q3:哪里能查到每次通话的详细用量?A:每通对话的usage_info与cost_info都保存在运行记录中,可通过 Runs 列表按duration、tokenUsage筛选,也可在报表页查看月度聚合结果(organization_usage.py)。
写在最后 🎯
Dograh 的使用量计费机制可以浓缩为一句话:通话时长按秒计量、Token 按模型单价折算、余额在通话前预检、报表按自然月聚合。作为 Vapi / Retell 的开源自托管替代,它的计费逻辑透明可控——你既可以用 Dograh 托管模型开箱即用,也可以 BYOK 把成本压到最低。
想深入了解计费源码,可以从 quota_service.py(余额预检)、workflow_run_billing.py(用量上报)、organization_usage_client.py(报表聚合)三个文件入手。
【免费下载链接】dograhOpen source voice AI platform. Self-hosted alternative to Vapi and Retell. On Prem, BYOK across Speech to Speech or LLM/STT/TTS, with a visual workflow builder, MCP native and telephony support.项目地址: https://gitcode.com/GitHub_Trending/do/dograh
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考