use crate::error::AmbiError;
use serde::Deserialize;
#[derive(Debug, Deserialize, Clone)]
pub struct OpenAIEngineConfig {
pub api_key: String,
pub base_url: String,
pub model_name: String,
pub temp: f32,
pub top_p: f32,
}
impl OpenAIEngineConfig {
pub fn validate(&self) -> crate::error::Result<()> {
if self.api_key.trim().is_empty() {
return Err(AmbiError::EngineError(
"OpenAI API Key cannot be empty".to_string(),
));
}
if self.temp < 0.0 || self.temp > 2.0 {
return Err(AmbiError::EngineError(
"Temperature must be between 0.0 and 2.0".to_string(),
));
}
Ok(())
}
}