use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AiConfig {
#[serde(rename = "providers", skip_serializing_if = "Option::is_none")]
pub providers: Option<std::collections::HashMap<String, models::AiProviderConfig>>,
#[serde(rename = "default_model", skip_serializing_if = "Option::is_none")]
pub default_model: Option<Box<models::AiProviderModel>>,
#[serde(rename = "code_completion_model", skip_serializing_if = "Option::is_none")]
pub code_completion_model: Option<Box<models::AiProviderModel>>,
#[serde(rename = "custom_prompts", skip_serializing_if = "Option::is_none")]
pub custom_prompts: Option<std::collections::HashMap<String, String>>,
#[serde(rename = "max_tokens_per_model", skip_serializing_if = "Option::is_none")]
pub max_tokens_per_model: Option<std::collections::HashMap<String, i32>>,
}
impl AiConfig {
pub fn new() -> AiConfig {
AiConfig {
providers: None,
default_model: None,
code_completion_model: None,
custom_prompts: None,
max_tokens_per_model: None,
}
}
}