Fallback strategy
Build robust apps that survive model / channel outages.
Layer 1: Routify auto-fallback (free)
Routify automatically retries within the same model across alternate channels. You don't need to do anything — this is on by default.
Layer 2: Cross-model fallback (your code)
Try a cheaper / different model when premium fails:
from openai import OpenAI
client = OpenAI(base_url="https://routify.bytedance.city/v1", api_key="rtf_xxx")
MODEL_FALLBACK_CHAIN = [
"claude-opus-4-7", # primary
"claude-sonnet-4-6", # cheaper alternative
"kimi-k2.5", # CN fallback
"deepseek-v3.2", # ultra-cheap last resort
]
def chat_with_fallback(messages, **kwargs):
last_err = None
for model in MODEL_FALLBACK_CHAIN:
try:
return client.chat.completions.create(
model=model, messages=messages, **kwargs
)
except Exception as e:
last_err = e
continue
raise last_errLayer 3: Cross-vendor fallback (advanced)
If Routify itself is down (rare), have a separate OpenAI / Anthropic key as backup. Switch via env var.
Recommended chain by use case
| Use case | Chain |
|---|---|
| Cheap chat | deepseek-v3.2 → kimi-k2.5 → minimax-m2.5 |
| Premium reasoning | claude-opus-4-7 → o1 → deepseek-r1 |
| Long context | qwen3-max → kimi-k2.5 → gemini-3-pro |
| Code | deepseek-v3.2 → claude-sonnet-4-6 → qwen3-coder |