chronicle-proxy 0.4.3

LLM Provider Abstraction and Logging
Documentation
use super::custom::{CustomProvider, OpenAiRequestFormatOptions, ProviderRequestFormat};
use crate::config::CustomProviderConfig;

pub struct DeepInfra;

impl DeepInfra {
    pub fn new(client: reqwest::Client, token: Option<String>) -> CustomProvider {
        let config = CustomProviderConfig {
            name: "deepinfra".into(),
            label: Some("DeepInfra".to_string()),
            url: "https://api.deepinfra.com/v1/openai/chat/completions".into(),
            format: ProviderRequestFormat::OpenAi(OpenAiRequestFormatOptions::default()),
            api_key: None,
            api_key_source: None,
            headers: Default::default(),
            prefix: Some("deepinfra/".to_string()),
        }
        .with_token_or_env(token, "DEEPINFRA_API_KEY");

        CustomProvider::new(config, client)
    }
}