Ammissione con secchio di token
Decidi l'ammissione di un secchio di token con un istante esplicito e restituisci il nuovo stato.
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| Progetto | Verifica esaurimento esatto e ricarica limitata, rifiutando tempo retrogrado, costi invalidi e valori non finiti. |
|---|---|
| Controlla prima di applicare | Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche. |
| Modelli | Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente. |
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), allowedDescrivi la transizione di stato prima di cambiare la politica
TokenCoppice è un ambiente di programmazione per Windows per esaminare codice applicativo con stato insieme a un modello IA. Parti registrando lo stato prima di un’operazione e il risultato atteso dopo. Ciò dà alla conversazione un contratto osservabile e facilita capire se una modifica proposta affronti la politica o ne riorganizzi soltanto l’aritmetica.
Una funzione di ammissione con token bucket è un esempio di attività. Porta nella discussione le regole attuali su capacità, rifornimento e costo delle richieste, poi chiedi all’assistente di esaminare lo stato restituito dopo accettazione o rifiuto. L’esempio aiuta a impostare la revisione dei sorgenti; gestire un servizio di limitazione delle richieste resta responsabilità dell’applicazione e dell’infrastruttura.
Esamina la transizione proposta prestando attenzione alle ipotesi temporali e allo stato memorizzato per la richiesta successiva. Prova limiti come un saldo esattamente pari al costo e una richiesta che arriva senza tempo trascorso. Esegui queste verifiche nel progetto ed esamina i chiamanti prima di presumere che una funzione localmente corretta stabilisca il comportamento fra richieste concorrenti.
Puoi scegliere modelli descritti come senza filtri tramite un endpoint supportato compatibile con OpenAI o di Anthropic che li offra. Configura le credenziali necessarie e verifica strumenti e contesto disponibili. Comportamento e limiti del modello dell’endpoint continuano ad applicarsi, mentre i criteri di accettazione restano fondati sulla politica dichiarata dell’applicazione e sui risultati dei test.
Domande sulle modifiche alle politiche con stato
Cosa deve includere una richiesta sulla politica di ammissione?
Fornisci stato iniziale, costo della richiesta, valori temporali e decisione attesa. Indica quali valori aggiornati vanno memorizzati dopo. Ciò permette all’assistente di ragionare su una transizione completa anziché dedurre la politica da una sola espressione aritmetica.
Una funzione corretta garantisce la limitazione concorrente delle richieste?
No. Esamina come l’applicazione legge e scrive lo stato condiviso e quali garanzie di concorrenza offre la memoria usata. Una funzione testata isolatamente non dimostra che richieste simultanee non possano consumare lo stesso saldo disponibile.
Come devono influire le richieste rifiutate sullo stato memorizzato?
Definiscilo esplicitamente nella politica, inclusi eventuali rifornimenti per il tempo trascorso e aggiornamenti del timestamp. Chiedi al modello di spiegare la transizione proposta e prova richieste successive: una chiamata rifiutata apparentemente innocua può influenzare la decisione seguente.
Posso sperimentare senza cambiare le regole di ammissione in produzione?
Usa casi di prova e un’istanza di sviluppo dell’applicazione per confrontare le transizioni prima di applicare una modifica alla politica. TokenCoppice supporta la discussione sul codice; decisioni di revisione e rilascio operativo restano nel processo esistente del progetto.
TokenCoppice · Aggiornato 2026-10-25