Skip to main content

ProviderMetadataProvider

Trait ProviderMetadataProvider 

Source
pub trait ProviderMetadataProvider<Ctx> {
    const PROVIDER_KEY: &'static str;
    const DISPLAY_NAME: &'static str;
    const DEFAULT_MODEL: &'static str;
    const API_BASE_URL: &'static str;
    const BASE_URL_ENV_VAR: Option<&'static str>;
}
Expand description

Provider trait for provider metadata.

Required Associated Constants§

Source

const PROVIDER_KEY: &'static str

Registry key used to identify this provider in the factory.

Source

const DISPLAY_NAME: &'static str

Human-readable display name.

Source

const DEFAULT_MODEL: &'static str

Default model identifier when none is specified.

Source

const API_BASE_URL: &'static str

Base URL for the provider’s API endpoint.

Source

const BASE_URL_ENV_VAR: Option<&'static str>

Optional environment variable that overrides the base URL.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl ProviderMetadataProvider<AnthropicProviderConfig> for AnthropicProviderConfig

Source§

const PROVIDER_KEY: &'static str = "anthropic"

Source§

const DISPLAY_NAME: &'static str = "Anthropic"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::anthropic::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::ANTHROPIC_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<CopilotProviderConfig> for CopilotProviderConfig

Source§

const PROVIDER_KEY: &'static str = "copilot"

Source§

const DISPLAY_NAME: &'static str = "GitHub Copilot"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::copilot::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = ""

Source§

const BASE_URL_ENV_VAR: Option<&'static str> = None

Source§

impl ProviderMetadataProvider<DeepSeekProviderConfig> for DeepSeekProviderConfig

Source§

const PROVIDER_KEY: &'static str = "deepseek"

Source§

const DISPLAY_NAME: &'static str = "DeepSeek"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::deepseek::DEEPSEEK_FLASH

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::DEEPSEEK_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<EvolinkProviderConfig> for EvolinkProviderConfig

Source§

const PROVIDER_KEY: &'static str = "evolink"

Source§

const DISPLAY_NAME: &'static str = "Evolink"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::evolink::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::EVOLINK_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<GeminiProviderConfig> for GeminiProviderConfig

Source§

const PROVIDER_KEY: &'static str = "gemini"

Source§

const DISPLAY_NAME: &'static str = "Gemini"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::google::GEMINI_3_FLASH_PREVIEW

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::GEMINI_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<HuggingFaceProviderConfig> for HuggingFaceProviderConfig

Source§

const PROVIDER_KEY: &'static str = "huggingface"

Source§

const DISPLAY_NAME: &'static str = "HuggingFace"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::huggingface::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::HUGGINGFACE_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<LlamaCppProviderConfig> for LlamaCppProviderConfig

Source§

const PROVIDER_KEY: &'static str = "llamacpp"

Source§

const DISPLAY_NAME: &'static str = "llama.cpp"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::llamacpp::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::LLAMACPP_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<LmStudioProviderConfig> for LmStudioProviderConfig

Source§

const PROVIDER_KEY: &'static str = "lmstudio"

Source§

const DISPLAY_NAME: &'static str = "LM Studio"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::lmstudio::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::LMSTUDIO_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<MergeGatewayProviderConfig> for MergeGatewayProviderConfig

Source§

const PROVIDER_KEY: &'static str = "merge-gateway"

Source§

const DISPLAY_NAME: &'static str = "Merge Gateway"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::merge_gateway::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::MERGE_GATEWAY_NATIVE_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<MetaProviderConfig> for MetaProviderConfig

Source§

const PROVIDER_KEY: &'static str = "meta"

Source§

const DISPLAY_NAME: &'static str = "Meta AI"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::meta::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::META_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<MiMoProviderConfig> for MiMoProviderConfig

Source§

const PROVIDER_KEY: &'static str = "mimo"

Source§

const DISPLAY_NAME: &'static str = "Xiaomi MiMo"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::mimo::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::MIMO_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<MinimaxProviderConfig> for MinimaxProviderConfig

Source§

const PROVIDER_KEY: &'static str = "minimax"

Source§

const DISPLAY_NAME: &'static str = "Minimax"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::minimax::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::MINIMAX_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<MistralProviderConfig> for MistralProviderConfig

Source§

const PROVIDER_KEY: &'static str = "mistral"

Source§

const DISPLAY_NAME: &'static str = "Mistral"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::mistral::MISTRAL_LARGE_3

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::MISTRAL_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<MoonshotProviderConfig> for MoonshotProviderConfig

