Admissão por balde de tokens
Decida a admissão de um balde de tokens a partir de um instante explícito e retorne o próximo estado.
from math import isfinite
def admit(tokens, last, now, capacity, rate, cost):
values = (tokens, last, now, capacity, rate, cost)
if not all(type(x) in (int, float) and isfinite(x) for x in values):
raise ValueError("finite numbers required")
if not (capacity > 0 and rate > 0 and 0 < cost <= capacity
and 0 <= tokens <= capacity and now >= last):
raise ValueError("invalid bucket state")
refill = min(capacity, tokens + (now - last) * rate)
allowed = refill >= cost
return (refill - cost if allowed else refill, now), allowed| Projeto | Confira o esgotamento exato e a recarga limitada, rejeitando tempo regressivo, custos inválidos e valores não finitos. |
|---|---|
| Revise antes de aplicar | Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações. |
| Modelos | Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente. |
from math import isfinite
def admit(tokens, last, now, capacity, rate, cost):
values = (tokens, last, now, capacity, rate, cost)
if not all(type(x) in (int, float) and isfinite(x) for x in values):
raise ValueError("finite numbers required")
if not (capacity > 0 and rate > 0 and 0 < cost <= capacity
and 0 <= tokens <= capacity and now >= last):
raise ValueError("invalid bucket state")
refill = min(capacity, tokens + (now - last) * rate)
allowed = refill >= cost
return (refill - cost if allowed else refill, now), allowedDescreva a transição de estado antes de mudar a política
TokenCoppice é um ambiente de programação para Windows para examinar código de aplicação com estado usando um modelo de IA. Comece registrando o estado anterior à operação e o resultado esperado depois dela. Isso dá à conversa um contrato observável e facilita perceber se uma alteração proposta trata da política ou apenas reorganiza sua aritmética.
Uma função de admissão por token bucket fornece um exemplo de tarefa. Traga à discussão suas regras atuais de capacidade, reposição e custo de solicitação e peça ao assistente que inspecione o estado retornado após aceitação ou rejeição. O exemplo ajuda a estruturar a revisão do código-fonte; operar um serviço de limitação de taxa continua sendo responsabilidade da aplicação e da infraestrutura.
Revise a transição proposta com atenção às premissas de tempo e ao estado armazenado para a próxima solicitação. Teste limites como um saldo igual ao custo exato e uma solicitação que chega sem tempo decorrido. Execute essas verificações no projeto e inspecione os chamadores antes de presumir que uma função auxiliar localmente correta estabelece o comportamento entre solicitações concorrentes.
Você pode escolher modelos descritos como sem filtros por um endpoint suportado compatível com OpenAI ou da Anthropic que os ofereça. Configure as credenciais necessárias e verifique as ferramentas e o contexto disponíveis. O comportamento e os limites do modelo do endpoint continuam válidos, enquanto seus critérios de aceitação seguem fundamentados na política declarada da aplicação e nos resultados dos testes.
Perguntas sobre mudanças de políticas com estado
O que incluir em uma solicitação sobre política de admissão?
Forneça o estado inicial, o custo da solicitação, os valores de tempo e a decisão esperada. Declare quais valores atualizados devem ser armazenados depois. Isso permite ao assistente raciocinar sobre uma transição completa em vez de deduzir a política de uma única expressão aritmética.
Uma função auxiliar correta garante limitação de taxa concorrente?
Não. Inspecione como a aplicação lê e grava o estado compartilhado e quais garantias de concorrência esse armazenamento oferece. Uma função auxiliar testada isoladamente não comprova que solicitações simultâneas não possam consumir o mesmo saldo disponível.
Como solicitações rejeitadas devem afetar o estado armazenado?
Defina isso explicitamente para sua política, incluindo qualquer reposição pelo tempo decorrido e atualização da marca de tempo. Peça ao modelo que explique a transição proposta e teste solicitações sucessivas, pois uma chamada rejeitada aparentemente inofensiva pode afetar a próxima decisão.
Posso experimentar sem mudar as regras de admissão em produção?
Use casos de teste e uma instância de desenvolvimento da aplicação para comparar transições antes de aplicar uma mudança de política. TokenCoppice apoia a discussão de código; decisões de revisão e implantação operacional continuam com o processo existente do projeto.
TokenCoppice · Atualizado 2026-10-25