Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
4695854
fix(cost-map): add openai gpt-5.x codex/chat-latest and gemini 3 prev…
devin-ai-integration[bot] Sep 24, 2026
64261c7
fix(cost-map): carry openai reasoning annotations onto chatgpt twins
devin-ai-integration[bot] Sep 24, 2026
77ebdb3
test(cost-map): check chatgpt twin reasoning flags in both directions
devin-ai-integration[bot] Sep 24, 2026
0295f42
test(cost-map): avoid KeyError when reporting a chatgpt twin flag abs…
devin-ai-integration[bot] Sep 24, 2026
0faf3f9
chore: merge main into litellm_registry_audit_20260924
devin-ai-integration[bot] Sep 24, 2026
f4ee648
fix: update bing grounding search pricing to $14 per 1k transactions
devin-ai-integration[bot] Sep 24, 2026
67e720f
feat: add bedrock mantle deepseek, kimi and qwen3 model pricing
devin-ai-integration[bot] Sep 24, 2026
b9c6f3c
feat: add azure ai deepseek and grok rows and cohere aya expanse 32b
devin-ai-integration[bot] Sep 24, 2026
e635380
Merge remote-tracking branch 'origin/main' into litellm_registry_audi…
devin-ai-integration[bot] Sep 24, 2026
e451c1f
Merge remote-tracking branch 'origin/main' into litellm_registry_audi…
devin-ai-integration[bot] Sep 25, 2026
46e2e13
fix(cost-map): price bedrock claude-mythos-preview base row from the …
devin-ai-integration[bot] Sep 25, 2026
0d67834
fix(cost-map): bill azure gpt-5.6 alias at gpt-5.6-sol rates
devin-ai-integration[bot] Sep 25, 2026
3f921b5
chore(cost-map): backfill anthropic batch api prices
devin-ai-integration[bot] Sep 25, 2026
2e317b7
fix(cost-map): add nebius deepseek v4.1 flash, openrouter perceptron …
devin-ai-integration[bot] Sep 25, 2026
aa88064
test(cost-map): allow 200k-tier batch fields in registry schema check
devin-ai-integration[bot] Sep 25, 2026
f28b5d6
fix(cost-map): declare 200k-tier batch fields in rust catalog and Mod…
devin-ai-integration[bot] Sep 25, 2026
ba94e29
chore(ui): regenerate schema.d.ts for 200k-tier batch cost fields
devin-ai-integration[bot] Sep 25, 2026
c45ebd9
test(cost-map): cite bing grounding price source at the assertion
devin-ai-integration[bot] Sep 25, 2026
84472a2
fix(cost-map): copy 200k-tier batch rates onto ModelInfo
devin-ai-integration[bot] Sep 25, 2026
bde0ab8
fix(cost-map): treat 200k-tier batch rates as deployment pricing
devin-ai-integration[bot] Sep 25, 2026
1846fe5
test(cost-map): cover all four 200k-tier batch deployment overrides
devin-ai-integration[bot] Sep 25, 2026
a8bbe78
Merge remote-tracking branch 'origin/main' into litellm_registry_audi…
devin-ai-integration[bot] Sep 25, 2026
9a4779f
Merge remote-tracking branch 'origin/main' into litellm_registry_audi…
devin-ai-integration[bot] Sep 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions litellm-rust/crates/model-catalog/src/model_info.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ pub struct ModelInfo {
pub cache_creation_input_token_cost_above_200k_tokens: Option<f64>,
/// Rate applied once the prompt exceeds the token threshold in the field name.
#[serde(skip_serializing_if = "Option::is_none")]
Comment thread
greptile-apps[bot] marked this conversation as resolved.
Resolved
pub cache_creation_input_token_cost_above_200k_tokens_batches: Option<f64>,
/// Rate applied once the prompt exceeds the token threshold in the field name.
#[serde(skip_serializing_if = "Option::is_none")]
pub cache_creation_input_token_cost_above_256k_tokens: Option<f64>,
/// Rate applied once the prompt exceeds the token threshold in the field name.
#[serde(skip_serializing_if = "Option::is_none")]
Expand Down Expand Up @@ -78,6 +81,9 @@ pub struct ModelInfo {
/// Rate applied once the prompt exceeds the token threshold in the field name.
#[serde(skip_serializing_if = "Option::is_none")]
pub cache_read_input_token_cost_above_200k_tokens: Option<f64>,
/// Rate applied once the prompt exceeds the token threshold in the field name.
#[serde(skip_serializing_if = "Option::is_none")]
pub cache_read_input_token_cost_above_200k_tokens_batches: Option<f64>,
/// Priority service-tier rate for the same-named base field.
#[serde(skip_serializing_if = "Option::is_none")]
pub cache_read_input_token_cost_above_200k_tokens_priority: Option<f64>,
Expand Down Expand Up @@ -113,13 +119,21 @@ pub struct ModelInfo {
pub code_interpreter_cost_per_session: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub computer_use_input_cost_per_1k_tokens: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub computer_use_output_cost_per_1k_tokens: Option<f64>,
/// Reasoning effort the provider applies when the request omits reasoning_effort. Gates whether a non-default temperature or the top_p/logprobs sampling params are accepted, which hold only when the effort resolves to 'none'.
#[serde(skip_serializing_if = "Option::is_none")]
pub default_reasoning_effort: Option<ReasoningEffort>,
/// Date the provider deprecates the model, YYYY-MM-DD.
#[serde(skip_serializing_if = "Option::is_none")]
pub deprecation_date: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file_search_cost_per_1k_calls: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file_search_cost_per_gb_per_day: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub gemini_audio_only_live: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub gemini_native_audio: Option<bool>,
Expand Down Expand Up @@ -174,6 +188,9 @@ pub struct ModelInfo {
/// Rate applied once the prompt exceeds the token threshold in the field name.
#[serde(skip_serializing_if = "Option::is_none")]
pub input_cost_per_token_above_200k_tokens: Option<f64>,
/// Rate applied once the prompt exceeds the token threshold in the field name.
#[serde(skip_serializing_if = "Option::is_none")]
pub input_cost_per_token_above_200k_tokens_batches: Option<f64>,
/// Priority service-tier rate for the same-named base field.
#[serde(skip_serializing_if = "Option::is_none")]
pub input_cost_per_token_above_200k_tokens_priority: Option<f64>,
Expand Down Expand Up @@ -265,6 +282,26 @@ pub struct ModelInfo {
pub output_cost_per_image_1536: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub output_cost_per_image_512: Option<f64>,
#[serde(
rename = "output_cost_per_image_0.5K",
skip_serializing_if = "Option::is_none"
)]
pub output_cost_per_image_0_5k: Option<f64>,
#[serde(
rename = "output_cost_per_image_1K",
skip_serializing_if = "Option::is_none"
)]
pub output_cost_per_image_1k: Option<f64>,
#[serde(
rename = "output_cost_per_image_2K",
skip_serializing_if = "Option::is_none"
)]
pub output_cost_per_image_2k: Option<f64>,
#[serde(
rename = "output_cost_per_image_4K",
skip_serializing_if = "Option::is_none"
)]
pub output_cost_per_image_4k: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub output_cost_per_image_token: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
Expand Down Expand Up @@ -297,6 +334,9 @@ pub struct ModelInfo {
/// Rate applied once the prompt exceeds the token threshold in the field name.
#[serde(skip_serializing_if = "Option::is_none")]
pub output_cost_per_token_above_200k_tokens: Option<f64>,
/// Rate applied once the prompt exceeds the token threshold in the field name.
#[serde(skip_serializing_if = "Option::is_none")]
pub output_cost_per_token_above_200k_tokens_batches: Option<f64>,
/// Priority service-tier rate for the same-named base field.
#[serde(skip_serializing_if = "Option::is_none")]
pub output_cost_per_token_above_200k_tokens_priority: Option<f64>,
Expand Down Expand Up @@ -357,6 +397,8 @@ pub struct ModelInfo {
/// Provider default requests-per-minute limit.
#[serde(skip_serializing_if = "Option::is_none")]
pub rpm: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rules: Option<Vec<Value>>,
/// USD cost per web search query, keyed by search context size.
#[serde(skip_serializing_if = "Option::is_none")]
pub search_context_cost_per_query: Option<SearchContextCostPerQuery>,
Expand Down Expand Up @@ -475,6 +517,8 @@ pub struct ModelInfo {
#[serde(skip_serializing_if = "Option::is_none")]
pub uses_embed_content: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub vector_store_cost_per_gb_per_day: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub vertex_ai_audio_api: Option<VertexAiAudioApi>,
/// Whether web search is billed per query or per prompt.
#[serde(skip_serializing_if = "Option::is_none")]
Expand Down
1 change: 1 addition & 0 deletions litellm/litellm_core_utils/litellm_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,7 @@ class RawRequestCaptured(Exception):
"cache_read_input_token_cost_above_200k_tokens_batches",
"cache_read_input_token_cost_above_272k_tokens_batches",
"cache_creation_input_token_cost_batches",
"cache_creation_input_token_cost_above_200k_tokens_batches",
"cache_creation_input_token_cost_above_272k_tokens_batches",
"ocr_cost_per_page",
"ocr_cost_per_page_batches",
Expand Down
Loading
Loading