omni_llm_kit/model/
language_provider.rs

1use 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    // async fn authenticate(&self) -> anyhow::Result<()>;
15}