| 2759 | } |
| 2760 | |
| 2761 | fn model_info(model_id: &str) -> ModelInfo { |
| 2762 | ModelInfo { |
| 2763 | id: model_id.to_string(), |
| 2764 | name: model_id.to_string(), |
| 2765 | family: None, |
| 2766 | release_date: Some("2026-01-01".to_string()), |
| 2767 | attachment: false, |
| 2768 | reasoning: true, |
| 2769 | temperature: true, |
| 2770 | tool_call: true, |
| 2771 | interleaved: Some(ModelInterleaved::Bool(false)), |
| 2772 | cost: None, |
| 2773 | limit: ModelLimit { |
| 2774 | context: 128_000, |
| 2775 | input: None, |
| 2776 | output: 8_192, |
| 2777 | }, |
| 2778 | modalities: Some(ModelModalities { |
| 2779 | input: vec!["text".to_string()], |
| 2780 | output: vec!["text".to_string()], |
| 2781 | }), |
| 2782 | experimental: None, |
| 2783 | status: Some("active".to_string()), |
| 2784 | options: HashMap::new(), |
| 2785 | headers: None, |
| 2786 | provider: Some(ModelProvider { |
| 2787 | npm: Some("@ai-sdk/openai".to_string()), |
| 2788 | api: Some("https://api.openai.com/v1".to_string()), |
| 2789 | }), |
| 2790 | variants: None, |
| 2791 | } |
| 2792 | } |
| 2793 | |
| 2794 | fn provider_info(provider_id: &str, model: ModelInfo) -> ModelsProviderInfo { |
| 2795 | let mut models = HashMap::new(); |