Pular para o conteúdo principal

Configure o roteamento e os fallback para serviços de modelo

Esta página descreve como configurar a divisão de tráfego e fallbacks para serviços de modelo do Unity AI Gateway. A divisão de tráfego distribui solicitações entre vários back-ends de modelo por trás de um único serviço de modelo. Use-o para lançar gradualmente novos modelos, realizar a execução de testes A/B e distribuir a carga entre provedores.

Fallbacks adicionam resiliência a agentes e serviços de modelo por meio de failovers redundantes, aumentando a disponibilidade geral e a independência do modelo.

A afinidade de sessão mantém as solicitações da mesma sessão no mesmo destino.

Requisitos

Configurar a divisão de tráfego na interface do usuário

  1. No seu workspace do Databricks, clique em AI Gateway na barra lateral e selecione o serviço de modelo que deseja editar.

  2. Na seção **Destinos**, clique em **Adicione outro modelo** para adicionar uma entrada de destino para cada backend de modelo que você deseja incluir na divisão.

  3. Para cada destino, defina a porcentagem de tráfego para a participação de tráfego que você deseja que esse modelo receba.

    • As porcentagens devem somar 100%.
  4. O sistema salva as alterações automaticamente quando todas as alocações somam 100%.

O Unity AI Gateway encaminha aleatoriamente cada solicitação para os destinos configurados de acordo com as porcentagens de tráfego especificadas. Com o tempo, a parcela observada do tráfego para cada destino converge para as porcentagens configuradas.

Afinidade de sessão

Quando a divisão de tráfego é configurada, a Databricks habilita automaticamente a afinidade de sessão, que roteia as solicitações da mesma sessão para o mesmo destino. Se uma determinada solicitação é fixada, depende do cliente: solicitações que incluem um cabeçalho de identificação de sessão são roteadas pela sessão, enquanto solicitações sem um seguem a divisão de tráfego ponderada.

Em vez de aplicar a divisão de tráfego ponderada a cada solicitação, o Unity AI Gateway pin cada sessão em um único destino, aproveitando o cache de prefixo e produzindo resultados previsíveis. Cabeçalhos padrão para a maioria dos clientes de LLM e agentes de codificação identificam cada sessão. Um cliente agrupa suas solicitações em uma sessão enviando o mesmo valor de cabeçalho em cada uma, e essas solicitações são encaminhadas para o mesmo destino.

fallback

Os fallback aumentam a disponibilidade ao reexecutar uma solicitação com falha em destinos de backup, em uma ordem de prioridade definida por você. Um serviço de modelo pode usar fallback com ou sem divisão de tráfego.

É possível usar a divisão de tráfego e fallbacks em conjunto, mas eles se aplicam em diferentes estágios do tratamento de solicitações:

  • A divisão de tráfego determina o destino inicial (primário) de uma solicitação.
  • O fallback define como o sistema tenta novamente a solicitação se a tentativa principal falhar.

Ao configurar a divisão de tráfego e fallbacks:

  1. Para cada solicitação recebida, a divisão de tráfego seleciona um destino do conjunto configurado, com base nos pesos. Esta seleção torna-se o destino primário para essa solicitação.
  2. O sistema envia a solicitação para o destino principal.
  3. Se a solicitação falhar (por exemplo, devido a um erro 429 ou 5xx), o sistema tentará novamente a solicitação nos destinos de fallback configurados. Ele os tenta na ordem exata especificada.
  4. O sistema tenta fallbacks sequencialmente até que um seja bem-sucedido ou esgote todas as opções de fallback.
nota

Fallbacks são independentes da divisão de tráfego. Depois que o sistema seleciona um destino principal, ele não reaplica a divisão de tráfego durante as novas tentativas.

O desdobramento de tráfego e o fallback fluem em um serviço de modelo.

Observabilidade

Decisões de roteamento para divisões de tráfego e fallbacks são registradas no campo routing_information na system table system.ai_gateway.usage. Consulte esta tabela para verificar se as requisições estão sendo roteadas de acordo com suas porcentagens configuradas e ordem de fallback.

SQL
SELECT
destination_name AS destination,
COUNT(*) AS request_count,
ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER (), 1) AS actual_pct
FROM system.ai_gateway.usage
WHERE
endpoint_name = 'your-endpoint-name'
AND event_time >= CURRENT_TIMESTAMP - INTERVAL 7 DAY
GROUP BY destination_name
ORDER BY actual_pct DESC;

Limitações

  • Você pode configurar a divisão de tráfego em um máximo de 5 destinos.
  • Não é possível configurar a divisão de tráfego em destinos de fallback.

Recursos adicionais