omni_llm_kit/model/
language_provider.rs1use crate::model::model::LanguageModel;
2use crate::model::types::{LanguageModelProviderId, LanguageModelProviderName};
3use std::sync::Arc;
4
5#[async_trait::async_trait]
6pub trait LanguageModelProvider: 'static {
7 fn id(&self) -> LanguageModelProviderId;
8 fn name(&self) -> LanguageModelProviderName;
9 fn default_model(&self) -> Option<Arc<dyn LanguageModel>>;
10 fn default_fast_model(&self) -> Option<Arc<dyn LanguageModel>> {
11 todo!()
12 }
13 fn provided_models(&self) -> Vec<Arc<dyn LanguageModel>>;
14 }