vtcode-llm 0.136.6

LLM provider abstraction, client implementations, and streaming for VT Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//! Core provider configuration type.
//!
//! `ProviderConfig` is defined here so that both vtcode-llm and vtcode-core
//! can use it without circular dependencies. The `LLMFactory` and factory
//! functions live in vtcode-core since they depend on the CGP registration system.

pub use crate::provider_config_types::ProviderConfig;

use crate::model_resolver::ModelResolver;
use vtcode_config::models::Provider;

/// Infer provider from model slug using model resolver.
pub fn infer_provider_from_model(model: &str) -> Option<Provider> {
    ModelResolver::resolve_provider(None, model, &[]).or_else(|| {
        let family = vtcode_commons::model_family::find_family_for_model(model);
        (family.family != "unknown").then_some(family.provider)
    })
}