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を使用します。
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_gateway、llm_default_model、llm_deployment_id、nim_deployment_id、datarobot_endpoint、datarobot_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など)に設定してください。