chronicle_proxy/providers/
mistral.rs1use super::custom::{CustomProvider, OpenAiRequestFormatOptions, ProviderRequestFormat};
2use crate::config::CustomProviderConfig;
3
4pub struct Mistral;
5
6impl Mistral {
7 pub fn new(client: reqwest::Client, token: Option<String>) -> CustomProvider {
8 let config = CustomProviderConfig {
9 name: "mistral".into(),
10 label: Some("Mistral".to_string()),
11 url: "https://api.mistral.ai/v1/chat/completions".into(),
12 format: ProviderRequestFormat::OpenAi(OpenAiRequestFormatOptions::default()),
13 api_key: None,
14 api_key_source: None,
15 headers: Default::default(),
16 prefix: Some("mistral/".to_string()),
17 }
18 .with_token_or_env(token, "MISTRAL_API_KEY");
19
20 CustomProvider::new(config, client)
21 }
22}