Skip to main content

synaptic_config/
model.rs

1use serde::Deserialize;
2
3/// Model provider configuration.
4#[derive(Debug, Clone, Deserialize)]
5pub struct ModelConfig {
6    /// Provider name: "openai", "anthropic", "gemini", "ollama", or any OpenAI-compatible.
7    pub provider: String,
8    /// Model identifier (e.g., "gpt-4", "claude-sonnet-4-20250514").
9    pub model: String,
10    /// Environment variable name containing the API key.
11    #[serde(default = "default_api_key_env")]
12    pub api_key_env: String,
13    /// Custom base URL for OpenAI-compatible providers.
14    pub base_url: Option<String>,
15    /// Maximum output tokens.
16    pub max_tokens: Option<u32>,
17    /// Sampling temperature.
18    pub temperature: Option<f64>,
19}
20
21fn default_api_key_env() -> String {
22    "OPENAI_API_KEY".to_string()
23}