| 408 | } |
| 409 | |
| 410 | pub(crate) fn context_limit(&self, model: &str) -> Option<u64> { |
| 411 | let alias = crate::model_aliases::resolve_model_name(model); |
| 412 | let resolved_alias = alias.as_ref(); |
| 413 | self.context_limit_entry_or_alias(model) |
| 414 | .or_else(|| { |
| 415 | (resolved_alias != model) |
| 416 | .then(|| self.context_limit_entry_or_alias(resolved_alias)) |
| 417 | .flatten() |
| 418 | }) |
| 419 | .or_else(|| { |
| 420 | self.enable_models_dev_fallback |
| 421 | .then(|| { |
| 422 | models_dev_pricing().and_then(|pricing| { |
| 423 | pricing.context_limit_entry_or_alias(resolved_alias) |
| 424 | }) |
| 425 | }) |
| 426 | .flatten() |
| 427 | }) |
| 428 | .or_else(|| { |
| 429 | self.enable_embedded_models_dev_fallback |
| 430 | .then(|| { |
| 431 | embedded_models_dev_pricing().context_limit_entry_or_alias(resolved_alias) |
| 432 | }) |
| 433 | .flatten() |
| 434 | }) |
| 435 | } |
| 436 | |
| 437 | fn context_limit_entry_or_alias(&self, model: &str) -> Option<u64> { |
| 438 | self.context_limit_entry(model) |