> ## Documentation Index
> Fetch the complete documentation index at: /docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Regras de roteamento

> Use regras de roteamento baseadas em CEL para redirecionar solicitações do AI Gateway para modelos diferentes com base em atributos da solicitação, avaliadas por ordem de prioridade.

As Routing Rules (regras de roteamento) são condições baseadas em CEL que interceptam solicitações ao [**AI Gateway**](/docs/pt-BR/ai-gateway/using-the-router.md) e as redirecionam para outro modelo quando há correspondência. As regras são avaliadas por ordem de prioridade, e a primeira regra correspondente prevalece. Nenhuma outra regra é avaliada após uma correspondência.

## Casos de uso

As regras de roteamento são mais úteis quando o tráfego precisa ser redirecionado ou distribuído no nível do gateway com base em atributos da solicitação, sem modificar nenhuma aplicação chamadora.

> [accordion] Trocar o modelo de um bot de suporte sem alterar nenhum código
>
> Intercepta as solicitações do bot de suporte destinadas a um modelo e as redireciona silenciosamente para um mais barato, de modo que a aplicação chamadora não precisa de alterações para aproveitar a economia.

> [accordion] Enviar documentos simples e complexos para modelos diferentes
>
> Duas regras com a mesma prioridade dividem o tráfego de documentos por complexidade: documentos simples vão para um modelo mais leve e os complexos vão para um modelo mais capaz, tudo com base nos metadados anexados a cada solicitação.

> [accordion] Manter solicitações com arquivos anexados em modelos compatíveis
>
> Identifica solicitações que incluem um arquivo anexado e as roteia por uma lista ordenada de modelos que oferecem suporte nativo à entrada de arquivos, para que a solicitação seja bem-sucedida mesmo que o primeiro modelo esteja indisponível.

> [accordion] Redirecionar o tráfego automaticamente quando um provedor fica fora do ar
>
> Uma regra genérica de baixa prioridade que redireciona o tráfego para um conjunto alternativo de modelos sempre que os provedores principais estão indisponíveis, mantendo as solicitações fluindo sem intervenção manual.

> [accordion] Distribuir a carga uniformemente entre vários endpoints do mesmo modelo
>
> Distribui as solicitações em modo round-robin entre vários endpoints que servem o mesmo modelo, equilibrando a carga de inferência entre provedores sem exigir alterações no lado do chamador.

## Como as regras de roteamento funcionam

Quando uma solicitação chega ao AI Gateway, o **AI Gateway** avalia todas as regras de roteamento ativas em ordem crescente de prioridade. A primeira regra cuja expressão CEL corresponde à solicitação determina o modelo de destino. Se nenhuma regra corresponder, é usado o modelo do payload original da solicitação.

**Exemplo:** uma solicitação chega com `model: "openai/gpt-5.6-sol"`. Uma regra de roteamento com a condição `model.contains("gpt-5.6-sol")` e o destino `openai/gpt-5.4-mini` é a regra correspondente de maior prioridade. O **AI Gateway** redireciona a solicitação para `gpt-5.4-mini`, independentemente do que o chamador especificou. Nas expressões CEL, `model` se refere ao valor do modelo no payload da solicitação.

> [card] [Veja também: balanceamento de carga no nível da solicitação](/docs/pt-BR/ai-gateway/features/load-balancing.md)
>
> Para distribuir o tráfego entre provedores no nível da solicitação sem regras para toda a organização, use o parâmetro `load_balancer` diretamente nas suas chamadas à API.

## Visibilidade

* Visível apenas para administradores do workspace.

## Criar uma regra de roteamento

Na lista **Routing Rules**, clique em <kbd> Routing Rule</kbd>. O formulário é aberto em página inteira, com um controle para voltar e uma confirmação de alterações não salvas. Ele tem cinco seções, e o botão de envio mostra **Create Rule**, ou **Save Changes** depois que a regra existe.

### General

| Campo | Descrição |
| - | - |
| **Rule name** | Um nome descritivo para esta regra de roteamento. |
| **Description** | Contexto opcional para administradores. |
| **Priority** | Um valor numérico que define a ordem de avaliação desta regra. As regras são avaliadas em ordem crescente: a prioridade `0` é avaliada antes da prioridade `10`. A primeira regra correspondente prevalece. |
| **Enable rule** | Regras desativadas permanecem salvas, mas não são avaliadas nas solicitações. |

### Load Balancer

