Appearance
provider=custom 指向官方 API 时成本统计显示 $0.00
问题
当 profile 配置 provider: custom 但 base_url 指向官方 provider 的 API 端点时,hermes insights 中的成本估算显示为:
Est. cost: $0.00 *
* Cost N/A for custom/self-hosted models
这是错误的——使用的模型(如 gpt-4.1-nano、claude-3-5-haiku)有公开定价,Hermes 在 agent/usage_calculator.py 中已经维护了这些模型的价格表。
受影响场景:当你通过代理、自托管网关(如 LiteLLM、one-api)或企业 API 端点使用官方模型,但仍路由到官方 provider 的底层 API 时。
解决方案
在 usage_calculator.py 或 provider 初始化逻辑中,添加 base_url 到已知 provider 的映射:
python
OFFICIAL_BASE_URLS = {
"https://api.openai.com/v1": "openai",
"https://api.anthropic.com": "anthropic",
"https://generativelanguage.googleapis.com": "google",
# ... 其他官方端点
}
def resolve_provider_for_pricing(provider: str, base_url: str) -> str:
if provider == "custom" and base_url:
for official_url, official_provider in OFFICIAL_BASE_URLS.items():
if base_url.rstrip("/").startswith(official_url.rstrip("/")):
return official_provider
return provider这样当 provider=custom 且 base_url 匹配已知官方端点时,自动映射到对应的定价表。
临时绕过:将 profile 的 provider 字段改为对应的官方 provider 名称(如 openai),而不是 custom。如果你使用的是兼容 OpenAI API 格式的网关,通常可以直接用 openai provider 类型。
Issue:#9412