Skip to content

model_info

langroid/language_models/model_info.py

ModelProvider

Bases: str, Enum

Enum for model providers

ModelName

Bases: str, Enum

Parent class for all model name enums

OpenAIChatModel

Bases: ModelName

Enum for OpenAI Chat models

OpenAICompletionModel

Bases: str, Enum

Enum for OpenAI Completion models

AnthropicModel

Bases: ModelName

Enum for Anthropic models

DeepSeekModel

Bases: ModelName

Enum for DeepSeek models direct from DeepSeek API

GeminiModel

Bases: ModelName

Enum for Gemini models

MiniMaxModel

Bases: ModelName

Enum for MiniMax models

OpenAI_API_ParamInfo

Bases: BaseModel

Parameters exclusive to some models, when using OpenAI API

ModelInfo

Bases: BaseModel

Consolidated information about LLM, related to capacity, cost and API idiosyncrasies. Reasonable defaults for all params in case there's no specific info available.

get_model_info(model, fallback_models=[])

Get model information by name or enum value

Source code in langroid/language_models/model_info.py
def get_model_info(
    model: str | ModelName,
    fallback_models: List[str] = [],
) -> ModelInfo:
    """Get model information by name or enum value"""
    # Sequence of models to try, starting with the primary model
    models_to_try = [model] + fallback_models

    # Find the first model in the sequence that has info defined using next()
    # on a generator expression that filters out None results from _get_model_info
    found_info = next(
        (info for m in models_to_try if (info := _get_model_info(m)) is not None),
        None,  # Default value if the iterator is exhausted (no valid info found)
    )

    if found_info is not None:
        return found_info

    normalized_models = _normalize_model_names(models_to_try)
    found_info = next(
        (
            info
            for normalized_model in normalized_models
            if (info := _get_model_info(normalized_model)) is not None
        ),
        None,
    )
    if found_info is not None:
        return found_info

    _warn_unknown_model(models_to_try)
    return ModelInfo()