Opcional. Define o modelo ou os modelos de destino para onde as solicitações correspondentes serão roteadas. Deixe esta seção vazia para criar uma regra que serve apenas para aplicar um [plugin](#plugins) ou um [cache](#cache) ao tráfego correspondente, sem nenhum roteamento de modelo.

**Load balancing strategy** define como os destinos são usados:

* **Fallback**: roteia para o modelo principal. Por padrão, tenta o próximo modelo quando ele falha com status `408`, `429`, `500`, `502`, `503`, `504` ou `529`. Depois que a regra tem um modelo de destino, **Fallback status codes** aparece e substitui essa lista; deixe-o vazio para usar o padrão. O campo da API é `models_config.fallback_on_codes`, que aceita até 20 inteiros únicos de 400 a 599. Esse campo está disponível apenas no modo Fallback.
* **Latency**: roteia para o modelo com a menor latência observada recentemente. Consulte [Roteamento baseado em latência](/docs/pt-BR/ai-gateway/features/load-balancing.md#latency-based-routing) para ver o algoritmo de seleção completo.
* **Weighted**: divide o tráfego entre os modelos por pesos percentuais.
* **Round Robin**: alterna uniformemente entre todos os modelos configurados.

Escolha **Latency** quando minimizar o tempo de resposta for mais importante do que uma divisão fixa do tráfego. Escolha **Weighted** ou **Round Robin** quando a própria divisão for o objetivo, como em controle de custos ou testes A/B.

Clique em <kbd> Models</kbd> para adicionar um modelo de destino. O menu agrupa os modelos por provedor.

Cada destino tem um controle para removê-lo. **Fallback** também adiciona a cada destino uma alça de arrastar para reordená-lo, e **Weighted** adiciona um controle deslizante **Traffic weight** para definir a parcela de cada modelo, cuja soma deve ser 100%.

> [!WARNING]
>
> Quando uma solicitação corresponde a esta regra de roteamento, a configuração do **Load Balancer** substitui completamente os valores `model`, `load_balancer`, `fallbacks` e `fallback_on_codes` da própria solicitação; eles nunca são mesclados. Um parâmetro [`load_balancer`](/docs/pt-BR/ai-gateway/features/load-balancing) no nível da solicitação não tem efeito quando se aplica uma regra de roteamento correspondente com modelos configurados.

### Cache

Opcional. Dá à regra seu próprio cache de respostas para as solicitações correspondentes. Solicitações com correspondência exata reutilizam uma resposta em cache em vez de acionar um modelo. Deixar esta seção desativada não adiciona um cache próprio, portanto as solicitações correspondentes continuam usando a configuração [`cache`](/docs/pt-BR/ai-gateway/features/cache) no nível da solicitação.

Ative **Enable cache** para ligar o cache e, em seguida, escolha **Time to live** para controlar por quanto tempo as respostas correspondentes permanecem em cache, de 5 minutos a 3 dias. O padrão é 1 hora.

Quando uma regra tem o cache ativado, uma solicitação correspondente usa a configuração de cache da regra em vez do parâmetro [`cache`](/docs/pt-BR/ai-gateway/features/cache) da própria solicitação; os dois não são mesclados. Consulte [Cache de respostas de LLM](/docs/pt-BR/ai-gateway/features/cache.md) para entender como o cache funciona.

### Plugins

Opcional. Vincule plugins que são executados no tráfego correspondente a esta regra. Os plugins podem transformar a solicitação, a resposta ou os traces armazenados.

Clique em <kbd> Plugin</kbd> para vincular um dos seguintes:

| Plugin | O que faz |
| - | - |
| **PII Redaction** | Substitui informações de identificação pessoal por placeholders antes que o provedor as veja e, em seguida, restaura os valores originais na resposta. Configure as entidades a mascarar, o limite de detecção e o comportamento em caso de falha. Consulte [PII Redaction](/docs/pt-BR/ai-gateway/features/plugins/pii-redaction.md). |
| **Response Healing** | Corrige JSON malformado na saída do modelo antes que a resposta chegue ao chamador. Não requer configuração. Consulte [Response Healing](/docs/pt-BR/ai-gateway/features/plugins/response-healing.md). |
| **Trace Scrubbing** | Mascara campos de solicitações e respostas nos traces armazenados do tráfego correspondente. Configure quais campos devem ser limpos. Consulte [Trace Scrubbing](/docs/pt-BR/ai-gateway/features/plugins/trace-scrubbing.md). |

### Conditions

Defina quando esta regra de roteamento deve ser aplicada a uma solicitação. O **Rule Builder** cria a expressão CEL exibida em modo somente leitura em **CEL Expression Preview**; deixá-la vazia aplica a regra a todas as solicitações.

Selecione **Add rule** para escolher um tipo de condição:

| Condição | Descrição |
| - | - |
| **Header** | Corresponde ao nome e ao valor de um cabeçalho da solicitação. |
| **Model** | Corresponde ao modelo especificado no payload da solicitação. |
| **Identity** | Corresponde à identidade que faz a solicitação. |
| **Metadata** | Corresponde aos metadados anexados à solicitação. |
| **Project** | Corresponde ao escopo de projeto da solicitação. |

Cada **Add rule** cria um grupo de condições com o título **Rule 1 · N conditions**. Dentro de um grupo, selecione **Condition** para adicionar outra condição e <kbd /> para remover uma. Arraste uma condição pela alça para reordená-la. As condições de um grupo são combinadas com `and` por padrão; selecione o botão **AND** entre duas condições para mudar o grupo para `or`. **Delete** remove o grupo inteiro.

Os grupos de regras são combinados com `or` por padrão; selecione o botão entre dois grupos para mudá-los para `and`.

## Editar e excluir uma regra de roteamento

Clique no nome de uma regra na lista **Routing Rules** para abri-la no mesmo formulário. Uma regra existente exibe **Delete Rule** no rodapé do formulário, ao lado de **Save Changes**. A exclusão exige confirmação.

O menu de ações das linhas da lista oferece **Edit**, **Enable** ou **Disable** e **Delete**.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.