use crate::client::GatewayDescriptor;
#[cfg(feature = "providers")]
use crate::client::ProviderDescriptor;
use crate::engine::NativeRuntimeConfig;
pub const DEFAULT_STORAGE_ROOT: &str = ".sipp-models";
#[derive(Debug, Clone, PartialEq)]
pub enum EndpointDescriptor {
Local(LocalDescriptor),
Gateway(GatewayDescriptor),
#[cfg(feature = "providers")]
Provider(ProviderDescriptor),
}
impl From<LocalDescriptor> for EndpointDescriptor {
fn from(descriptor: LocalDescriptor) -> Self {
Self::Local(descriptor)
}
}
impl From<GatewayDescriptor> for EndpointDescriptor {
fn from(descriptor: GatewayDescriptor) -> Self {
Self::Gateway(descriptor)
}
}
#[cfg(feature = "providers")]
impl From<ProviderDescriptor> for EndpointDescriptor {
fn from(descriptor: ProviderDescriptor) -> Self {
Self::Provider(descriptor)
}
}
#[derive(Debug, Clone, PartialEq)]
pub struct LocalDescriptor {
pub model_id: String,
pub runtime: NativeRuntimeConfig,
}
impl LocalDescriptor {
pub fn new(model_id: impl Into<String>) -> Self {
Self {
model_id: model_id.into(),
runtime: NativeRuntimeConfig::default(),
}
}
}