model_list: - model_name: zephyr-beta litellm_params: model: huggingface/HuggingFaceH4/zephyr-7b-beta api_base: http://0.0.0.0:8001 rpm: 60 tpm: 1000 - model_name: gpt-3.5-turbo litellm_params: model: gpt-3.5-turbo api_key: <my-openai-key> rpm: 200 litellm_settings: num_retries: 3 # 各model_nameに対して3回リトライ request_timeout: 10 # 10秒を超えた場合タイムアウト fallbacks: - zephyr-beta: # zephyr-betaでエラーが発生した場合 - gpt-3.5-turbo # gpt-3.5-turboにフォールバック context_window_fallbacks: # コンテキストウィンドウのエラーが発生した場合のフォールバック - zephyr-beta: - gpt-3.5-turbo-16k - gpt-3.5-turbo: - gpt-3.5-turbo-16k allowed_fails: 3 # 1分間に3回以上失敗した場合、モデルをクールダウン
この設定例では、以下のフォールバック設定が行われています。
- fallbacks: zephyr-beta モデルへのリクエストが失敗した場合(num_retries 回のリトライ後も)、gpt-3.5-turbo モデルに自動的にフォールバックします。
- context_window_fallbacks: zephyr-beta や gpt-3.5-turbo モデルでコンテキストウィンドウに関するエラーが発生した場合、それぞれ指定されたより大きなコンテキストウィンドウを持つモデル(ここでは gpt-3.5-turbo-16k を想定)にフォールバックします。
このように、config.yaml の litellm_settings 内の fallbacks および context_window_fallbacks を設定することで、LiteLLM Proxyサーバーにおける具体的なフォールバックの動作を定義できます。また、ソースには、リトライ回数 (num_retries) やリクエストタイムアウト (request_timeout)、許容される失敗回数 (allowed_fails) など、フォールバックに関連する設定も記述されています。これらの設定と組み合わせることで、より柔軟なエラーハンドリングが可能になります。なお、フォールバックの設定は、model_list で定義された model_name をキーとして指定します。
上記の設定を config.yaml に記述し、以下のコマンドでLiteLLM Proxyサーバーを起動することで、フォールバック機能が有効になります。
litellm --config ./config.yaml