Failover
O mecanismo de failover do OfoxAI troca automaticamente para um modelo alternativo quando o modelo principal está indisponível, garantindo que o seu serviço não seja interrompido.
Como funciona
- A requisição é enviada ao modelo principal
- Se o modelo principal retornar um erro (5xx, timeout, limitação de taxa etc.)
- os modelos da lista de fallback são tentados sequencialmente
- A primeira resposta bem-sucedida é retornada
Fallback por requisição
Configure o fallback para uma requisição individual usando o parâmetro provider.fallback:
fallback.py
from openai import OpenAI
client = OpenAI(
base_url="https://api.ofox.ai/v1",
api_key="<Sua OFOXAI_API_KEY>"
)
response = client.chat.completions.create(
model="openai/gpt-4o", # Modelo principal
messages=[{"role": "user", "content": "Olá"}],
extra_body={
"provider": {
"fallback": [
"anthropic/claude-sonnet-4.5", # Primeira alternativa
"google/gemini-3-flash-preview" # Segunda alternativa
]
}
}
)
# Verificar o modelo efetivamente utilizado
print(response.model)fallback.ts
const response = await client.chat.completions.create({
model: 'openai/gpt-4o',
messages: [{ role: 'user', content: 'Olá' }],
// @ts-ignore Parâmetro de extensão OfoxAI
provider: {
fallback: [
'anthropic/claude-sonnet-4.5',
'google/gemini-3-flash-preview'
]
}
})Configuração global de fallback
Configure uma estratégia global de fallback no painel do OfoxAI, sem precisar especificar em cada requisição:
- Faça login no Painel OfoxAI
- Acesse Configurações → Estratégia de roteamento
- Configure a lista padrão de modelos de fallback
O parâmetro fallback no nível da requisição sobrepõe a configuração global.
Condições de ativação
As seguintes situações ativam o fallback:
| Condição | Descrição |
|---|---|
| HTTP 5xx | Erro do servidor |
| Timeout | Tempo de resposta do modelo esgotado |
| 429 Throttle | Limite de taxa atingido no modelo upstream |
| Modelo indisponível | Manutenção ou desativação pelo provedor |
As seguintes situações não ativam o fallback:
| Condição | Descrição |
|---|---|
| HTTP 4xx (exceto 429) | Erros do cliente exigem correção na requisição |
| Filtragem de conteúdo | Conteúdo recusado pelo modelo |
Combinação com roteamento
O mecanismo de fallback pode ser combinado com o roteamento de provedores:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Olá"}],
extra_body={
"provider": {
"routing": "latency", # Roteamento otimizado por latência
"fallback": [ # Lista de fallback
"anthropic/claude-sonnet-4.5",
"google/gemini-3-flash-preview"
]
}
}
)Cenários recomendados de fallback
Conversação geral
"provider": {
"fallback": ["anthropic/claude-sonnet-4.5", "google/gemini-3-flash-preview"]
}Geração de código
"provider": {
"fallback": ["anthropic/claude-sonnet-4.5", "deepseek/deepseek-chat"]
}Melhor custo-benefício
"provider": {
"fallback": ["openai/gpt-4o-mini", "google/gemini-3-flash-preview", "deepseek/deepseek-chat"]
}Boas práticas
- Escolha modelos alternativos com capacidade semelhante — Para manter a qualidade das respostas após o fallback
- Configure fallback entre provedores diferentes — Evite que modelos do mesmo provedor fiquem indisponíveis simultaneamente
- Defina 2 a 3 alternativas — Suficiente para a maioria dos cenários de falha
- Monitore a frequência de fallback — Fallbacks frequentes podem indicar a necessidade de trocar o modelo principal
Last updated on