ExLLM.ModelCapabilities (ex_llm v0.5.0)
View SourceModel capability discovery and management for ExLLM.
This module provides information about what features and capabilities each model supports across different providers. It helps users make informed decisions about which model to use for their specific needs.
Features
- Automatic capability detection
- Provider-specific feature mapping
- Capability comparison across models
- Feature availability checking
- Model recommendation based on requirements
Usage
# Get capabilities for a specific model
{:ok, caps} = ExLLM.ModelCapabilities.get_capabilities(:openai, "gpt-4-turbo")
# Check if a model supports a specific feature
ExLLM.ModelCapabilities.supports?(:anthropic, "claude-3-opus-20240229", :vision)
# Find models that support specific features
models = ExLLM.ModelCapabilities.find_models_with_features([:function_calling, :streaming])
# Compare models
comparison = ExLLM.ModelCapabilities.compare_models([
{:openai, "gpt-4"},
{:anthropic, "claude-3-sonnet-20240229"}
])
Summary
Functions
Compare capabilities across multiple models.
Find all models that support specific features.
Get complete capability information for a model.
Get detailed information about a specific capability.
Get model information for a specific provider and model.
Get all available features.
Get models grouped by capability.
Get recommended models based on requirements.
Check if a model supports a specific feature.
Functions
Compare capabilities across multiple models.
Find all models that support specific features.
This function searches both the hardcoded model database and dynamically loads models from YAML configuration files to provide comprehensive results.
@spec get_capabilities(atom(), String.t()) :: {:ok, ExLLM.ModelCapabilities.ModelInfo.t()} | {:error, :not_found}
Get complete capability information for a model.
@spec get_capability_details(atom(), String.t(), atom()) :: {:ok, ExLLM.ModelCapabilities.Capability.t()} | {:error, :not_found | :not_supported}
Get detailed information about a specific capability.
@spec get_model_info(atom(), String.t()) :: {:ok, ExLLM.ModelCapabilities.ModelInfo.t()} | {:error, :not_found}
Get model information for a specific provider and model.
Parameters
provider
- Provider atom (e.g., :openai, :anthropic)model
- Model identifier
Returns
{:ok, model_info}
on success{:error, :not_found}
if model not found
Examples
{:ok, info} = ExLLM.ModelCapabilities.get_model_info(:openai, "gpt-4o")
@spec list_features() :: [atom()]
Get all available features.
Get models grouped by capability.
This function searches both the hardcoded model database and dynamically loads models from YAML configuration files to provide comprehensive results.
Get recommended models based on requirements.
Check if a model supports a specific feature.