fix(cost): track OpenAI/Azure web search tool cost per call

Adds search_context_cost_per_query pricing for the 82 OpenAI/Azure models that advertise supports_web_search but had none (gpt-5 family, o-series, deep-research at $0.01/call; gpt-4.1 at $0.025/call), so built-in web search is no longer billed as $0. Also counts web_search_call items in Responses output so N searches bill N times instead of once; usage-count providers (gemini, anthropic, xai, vertex) still route through get_cost_for_web_search_request and are unaffected.

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Devin AI 2026-07-30 23:03:19 +00:00
parent 7c56317edf
commit 3e4669dbc5
4 changed files with 924 additions and 1 deletions

View file

@ -117,10 +117,28 @@ class StandardBuiltInToolCostTracking:
if result is not None:
return result
return StandardBuiltInToolCostTracking.get_cost_for_web_search(
per_call_cost = StandardBuiltInToolCostTracking.get_cost_for_web_search(
web_search_options=standard_built_in_tools_params.get("web_search_options", None),
model_info=model_info,
)
return per_call_cost * StandardBuiltInToolCostTracking._count_web_search_calls(response_object)
@staticmethod
def _count_web_search_calls(response_object: object) -> int:
"""
Number of web searches to bill for on the per-call pricing path.
Providers that report a request count in usage (gemini, anthropic, xai, vertex) are handled by
get_cost_for_web_search_request and never reach here. This path prices per call, so it must count
the web_search_call items. Chat-completions responses only expose url_citation annotations with no
count, so they floor to a single billable search.
"""
if isinstance(response_object, ResponsesAPIResponse):
count = sum(
1 for output_item in response_object.output if getattr(output_item, "type", None) == "web_search_call"
)
return max(count, 1)
return 1
@staticmethod
def _handle_file_search_cost(

View file

@ -5760,6 +5760,11 @@
"supports_vision": true
},
"azure/gpt-5.2-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 2.1e-05,
"litellm_provider": "azure",
"max_input_tokens": 272000,
@ -5791,6 +5796,11 @@
"supports_web_search": true
},
"azure/gpt-5.2-pro-2025-12-11": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 2.1e-05,
"litellm_provider": "azure",
"max_input_tokens": 272000,
@ -6044,6 +6054,11 @@
"supports_vision": true
},
"azure/gpt-5.4-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -6079,6 +6094,11 @@
"supports_web_search": true
},
"azure/gpt-5.4-pro-2026-03-05": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -6114,6 +6134,11 @@
"supports_web_search": true
},
"azure/gpt-5.6": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1e-06,
"cache_read_input_token_cost_priority": 1e-06,
@ -6159,6 +6184,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/gpt-5.6-sol": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1e-06,
"cache_read_input_token_cost_priority": 1e-06,
@ -6204,6 +6234,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/gpt-5.6-terra": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 5e-07,
"cache_read_input_token_cost_priority": 5e-07,
@ -6249,6 +6284,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/gpt-5.6-luna": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1e-07,
"cache_read_input_token_cost_above_272k_tokens": 2e-07,
"cache_read_input_token_cost_priority": 2e-07,
@ -6294,6 +6334,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/us/gpt-5.6": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.375e-06,
@ -6336,6 +6381,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/us/gpt-5.6-sol": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.375e-06,
@ -6378,6 +6428,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/us/gpt-5.6-terra": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.75e-07,
"cache_read_input_token_cost_above_272k_tokens": 5.5e-07,
"cache_read_input_token_cost_priority": 6.875e-07,
@ -6420,6 +6475,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/us/gpt-5.6-luna": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.1e-07,
"cache_read_input_token_cost_above_272k_tokens": 2.2e-07,
"cache_read_input_token_cost_priority": 2.75e-07,
@ -6462,6 +6522,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/eu/gpt-5.6": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.375e-06,
@ -6504,6 +6569,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/eu/gpt-5.6-sol": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.375e-06,
@ -6546,6 +6616,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/eu/gpt-5.6-terra": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.75e-07,
"cache_read_input_token_cost_above_272k_tokens": 5.5e-07,
"cache_read_input_token_cost_priority": 6.875e-07,
@ -6588,6 +6663,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/eu/gpt-5.6-luna": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.1e-07,
"cache_read_input_token_cost_above_272k_tokens": 2.2e-07,
"cache_read_input_token_cost_priority": 2.75e-07,
@ -6630,6 +6710,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/gpt-5.5": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1e-06,
"cache_read_input_token_cost_priority": 1e-06,
@ -6675,6 +6760,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/us/gpt-5.5": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.38e-06,
@ -6717,6 +6807,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/eu/gpt-5.5": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.38e-06,
@ -6759,6 +6854,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/gpt-5.5-2026-04-23": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1e-06,
"cache_read_input_token_cost_priority": 1e-06,
@ -6801,6 +6901,11 @@
"supports_web_search": true
},
"azure/us/gpt-5.5-2026-04-23": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.38e-06,
@ -6840,6 +6945,11 @@
"supports_web_search": true
},
"azure/eu/gpt-5.5-2026-04-23": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.38e-06,
@ -6879,6 +6989,11 @@
"supports_web_search": true
},
"azure/gpt-5.5-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -6918,6 +7033,11 @@
"supports_low_reasoning_effort": false
},
"azure/gpt-5.5-pro-2026-04-23": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -6953,6 +7073,11 @@
"supports_web_search": true
},
"azure/gpt-5.4-mini": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 7.5e-08,
"input_cost_per_token": 7.5e-07,
"litellm_provider": "azure",
@ -6988,6 +7113,11 @@
"supports_xhigh_reasoning_effort": false
},
"azure/gpt-5.4-mini-2026-03-17": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 7.5e-08,
"input_cost_per_token": 7.5e-07,
"litellm_provider": "azure",
@ -7023,6 +7153,11 @@
"supports_xhigh_reasoning_effort": false
},
"azure/gpt-5.4-nano": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2e-08,
"input_cost_per_token": 2e-07,
"litellm_provider": "azure",
@ -7058,6 +7193,11 @@
"supports_xhigh_reasoning_effort": false
},
"azure/gpt-5.4-nano-2026-03-17": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2e-08,
"input_cost_per_token": 2e-07,
"litellm_provider": "azure",
@ -7521,6 +7661,11 @@
"supports_vision": true
},
"azure/o3-deep-research": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-06,
"input_cost_per_token": 1e-05,
"litellm_provider": "azure",
@ -21452,6 +21597,11 @@
"supports_tool_choice": true
},
"gpt-4.1": {
"search_context_cost_per_query": {
"search_context_size_high": 0.025,
"search_context_size_low": 0.025,
"search_context_size_medium": 0.025
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_priority": 8.75e-07,
"input_cost_per_token": 2e-06,
@ -21489,6 +21639,11 @@
"supports_web_search": true
},
"gpt-4.1-2025-04-14": {
"search_context_cost_per_query": {
"search_context_size_high": 0.025,
"search_context_size_low": 0.025,
"search_context_size_medium": 0.025
},
"cache_read_input_token_cost": 5e-07,
"input_cost_per_token": 2e-06,
"input_cost_per_token_batches": 1e-06,
@ -21523,6 +21678,11 @@
"supports_web_search": true
},
"gpt-4.1-mini": {
"search_context_cost_per_query": {
"search_context_size_high": 0.025,
"search_context_size_low": 0.025,
"search_context_size_medium": 0.025
},
"cache_read_input_token_cost": 1e-07,
"cache_read_input_token_cost_priority": 1.75e-07,
"input_cost_per_token": 4e-07,
@ -21560,6 +21720,11 @@
"supports_web_search": true
},
"gpt-4.1-mini-2025-04-14": {
"search_context_cost_per_query": {
"search_context_size_high": 0.025,
"search_context_size_low": 0.025,
"search_context_size_medium": 0.025
},
"cache_read_input_token_cost": 1e-07,
"input_cost_per_token": 4e-07,
"input_cost_per_token_batches": 2e-07,
@ -22706,6 +22871,11 @@
"supports_pdf_input": true
},
"gpt-5": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"cache_read_input_token_cost_flex": 6.25e-08,
"cache_read_input_token_cost_priority": 2.5e-07,
@ -22748,6 +22918,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.1": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"cache_read_input_token_cost_priority": 2.5e-07,
"input_cost_per_token": 1.25e-06,
@ -22787,6 +22962,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.1-2025-11-13": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"cache_read_input_token_cost_priority": 2.5e-07,
"input_cost_per_token": 1.25e-06,
@ -22826,6 +23006,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.1-chat-latest": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"cache_read_input_token_cost_priority": 2.5e-07,
"input_cost_per_token": 1.25e-06,
@ -22865,6 +23050,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.2": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.75e-07,
"cache_read_input_token_cost_priority": 3.5e-07,
"input_cost_per_token": 1.75e-06,
@ -22905,6 +23095,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.2-2025-12-11": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.75e-07,
"cache_read_input_token_cost_priority": 3.5e-07,
"input_cost_per_token": 1.75e-06,
@ -22945,6 +23140,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.2-chat-latest": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.75e-07,
"cache_read_input_token_cost_priority": 3.5e-07,
"input_cost_per_token": 1.75e-06,
@ -22983,6 +23183,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.3-chat-latest": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.75e-07,
"cache_read_input_token_cost_priority": 3.5e-07,
"input_cost_per_token": 1.75e-06,
@ -23021,6 +23226,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.2-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 2.1e-05,
"litellm_provider": "openai",
"max_input_tokens": 272000,
@ -23055,6 +23265,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.2-pro-2025-12-11": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 2.1e-05,
"litellm_provider": "openai",
"max_input_tokens": 272000,
@ -23089,6 +23304,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.6": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_creation_input_token_cost": 6.25e-06,
"cache_creation_input_token_cost_above_272k_tokens": 1.25e-05,
"cache_creation_input_token_cost_flex": 3.125e-06,
@ -23142,6 +23362,11 @@
"supports_xhigh_reasoning_effort": true
},
"gpt-5.6-sol": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_creation_input_token_cost": 6.25e-06,
"cache_creation_input_token_cost_above_272k_tokens": 1.25e-05,
"cache_creation_input_token_cost_flex": 3.125e-06,
@ -23195,6 +23420,11 @@
"supports_xhigh_reasoning_effort": true
},
"gpt-5.6-terra": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_creation_input_token_cost": 3.125e-06,
"cache_creation_input_token_cost_above_272k_tokens": 6.25e-06,
"cache_creation_input_token_cost_flex": 1.5625e-06,
@ -23248,6 +23478,11 @@
"supports_xhigh_reasoning_effort": true
},
"gpt-5.6-luna": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_creation_input_token_cost": 1.25e-06,
"cache_creation_input_token_cost_above_272k_tokens": 2.5e-06,
"cache_creation_input_token_cost_flex": 6.25e-07,
@ -23301,6 +23536,11 @@
"supports_xhigh_reasoning_effort": true
},
"gpt-5.5": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1e-06,
"cache_read_input_token_cost_flex": 2.5e-07,
@ -23350,6 +23590,11 @@
"supports_minimal_reasoning_effort": false
},
"gpt-5.5-2026-04-23": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1e-06,
"cache_read_input_token_cost_flex": 2.5e-07,
@ -23399,6 +23644,11 @@
"supports_minimal_reasoning_effort": false
},
"gpt-5.5-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -23444,6 +23694,11 @@
"supports_low_reasoning_effort": false
},
"gpt-5.5-pro-2026-04-23": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -23582,6 +23837,11 @@
"supports_vision": true
},
"gpt-5.4-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -23626,6 +23886,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.4-pro-2026-03-05": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -23670,6 +23935,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.4-mini": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 7.5e-08,
"cache_read_input_token_cost_flex": 3.75e-08,
"cache_read_input_token_cost_priority": 1.5e-07,
@ -23716,6 +23986,11 @@
"supports_minimal_reasoning_effort": false
},
"gpt-5.4-mini-2026-03-17": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 7.5e-08,
"cache_read_input_token_cost_flex": 3.75e-08,
"cache_read_input_token_cost_priority": 1.5e-07,
@ -23762,6 +24037,11 @@
"supports_minimal_reasoning_effort": false
},
"gpt-5.4-nano": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2e-08,
"cache_read_input_token_cost_flex": 1e-08,
"input_cost_per_token": 2e-07,
@ -23805,6 +24085,11 @@
"supports_minimal_reasoning_effort": false
},
"gpt-5.4-nano-2026-03-17": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2e-08,
"cache_read_input_token_cost_flex": 1e-08,
"input_cost_per_token": 2e-07,
@ -23848,6 +24133,11 @@
"supports_minimal_reasoning_effort": false
},
"gpt-5-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 1.5e-05,
"input_cost_per_token_batches": 7.5e-06,
"litellm_provider": "openai",
@ -23884,6 +24174,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-pro-2025-10-06": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 1.5e-05,
"input_cost_per_token_batches": 7.5e-06,
"litellm_provider": "openai",
@ -23920,6 +24215,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-2025-08-07": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"cache_read_input_token_cost_flex": 6.25e-08,
"cache_read_input_token_cost_priority": 2.5e-07,
@ -24032,6 +24332,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-codex": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"input_cost_per_token": 1.25e-06,
"litellm_provider": "openai",
@ -24066,6 +24371,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.1-codex": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"cache_read_input_token_cost_priority": 2.5e-07,
"input_cost_per_token": 1.25e-06,
@ -24103,6 +24413,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.1-codex-max": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"input_cost_per_token": 1.25e-06,
"litellm_provider": "openai",
@ -24137,6 +24452,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.1-codex-mini": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-08,
"cache_read_input_token_cost_priority": 4.5e-08,
"input_cost_per_token": 2.5e-07,
@ -24174,6 +24494,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.2-codex": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.75e-07,
"cache_read_input_token_cost_priority": 3.5e-07,
"input_cost_per_token": 1.75e-06,
@ -24211,6 +24536,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.3-codex": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.75e-07,
"cache_read_input_token_cost_priority": 3.5e-07,
"input_cost_per_token": 1.75e-06,
@ -24248,6 +24578,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-mini": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-08,
"cache_read_input_token_cost_flex": 1.25e-08,
"cache_read_input_token_cost_priority": 4.5e-08,
@ -24290,6 +24625,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-mini-2025-08-07": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-08,
"cache_read_input_token_cost_flex": 1.25e-08,
"cache_read_input_token_cost_priority": 4.5e-08,
@ -24332,6 +24672,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-nano": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-09,
"cache_read_input_token_cost_flex": 2.5e-09,
"input_cost_per_token": 5e-08,
@ -24372,6 +24717,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-nano-2025-08-07": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-09,
"cache_read_input_token_cost_flex": 2.5e-09,
"input_cost_per_token": 5e-08,
@ -28548,6 +28898,11 @@
"supports_vision": true
},
"o3": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_flex": 2.5e-07,
"cache_read_input_token_cost_priority": 8.75e-07,
@ -28586,6 +28941,11 @@
"supports_web_search": true
},
"o3-2025-04-16": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"input_cost_per_token": 2e-06,
"litellm_provider": "openai",
@ -28618,6 +28978,11 @@
"supports_web_search": true
},
"o3-deep-research": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-06,
"input_cost_per_token": 1e-05,
"input_cost_per_token_batches": 5e-06,
@ -28652,6 +29017,11 @@
"supports_web_search": true
},
"o3-deep-research-2025-06-26": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-06,
"input_cost_per_token": 1e-05,
"input_cost_per_token_batches": 5e-06,
@ -28720,6 +29090,11 @@
"supports_vision": false
},
"o3-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 2e-05,
"input_cost_per_token_batches": 1e-05,
"litellm_provider": "openai",
@ -28751,6 +29126,11 @@
"supports_web_search": true
},
"o3-pro-2025-06-10": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 2e-05,
"input_cost_per_token_batches": 1e-05,
"litellm_provider": "openai",
@ -28782,6 +29162,11 @@
"supports_web_search": true
},
"o4-mini": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.75e-07,
"cache_read_input_token_cost_flex": 1.375e-07,
"cache_read_input_token_cost_priority": 5e-07,
@ -28807,6 +29192,11 @@
"supports_web_search": true
},
"o4-mini-2025-04-16": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.75e-07,
"input_cost_per_token": 1.1e-06,
"litellm_provider": "openai",
@ -28826,6 +29216,11 @@
"supports_web_search": true
},
"o4-mini-deep-research": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"input_cost_per_token": 2e-06,
"input_cost_per_token_batches": 1e-06,
@ -28860,6 +29255,11 @@
"supports_web_search": true
},
"o4-mini-deep-research-2025-06-26": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"input_cost_per_token": 2e-06,
"input_cost_per_token_batches": 1e-06,
@ -43526,6 +43926,11 @@
]
},
"gpt-5-search-api": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"input_cost_per_token": 1.25e-06,
"litellm_provider": "openai",
@ -43548,6 +43953,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-search-api-2025-10-14": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"input_cost_per_token": 1.25e-06,
"litellm_provider": "openai",