Source§

const PROVIDER_KEY: &'static str = "moonshot"

Source§

const DISPLAY_NAME: &'static str = "Moonshot"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::moonshot::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::MOONSHOT_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<NvidiaProviderConfig> for NvidiaProviderConfig

Source§

const PROVIDER_KEY: &'static str = "nvidia"

Source§

const DISPLAY_NAME: &'static str = "NVIDIA"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::nvidia::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::NVIDIA_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<OllamaCloudProviderConfig> for OllamaCloudProviderConfig

Source§

const PROVIDER_KEY: &'static str = "ollama-cloud"

Source§

const DISPLAY_NAME: &'static str = "Ollama Cloud"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::ollama::DEFAULT_CLOUD_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::OLLAMA_CLOUD_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<OllamaProviderConfig> for OllamaProviderConfig

Source§

const PROVIDER_KEY: &'static str = "ollama"

Source§

const DISPLAY_NAME: &'static str = "Ollama"

Source§

const DEFAULT_MODEL: &'static str = "gpt-oss:20b"

Source§

const API_BASE_URL: &'static str = "http://localhost:11434"

Source§

const BASE_URL_ENV_VAR: Option<&'static str> = None

Source§

impl ProviderMetadataProvider<OpenAIProviderConfig> for OpenAIProviderConfig

Source§

const PROVIDER_KEY: &'static str = "openai"

Source§

const DISPLAY_NAME: &'static str = "OpenAI"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::openai::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::OPENAI_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<OpenCodeGoProviderConfig> for OpenCodeGoProviderConfig

Source§

const PROVIDER_KEY: &'static str = "opencode-go"

Source§

const DISPLAY_NAME: &'static str = "OpenCode Go"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::opencode_go::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::OPENCODE_GO_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<OpenCodeZenProviderConfig> for OpenCodeZenProviderConfig

Source§

const PROVIDER_KEY: &'static str = "opencode-zen"

Source§

const DISPLAY_NAME: &'static str = "OpenCode Zen"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::opencode_zen::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::OPENCODE_ZEN_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<OpenResponsesProviderConfig> for OpenResponsesProviderConfig

Source§

const PROVIDER_KEY: &'static str = "openresponses"

Source§

const DISPLAY_NAME: &'static str = "OpenResponses"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::openresponses::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::OPENRESPONSES_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<OpenRouterProviderConfig> for OpenRouterProviderConfig

Source§

const PROVIDER_KEY: &'static str = "openrouter"

Source§

const DISPLAY_NAME: &'static str = "OpenRouter"

Source§

const DEFAULT_MODEL: &'static str = "openrouter/auto"

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::OPENROUTER_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<PoolsideProviderConfig> for PoolsideProviderConfig

Source§

const PROVIDER_KEY: &'static str = "poolside"

Source§

const DISPLAY_NAME: &'static str = "Poolside"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::poolside::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::POOLSIDE_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<QwenProviderConfig> for QwenProviderConfig

Source§

const PROVIDER_KEY: &'static str = "qwen"

Source§

const DISPLAY_NAME: &'static str = "Qwen"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::qwen::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::QWEN_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<StepFunProviderConfig> for StepFunProviderConfig

Source§

const PROVIDER_KEY: &'static str = "stepfun"

Source§

const DISPLAY_NAME: &'static str = "StepFun"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::stepfun::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::STEPFUN_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<VercelProviderConfig> for VercelProviderConfig

Source§

const PROVIDER_KEY: &'static str = "vercel"

Source§

const DISPLAY_NAME: &'static str = "Vercel AI Gateway"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::vercel::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::VERCEL_AI_GATEWAY_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<XAIProviderConfig> for XAIProviderConfig

Source§

const PROVIDER_KEY: &'static str = "xai"

Source§

const DISPLAY_NAME: &'static str = "xAI"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::xai::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::XAI_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>

Source§

impl ProviderMetadataProvider<ZAIProviderConfig> for ZAIProviderConfig

Source§

const PROVIDER_KEY: &'static str = "zai"

Source§

const DISPLAY_NAME: &'static str = "Z.AI"

Source§

const DEFAULT_MODEL: &'static str = crate::config::constants::models::zai::DEFAULT_MODEL

Source§

const API_BASE_URL: &'static str = crate::config::constants::urls::Z_AI_API_BASE

Source§

const BASE_URL_ENV_VAR: Option<&'static str>