feat(cost-map): add Cloudflare Workers AI whisper transcription models

This commit is contained in:
mubashir1osmani 2026-08-26 14:42:01 -04:00
parent 7bc80994b7
commit de33cffbf1
3 changed files with 89 additions and 0 deletions

View file

@ -13297,6 +13297,39 @@
"output_cost_per_token": 1e-06,
"supports_reasoning": true
},
"cloudflare/@cf/openai/whisper": {
"input_cost_per_second": 7.5e-06,
"litellm_provider": "cloudflare",
"mode": "audio_transcription",
"output_cost_per_second": 0.0,
"source": "https://developers.cloudflare.com/workers-ai/models/whisper/",
"supported_endpoints": [
"/v1/audio/transcriptions"
]
},
"cloudflare/@cf/openai/whisper-large-v3-turbo": {
"input_cost_per_second": 8.5e-06,
"litellm_provider": "cloudflare",
"mode": "audio_transcription",
"output_cost_per_second": 0.0,
"source": "https://developers.cloudflare.com/workers-ai/models/whisper-large-v3-turbo/",
"supported_endpoints": [
"/v1/audio/transcriptions"
]
},
"cloudflare/@cf/openai/whisper-tiny-en": {
"input_cost_per_second": 0.0,
"litellm_provider": "cloudflare",
"metadata": {
"notes": "Cloudflare publishes no unit pricing for this beta model, so cost tracking reports $0 until they do"
},
"mode": "audio_transcription",
"output_cost_per_second": 0.0,
"source": "https://developers.cloudflare.com/workers-ai/models/whisper-tiny-en/",
"supported_endpoints": [
"/v1/audio/transcriptions"
]
},
"codestral/codestral-2405": {
"input_cost_per_token": 0.0,
"litellm_provider": "codestral",

View file

@ -13297,6 +13297,39 @@
"output_cost_per_token": 1e-06,
"supports_reasoning": true
},
"cloudflare/@cf/openai/whisper": {
"input_cost_per_second": 7.5e-06,
"litellm_provider": "cloudflare",
"mode": "audio_transcription",
"output_cost_per_second": 0.0,
"source": "https://developers.cloudflare.com/workers-ai/models/whisper/",
"supported_endpoints": [
"/v1/audio/transcriptions"
]
},
"cloudflare/@cf/openai/whisper-large-v3-turbo": {
"input_cost_per_second": 8.5e-06,
"litellm_provider": "cloudflare",
"mode": "audio_transcription",
"output_cost_per_second": 0.0,
"source": "https://developers.cloudflare.com/workers-ai/models/whisper-large-v3-turbo/",
"supported_endpoints": [
"/v1/audio/transcriptions"
]
},
"cloudflare/@cf/openai/whisper-tiny-en": {
"input_cost_per_second": 0.0,
"litellm_provider": "cloudflare",
"metadata": {
"notes": "Cloudflare publishes no unit pricing for this beta model, so cost tracking reports $0 until they do"
},
"mode": "audio_transcription",
"output_cost_per_second": 0.0,
"source": "https://developers.cloudflare.com/workers-ai/models/whisper-tiny-en/",
"supported_endpoints": [
"/v1/audio/transcriptions"
]
},
"codestral/codestral-2405": {
"input_cost_per_token": 0.0,
"litellm_provider": "codestral",

View file

@ -75,6 +75,29 @@ def test_additional_current_models_are_present():
assert entry["output_cost_per_token"] > 0
@pytest.mark.parametrize(
"key, published_price_per_audio_minute",
[
("cloudflare/@cf/openai/whisper", 0.00045),
("cloudflare/@cf/openai/whisper-large-v3-turbo", 0.00051),
],
)
def test_whisper_transcription_pricing_is_stored_per_second(key, published_price_per_audio_minute):
entry = litellm.model_cost[key]
assert entry["litellm_provider"] == "cloudflare"
assert entry["mode"] == "audio_transcription"
assert entry["supported_endpoints"] == ["/v1/audio/transcriptions"]
assert entry["output_cost_per_second"] == 0.0
assert entry["input_cost_per_second"] == pytest.approx(published_price_per_audio_minute / 60)
def test_whisper_tiny_en_is_present_and_unpriced():
entry = litellm.model_cost["cloudflare/@cf/openai/whisper-tiny-en"]
assert entry["mode"] == "audio_transcription"
assert entry["input_cost_per_second"] == 0.0
assert entry["output_cost_per_second"] == 0.0
def test_root_and_backup_have_identical_cloudflare_keys():
if not os.path.exists(ROOT_MAP):
pytest.skip("root cost map only ships in source checkouts")