pub mod config;
mod error;
mod text;
use crate::config::NihilityModelConfig;
pub use crate::error::NihilityModelError;
pub use crate::text::TextResponseStream;
use async_openai::Client;
use async_openai::config::{AzureConfig, OpenAIConfig};
#[derive(Clone)]
pub struct NihilityModel {
config: NihilityModelConfig,
http_client: reqwest::Client,
}
pub enum ModelClient {
OpenAI(Client<OpenAIConfig>),
Azure(Client<AzureConfig>),
}
impl NihilityModel {
pub fn init(config: NihilityModelConfig) -> NihilityModel {
Self {
config,
http_client: reqwest::Client::new(),
}
}
pub fn init_from_file_config() -> Result<NihilityModel, NihilityModelError> {
Ok(Self::init(nihility_config::get_config::<
NihilityModelConfig,
>(env!("CARGO_PKG_NAME"))?))
}
}