Skip to content

LLMプロバイダーのフォールバックを設定する

プライマリーLLMプロバイダーには、自動フェイルオーバー用に1つ以上のフォールバックプロバイダーを設定できます。 プライマリーが利用できない場合やエラーを返した場合、litellm.Routerはリスト内の次のフォールバックプロバイダーで自動的に再試行します。 num_retriesオプションは、次のプロバイダーに移行する前に何回再試行するかをプロバイダーごとに制御します。 これは、LLM Gateway、ホストされたデプロイ、NIMデプロイ、外部APIなど、DataRobotがサポートするLLMプロバイダーで機能します。

前提条件

  • datarobot-genai>=0.15.20を実行環境で利用できるようにする必要があります。 手順については、Pythonパッケージの追加を参照してください。
  • 動作中のエージェントテンプレート(CrewAI、LangGraph、LlamaIndex、またはDRAgent/NAT)。
  • 2つ以上のLLMプロバイダーまたはモデルが設定されていること(1つのプライマリー、1つ以上のフォールバック)。

コードでフォールバックを設定する

DRUMベースのテンプレート(CrewAI、LangGraph、LlamaIndex)の場合、myagent.pyファイル内のget_llm()get_router_llm()に置き換えます。

LLMConfigフィールド

primary LLMおよび各フォールバック(fallbacks内)は、LLMConfigオブジェクトとして定義されます。 ご利用のプロバイダータイプに関連するフィールドのみを設定します(複数のフォールバックを設定する例については、プロバイダータイプの組み合わせを参照してください)。

フィールド タイプ 説明
use_datarobot_llm_gateway bool プロバイダーとしてDataRobot LLM Gatewayを使用します。
llm_default_model str モデル識別子(azure/gpt-4o-miniなど)。
llm_deployment_id str ホストされたLLMデプロイのDataRobotデプロイID。
nim_deployment_id str DataRobotのNIMデプロイID。
datarobot_endpoint str DataRobot APIエンドポイントのURL。
datarobot_api_token str DataRobot APIトークン。

フレームワークの例

LLMのフォールバックシステムは、DRUMベースの各テンプレートで同様のパターンに従います。

from datarobot_genai.core.config import LLMConfig
from datarobot_genai.crewai.llm import get_router_llm

primary = LLMConfig(
    use_datarobot_llm_gateway=True,
    llm_default_model="{LLM_DEFAULT_MODEL}",
)
fallbacks = [
    LLMConfig(
        use_datarobot_llm_gateway=True,
        llm_default_model="anthropic/claude-opus-4-20250514",
    )
]

llm = get_router_llm(primary, fallbacks, {"num_retries": 1}) 
from datarobot_genai.core.config import LLMConfig
from datarobot_genai.langgraph.llm import get_router_llm

primary = LLMConfig(
    use_datarobot_llm_gateway=True,
    llm_default_model="{LLM_DEFAULT_MODEL}",
)
fallbacks = [
    LLMConfig(
        use_datarobot_llm_gateway=True,
        llm_default_model="anthropic/claude-opus-4-20250514",
    )
]

llm = get_router_llm(primary, fallbacks, {"num_retries": 1}) 
from datarobot_genai.core.config import LLMConfig
from datarobot_genai.llamaindex.llm import get_router_llm

primary = LLMConfig(
    use_datarobot_llm_gateway=True,
    llm_default_model="{LLM_DEFAULT_MODEL}",
)
fallbacks = [
    LLMConfig(
        use_datarobot_llm_gateway=True,
        llm_default_model="anthropic/claude-opus-4-20250514",
    )
]

llm = get_router_llm(primary, fallbacks, {"num_retries": 1}) 

複数のフォールバック

fallbacksリストには、複数のフォールバックプロバイダーを指定できます。 プライマリーが失敗した場合、ルーターはそれらを順番に試します。

workflow.yamlでフォールバックを設定する

DRAgent/NATテンプレートの場合、workflow.yaml内のprimaryおよびfallbacksブロックで_type: datarobot-llm-routerを使用します。

workflow.yaml
llms:
  datarobot_llm:
    _type: datarobot-llm-router
    primary:
      use_datarobot_llm_gateway: true
      llm_default_model: "{LLM_DEFAULT_MODEL}"
    fallbacks:
      - use_datarobot_llm_gateway: true
        llm_default_model: anthropic/claude-opus-4-20250514
    num_retries: 1 

YAMLのLLMConfigフィールド

primaryおよびfallbacksの各項目は、LLMConfigと同じフィールド(use_datarobot_llm_gatewayllm_default_modelllm_deployment_idnim_deployment_iddatarobot_endpointdatarobot_api_token)を受け付けます。

プロバイダータイプの組み合わせ

プライマリープロバイダーとフォールバックプロバイダーでは、異なるプロバイダータイプを使用できます。 たとえば、LLM Gatewayをプライマリーとして、デプロイをフォールバックとして使用することができます。

primary = LLMConfig(
    use_datarobot_llm_gateway=True,
    llm_default_model="azure/gpt-4o-mini",
)
fallbacks = [
    LLMConfig(
        llm_deployment_id="YOUR_DEPLOYMENT_ID",
    ),
    LLMConfig(
        use_datarobot_llm_gateway=True,
        llm_default_model="anthropic/claude-opus-4-20250514",
    ),
]

llm = get_router_llm(primary, fallbacks, {"num_retries": 1}) 
llms:
  datarobot_llm:
    _type: datarobot-llm-router
    primary:
      use_datarobot_llm_gateway: true
      llm_default_model: azure/gpt-4o-mini
    fallbacks:
      - llm_deployment_id: YOUR_DEPLOYMENT_ID
      - use_datarobot_llm_gateway: true
        llm_default_model: anthropic/claude-opus-4-20250514
    num_retries: 1 

再試行とレイテンシー

再試行するたびに、レスポンスのレイテンシーが長くなります。 信頼性とレスポンス時間のバランスを取るため、num_retriesは控えめな値(1など)に設定してください。