Skip to content

datarobot_genai.core.llm_parameters

llm_parameters

Framework-agnostic LiteLLM request parameter helpers.

Shared by dragent workflow YAML and the LangGraph / LlamaIndex / CrewAI get_*_llm() factories. For parsing reasoning output blocks from model responses, see datarobot_genai.core.agents.reasoning.

default_reasoning_extra_body

default_reasoning_extra_body(model_name: str | None) -> dict[str, Any]

Return provider-specific extra_body for reasoning=True.

Source code in datarobot_genai/core/llm_parameters.py
def default_reasoning_extra_body(model_name: str | None) -> dict[str, Any]:
    """Return provider-specific ``extra_body`` for ``reasoning=True``."""
    normalized = _normalize_model_name(model_name)

    if "gemini" in normalized:
        return dict(_GEMINI_EXTRA_BODY)

    if "opus" in normalized:
        return dict(_ANTHROPIC_OPUS_EXTRA_BODY)

    if _OPENAI_REASONING_MODEL_RE.search(normalized):
        return dict(_OPENAI_EXTRA_BODY)

    return dict(_ANTHROPIC_SONNET_EXTRA_BODY)

apply_reasoning_to_parameters

apply_reasoning_to_parameters(parameters: dict[str, Any] | None, *, reasoning: bool, model_name: str | None, explicit_extra_body: bool = False) -> dict[str, Any]

Merge reasoning into LiteLLM parameters (extra_body, temperature).

When explicit_extra_body is true (workflow YAML set extra_body), or parameters already contains extra_body, only temperature is cleared for reasoning=True. Otherwise reasoning=True adds a provider default extra_body derived from model_name.

Source code in datarobot_genai/core/llm_parameters.py
def apply_reasoning_to_parameters(
    parameters: dict[str, Any] | None,
    *,
    reasoning: bool,
    model_name: str | None,
    explicit_extra_body: bool = False,
) -> dict[str, Any]:
    """Merge ``reasoning`` into LiteLLM ``parameters`` (``extra_body``, temperature).

    When ``explicit_extra_body`` is true (workflow YAML set ``extra_body``), or
    ``parameters`` already contains ``extra_body``, only temperature is cleared
    for ``reasoning=True``. Otherwise ``reasoning=True`` adds a provider default
    ``extra_body`` derived from ``model_name``.
    """
    params = dict(parameters or {})

    if explicit_extra_body or "extra_body" in params:
        if reasoning:
            params.pop("temperature", None)
        return params

    if reasoning:
        params.pop("temperature", None)
        params["extra_body"] = default_reasoning_extra_body(model_name)

    return params