Skip to content

Utils

Utility functions for ragpill.

ragpill.utils

get_pydantic_ai_llm_model

get_pydantic_ai_llm_model(base_url, api_key, model_name, temperature=0.0)

Get a pydantic-ai LLM model based on provided settings.

Source code in src/ragpill/utils.py
def get_pydantic_ai_llm_model(base_url: str, api_key: str, model_name: str, temperature: float = 0.0) -> models.Model:
    """Get a pydantic-ai LLM model based on provided settings."""
    http_client = AsyncClient()
    openai_client = AsyncOpenAI(
        max_retries=3,
        base_url=base_url,
        api_key=api_key,
        http_client=http_client,
    )
    pyai_llm_model = OpenAIChatModel(
        model_name, provider=OpenAIProvider(openai_client=openai_client), settings={"temperature": temperature}
    )
    return pyai_llm_model

merge_settings

merge_settings(settings_prefixes)

Used to merge muliple pydantic settings into a single dict with prefixed keys to log in mlflow.

:param settings_prefixes: Description :type settings_prefixes: Sequence[tuple[BaseSettings|dict, str]] :return: Description :rtype: dict[str, Any]

Example: merge_settings((settings.mlflow_settings, "mlflow"),(settings.agent_settings, "agent"), (settings.llm_settings, "llm"), (settings.embedding_settings, "embedding"), (settings.retrieval_settings, "retrieval"))

Source code in src/ragpill/utils.py
def merge_settings(settings_prefixes: Sequence[tuple[BaseSettings | dict[str, Any], str]]) -> dict[str, Any]:
    """
    Used to merge muliple pydantic settings into a single dict with prefixed keys to log in mlflow.

    :param settings_prefixes: Description
    :type settings_prefixes: Sequence[tuple[BaseSettings|dict, str]]
    :return: Description
    :rtype: dict[str, Any]

    Example:
    merge_settings((settings.mlflow_settings, "mlflow"),(settings.agent_settings, "agent"), (settings.llm_settings, "llm"), (settings.embedding_settings, "embedding"), (settings.retrieval_settings, "retrieval"))
    """
    return reduce(lambda x, y: x | y, map(_prefix_settings_key, settings_prefixes))

Common Utilities

This module provides various utility functions used throughout ragpill.

Check the source code for available utilities.