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

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)
    )

    # Return the found info, or a default ModelInfo if none was found
    return found_info or ModelInfo()