View file

@ -5760,6 +5760,11 @@
"supports_vision": true
},
"azure/gpt-5.2-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 2.1e-05,
"litellm_provider": "azure",
"max_input_tokens": 272000,
@ -5791,6 +5796,11 @@
"supports_web_search": true
},
"azure/gpt-5.2-pro-2025-12-11": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 2.1e-05,
"litellm_provider": "azure",
"max_input_tokens": 272000,
@ -6044,6 +6054,11 @@
"supports_vision": true
},
"azure/gpt-5.4-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -6079,6 +6094,11 @@
"supports_web_search": true
},
"azure/gpt-5.4-pro-2026-03-05": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -6114,6 +6134,11 @@
"supports_web_search": true
},
"azure/gpt-5.6": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1e-06,
"cache_read_input_token_cost_priority": 1e-06,
@ -6159,6 +6184,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/gpt-5.6-sol": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1e-06,
"cache_read_input_token_cost_priority": 1e-06,
@ -6204,6 +6234,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/gpt-5.6-terra": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 5e-07,
"cache_read_input_token_cost_priority": 5e-07,
@ -6249,6 +6284,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/gpt-5.6-luna": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1e-07,
"cache_read_input_token_cost_above_272k_tokens": 2e-07,
"cache_read_input_token_cost_priority": 2e-07,
@ -6294,6 +6334,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/us/gpt-5.6": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.375e-06,
@ -6336,6 +6381,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/us/gpt-5.6-sol": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.375e-06,
@ -6378,6 +6428,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/us/gpt-5.6-terra": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.75e-07,
"cache_read_input_token_cost_above_272k_tokens": 5.5e-07,
"cache_read_input_token_cost_priority": 6.875e-07,
@ -6420,6 +6475,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/us/gpt-5.6-luna": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.1e-07,
"cache_read_input_token_cost_above_272k_tokens": 2.2e-07,
"cache_read_input_token_cost_priority": 2.75e-07,
@ -6462,6 +6522,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/eu/gpt-5.6": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.375e-06,
@ -6504,6 +6569,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/eu/gpt-5.6-sol": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.375e-06,
@ -6546,6 +6616,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/eu/gpt-5.6-terra": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.75e-07,
"cache_read_input_token_cost_above_272k_tokens": 5.5e-07,
"cache_read_input_token_cost_priority": 6.875e-07,
@ -6588,6 +6663,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/eu/gpt-5.6-luna": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.1e-07,
"cache_read_input_token_cost_above_272k_tokens": 2.2e-07,
"cache_read_input_token_cost_priority": 2.75e-07,
@ -6630,6 +6710,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/gpt-5.5": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1e-06,
"cache_read_input_token_cost_priority": 1e-06,
@ -6675,6 +6760,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/us/gpt-5.5": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.38e-06,
@ -6717,6 +6807,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/eu/gpt-5.5": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.38e-06,
@ -6759,6 +6854,11 @@
"supports_minimal_reasoning_effort": false
},
"azure/gpt-5.5-2026-04-23": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1e-06,
"cache_read_input_token_cost_priority": 1e-06,
@ -6801,6 +6901,11 @@
"supports_web_search": true
},
"azure/us/gpt-5.5-2026-04-23": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.38e-06,
@ -6840,6 +6945,11 @@
"supports_web_search": true
},
"azure/eu/gpt-5.5-2026-04-23": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5.5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1.1e-06,
"cache_read_input_token_cost_priority": 1.38e-06,
@ -6879,6 +6989,11 @@
"supports_web_search": true
},
"azure/gpt-5.5-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -6918,6 +7033,11 @@
"supports_low_reasoning_effort": false
},
"azure/gpt-5.5-pro-2026-04-23": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -6953,6 +7073,11 @@
"supports_web_search": true
},
"azure/gpt-5.4-mini": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 7.5e-08,
"input_cost_per_token": 7.5e-07,
"litellm_provider": "azure",
@ -6988,6 +7113,11 @@
"supports_xhigh_reasoning_effort": false
},
"azure/gpt-5.4-mini-2026-03-17": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 7.5e-08,
"input_cost_per_token": 7.5e-07,
"litellm_provider": "azure",
@ -7023,6 +7153,11 @@
"supports_xhigh_reasoning_effort": false
},
"azure/gpt-5.4-nano": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2e-08,
"input_cost_per_token": 2e-07,
"litellm_provider": "azure",
@ -7058,6 +7193,11 @@
"supports_xhigh_reasoning_effort": false
},
"azure/gpt-5.4-nano-2026-03-17": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2e-08,
"input_cost_per_token": 2e-07,
"litellm_provider": "azure",
@ -7521,6 +7661,11 @@
"supports_vision": true
},
"azure/o3-deep-research": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-06,
"input_cost_per_token": 1e-05,
"litellm_provider": "azure",
@ -21527,6 +21672,11 @@
"supports_tool_choice": true
},
"gpt-4.1": {
"search_context_cost_per_query": {
"search_context_size_high": 0.025,
"search_context_size_low": 0.025,
"search_context_size_medium": 0.025
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_priority": 8.75e-07,
"input_cost_per_token": 2e-06,
@ -21564,6 +21714,11 @@
"supports_web_search": true
},
"gpt-4.1-2025-04-14": {
"search_context_cost_per_query": {
"search_context_size_high": 0.025,
"search_context_size_low": 0.025,
"search_context_size_medium": 0.025
},
"cache_read_input_token_cost": 5e-07,
"input_cost_per_token": 2e-06,
"input_cost_per_token_batches": 1e-06,
@ -21598,6 +21753,11 @@
"supports_web_search": true
},
"gpt-4.1-mini": {
"search_context_cost_per_query": {
"search_context_size_high": 0.025,
"search_context_size_low": 0.025,
"search_context_size_medium": 0.025
},
"cache_read_input_token_cost": 1e-07,
"cache_read_input_token_cost_priority": 1.75e-07,
"input_cost_per_token": 4e-07,
@ -21635,6 +21795,11 @@
"supports_web_search": true
},
"gpt-4.1-mini-2025-04-14": {
"search_context_cost_per_query": {
"search_context_size_high": 0.025,
"search_context_size_low": 0.025,
"search_context_size_medium": 0.025
},
"cache_read_input_token_cost": 1e-07,
"input_cost_per_token": 4e-07,
"input_cost_per_token_batches": 2e-07,
@ -22781,6 +22946,11 @@
"supports_pdf_input": true
},
"gpt-5": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"cache_read_input_token_cost_flex": 6.25e-08,
"cache_read_input_token_cost_priority": 2.5e-07,
@ -22823,6 +22993,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.1": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"cache_read_input_token_cost_priority": 2.5e-07,
"input_cost_per_token": 1.25e-06,
@ -22862,6 +23037,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.1-2025-11-13": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"cache_read_input_token_cost_priority": 2.5e-07,
"input_cost_per_token": 1.25e-06,
@ -22901,6 +23081,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.1-chat-latest": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"cache_read_input_token_cost_priority": 2.5e-07,
"input_cost_per_token": 1.25e-06,
@ -22940,6 +23125,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.2": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.75e-07,
"cache_read_input_token_cost_priority": 3.5e-07,
"input_cost_per_token": 1.75e-06,
@ -22980,6 +23170,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.2-2025-12-11": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.75e-07,
"cache_read_input_token_cost_priority": 3.5e-07,
"input_cost_per_token": 1.75e-06,
@ -23020,6 +23215,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.2-chat-latest": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.75e-07,
"cache_read_input_token_cost_priority": 3.5e-07,
"input_cost_per_token": 1.75e-06,
@ -23058,6 +23258,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.3-chat-latest": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.75e-07,
"cache_read_input_token_cost_priority": 3.5e-07,
"input_cost_per_token": 1.75e-06,
@ -23096,6 +23301,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.2-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 2.1e-05,
"litellm_provider": "openai",
"max_input_tokens": 272000,
@ -23130,6 +23340,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.2-pro-2025-12-11": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 2.1e-05,
"litellm_provider": "openai",
"max_input_tokens": 272000,
@ -23164,6 +23379,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.6": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_creation_input_token_cost": 6.25e-06,
"cache_creation_input_token_cost_above_272k_tokens": 1.25e-05,
"cache_creation_input_token_cost_flex": 3.125e-06,
@ -23217,6 +23437,11 @@
"supports_xhigh_reasoning_effort": true
},
"gpt-5.6-sol": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_creation_input_token_cost": 6.25e-06,
"cache_creation_input_token_cost_above_272k_tokens": 1.25e-05,
"cache_creation_input_token_cost_flex": 3.125e-06,
@ -23270,6 +23495,11 @@
"supports_xhigh_reasoning_effort": true
},
"gpt-5.6-terra": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_creation_input_token_cost": 3.125e-06,
"cache_creation_input_token_cost_above_272k_tokens": 6.25e-06,
"cache_creation_input_token_cost_flex": 1.5625e-06,
@ -23323,6 +23553,11 @@
"supports_xhigh_reasoning_effort": true
},
"gpt-5.6-luna": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_creation_input_token_cost": 1.25e-06,
"cache_creation_input_token_cost_above_272k_tokens": 2.5e-06,
"cache_creation_input_token_cost_flex": 6.25e-07,
@ -23376,6 +23611,11 @@
"supports_xhigh_reasoning_effort": true
},
"gpt-5.5": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1e-06,
"cache_read_input_token_cost_flex": 2.5e-07,
@ -23425,6 +23665,11 @@
"supports_minimal_reasoning_effort": false
},
"gpt-5.5-2026-04-23": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_above_272k_tokens": 1e-06,
"cache_read_input_token_cost_flex": 2.5e-07,
@ -23474,6 +23719,11 @@
"supports_minimal_reasoning_effort": false
},
"gpt-5.5-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -23519,6 +23769,11 @@
"supports_low_reasoning_effort": false
},
"gpt-5.5-pro-2026-04-23": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -23657,6 +23912,11 @@
"supports_vision": true
},
"gpt-5.4-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -23701,6 +23961,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.4-pro-2026-03-05": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 3e-06,
"cache_read_input_token_cost_above_272k_tokens": 6e-06,
"input_cost_per_token": 3e-05,
@ -23745,6 +24010,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.4-mini": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 7.5e-08,
"cache_read_input_token_cost_flex": 3.75e-08,
"cache_read_input_token_cost_priority": 1.5e-07,
@ -23791,6 +24061,11 @@
"supports_minimal_reasoning_effort": false
},
"gpt-5.4-mini-2026-03-17": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 7.5e-08,
"cache_read_input_token_cost_flex": 3.75e-08,
"cache_read_input_token_cost_priority": 1.5e-07,
@ -23837,6 +24112,11 @@
"supports_minimal_reasoning_effort": false
},
"gpt-5.4-nano": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2e-08,
"cache_read_input_token_cost_flex": 1e-08,
"input_cost_per_token": 2e-07,
@ -23880,6 +24160,11 @@
"supports_minimal_reasoning_effort": false
},
"gpt-5.4-nano-2026-03-17": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2e-08,
"cache_read_input_token_cost_flex": 1e-08,
"input_cost_per_token": 2e-07,
@ -23923,6 +24208,11 @@
"supports_minimal_reasoning_effort": false
},
"gpt-5-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 1.5e-05,
"input_cost_per_token_batches": 7.5e-06,
"litellm_provider": "openai",
@ -23959,6 +24249,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-pro-2025-10-06": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 1.5e-05,
"input_cost_per_token_batches": 7.5e-06,
"litellm_provider": "openai",
@ -23995,6 +24290,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-2025-08-07": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"cache_read_input_token_cost_flex": 6.25e-08,
"cache_read_input_token_cost_priority": 2.5e-07,
@ -24107,6 +24407,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-codex": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"input_cost_per_token": 1.25e-06,
"litellm_provider": "openai",
@ -24141,6 +24446,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.1-codex": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"cache_read_input_token_cost_priority": 2.5e-07,
"input_cost_per_token": 1.25e-06,
@ -24178,6 +24488,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.1-codex-max": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"input_cost_per_token": 1.25e-06,
"litellm_provider": "openai",
@ -24212,6 +24527,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.1-codex-mini": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-08,
"cache_read_input_token_cost_priority": 4.5e-08,
"input_cost_per_token": 2.5e-07,
@ -24249,6 +24569,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.2-codex": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.75e-07,
"cache_read_input_token_cost_priority": 3.5e-07,
"input_cost_per_token": 1.75e-06,
@ -24286,6 +24611,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5.3-codex": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.75e-07,
"cache_read_input_token_cost_priority": 3.5e-07,
"input_cost_per_token": 1.75e-06,
@ -24323,6 +24653,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-mini": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-08,
"cache_read_input_token_cost_flex": 1.25e-08,
"cache_read_input_token_cost_priority": 4.5e-08,
@ -24365,6 +24700,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-mini-2025-08-07": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-08,
"cache_read_input_token_cost_flex": 1.25e-08,
"cache_read_input_token_cost_priority": 4.5e-08,
@ -24407,6 +24747,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-nano": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-09,
"cache_read_input_token_cost_flex": 2.5e-09,
"input_cost_per_token": 5e-08,
@ -24447,6 +24792,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-nano-2025-08-07": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-09,
"cache_read_input_token_cost_flex": 2.5e-09,
"input_cost_per_token": 5e-08,
@ -28623,6 +28973,11 @@
"supports_vision": true
},
"o3": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"cache_read_input_token_cost_flex": 2.5e-07,
"cache_read_input_token_cost_priority": 8.75e-07,
@ -28661,6 +29016,11 @@
"supports_web_search": true
},
"o3-2025-04-16": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"input_cost_per_token": 2e-06,
"litellm_provider": "openai",
@ -28693,6 +29053,11 @@
"supports_web_search": true
},
"o3-deep-research": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-06,
"input_cost_per_token": 1e-05,
"input_cost_per_token_batches": 5e-06,
@ -28727,6 +29092,11 @@
"supports_web_search": true
},
"o3-deep-research-2025-06-26": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.5e-06,
"input_cost_per_token": 1e-05,
"input_cost_per_token_batches": 5e-06,
@ -28795,6 +29165,11 @@
"supports_vision": false
},
"o3-pro": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 2e-05,
"input_cost_per_token_batches": 1e-05,
"litellm_provider": "openai",
@ -28826,6 +29201,11 @@
"supports_web_search": true
},
"o3-pro-2025-06-10": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"input_cost_per_token": 2e-05,
"input_cost_per_token_batches": 1e-05,
"litellm_provider": "openai",
@ -28857,6 +29237,11 @@
"supports_web_search": true
},
"o4-mini": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.75e-07,
"cache_read_input_token_cost_flex": 1.375e-07,
"cache_read_input_token_cost_priority": 5e-07,
@ -28882,6 +29267,11 @@
"supports_web_search": true
},
"o4-mini-2025-04-16": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 2.75e-07,
"input_cost_per_token": 1.1e-06,
"litellm_provider": "openai",
@ -28901,6 +29291,11 @@
"supports_web_search": true
},
"o4-mini-deep-research": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"input_cost_per_token": 2e-06,
"input_cost_per_token_batches": 1e-06,
@ -28935,6 +29330,11 @@
"supports_web_search": true
},
"o4-mini-deep-research-2025-06-26": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 5e-07,
"input_cost_per_token": 2e-06,
"input_cost_per_token_batches": 1e-06,
@ -43647,6 +44047,11 @@
]
},
"gpt-5-search-api": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"input_cost_per_token": 1.25e-06,
"litellm_provider": "openai",
@ -43669,6 +44074,11 @@
"supports_minimal_reasoning_effort": true
},
"gpt-5-search-api-2025-10-14": {
"search_context_cost_per_query": {
"search_context_size_high": 0.01,
"search_context_size_low": 0.01,
"search_context_size_medium": 0.01
},
"cache_read_input_token_cost": 1.25e-07,
"input_cost_per_token": 1.25e-06,
"litellm_provider": "openai",

View file

@ -602,5 +602,90 @@ def test_web_search_provider_prefix_fallback_does_not_misprice_non_gemini_model(
)
def _openai_responses_with_web_search_calls(model, num_calls):
from litellm.types.llms.openai import ResponsesAPIResponse
from openai.types.responses.response_function_web_search import (
ActionSearch,
ResponseFunctionWebSearch,
)
output = [
ResponseFunctionWebSearch(
id=f"ws_{i}",
type="web_search_call",
status="completed",
action=ActionSearch(type="search", query="latest news"),
)
for i in range(num_calls)
]
return ResponsesAPIResponse(
id="resp_1",
created_at=0,
model=model,
object="response",
output=output,
parallel_tool_calls=False,
tool_choice="auto",
tools=[],
)
def test_openai_responses_web_search_priced_per_call(local_model_cost_map):
"""
Regression for LIT-5013 bug 1: OpenAI reasoning models (gpt-5 family, o-series, deep-research)
carry supports_web_search but had no search_context_cost_per_query, so get_cost_for_web_search_request
(no openai branch) returned None and the default fallback billed web search as $0. gpt-5-nano now
prices at $0.01 per call, and two web_search_call items in the Responses output must bill 2 x $0.01.
"""
from litellm.types.utils import Usage
model = "gpt-5-nano"
per_call = litellm.get_model_info(model)["search_context_cost_per_query"][
"search_context_size_medium"
]
assert per_call == 0.01
response = _openai_responses_with_web_search_calls(model, num_calls=2)
cost = StandardBuiltInToolCostTracking.get_cost_for_built_in_tools(
model=model,
response_object=response,
usage=Usage(prompt_tokens=10, completion_tokens=5, total_tokens=15),
custom_llm_provider="openai",
standard_built_in_tools_params=None,
)
assert cost == pytest.approx(2 * per_call), (
f"gpt-5-nano web search must bill 2 x ${per_call}, got ${cost}"
)
def test_openai_responses_web_search_multiplied_by_call_count(local_model_cost_map):
"""
Regression for LIT-5013 bug 2: web_search_call detection was binary, so a Responses output with
multiple web searches was charged once. gpt-4o-search-preview carries per-call pricing; N calls
must bill N times, and a single call must still bill exactly once.
"""
from litellm.types.utils import Usage
model = "gpt-4o-search-preview"
per_call = litellm.get_model_info(model)["search_context_cost_per_query"][
"search_context_size_medium"
]
usage = Usage(prompt_tokens=10, completion_tokens=5, total_tokens=15)
for num_calls in (1, 3):
response = _openai_responses_with_web_search_calls(model, num_calls=num_calls)
cost = StandardBuiltInToolCostTracking.get_cost_for_built_in_tools(
model=model,
response_object=response,
usage=usage,
custom_llm_provider="openai",
standard_built_in_tools_params=None,
)
assert cost == pytest.approx(num_calls * per_call), (
f"{num_calls} web searches must bill {num_calls} x ${per_call}, got ${cost}"
)
# Note: File search integration test removed due to complex annotation detection logic
# The unit tests in test_azure_assistant_cost_tracking.py provide comprehensive coverage