nihility-model 0.2.2

nihility project ai model module
Documentation
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"))?))
    }
}