Admission par seau de jetons
Décidez de l'admission dans un seau de jetons avec un instant explicite et renvoyez le nouvel état.
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| Projet | Vérifiez l'épuisement exact et le plafond de recharge, en rejetant temps rétrograde, coûts invalides et valeurs non finies. |
|---|---|
| Vérifiez avant d’appliquer | Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications. |
| Modèles | Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément. |
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), allowedDécrire la transition d’état avant de changer la politique
TokenCoppice est un espace de programmation Windows pour examiner du code applicatif à état avec un modèle d’IA. Commencez par consigner l’état avant une opération et le résultat attendu ensuite. Cela donne un contrat observable à la conversation et facilite l’évaluation : le changement proposé traite-t-il la politique ou réorganise-t-il seulement son arithmétique ?
Une fonction d’admission par seau à jetons fournit un exemple de tâche. Apportez vos règles actuelles de capacité, de remplissage et de coût des requêtes à la discussion, puis demandez à l’assistant d’examiner l’état renvoyé après acceptation ou rejet. L’exemple aide à cadrer la revue du code ; l’exploitation d’un service de limitation de débit reste la responsabilité de votre application et de votre infrastructure.
Examinez la transition proposée en prêtant attention aux hypothèses temporelles et à l’état stocké pour la requête suivante. Testez des bornes telles qu’un solde égal au coût et une requête arrivant sans temps écoulé. Exécutez ces vérifications dans votre projet et inspectez les appelants avant de supposer qu’un utilitaire localement correct établit le comportement entre requêtes concurrentes.
Vous pouvez choisir des modèles décrits comme sans filtre via un point de terminaison compatible OpenAI ou Anthropic pris en charge qui les propose. Configurez les identifiants nécessaires et vérifiez les outils et le contexte disponibles. Le comportement et les limites du modèle du point de terminaison restent applicables, tandis que vos critères d’acceptation reposent sur la politique déclarée de l’application et les résultats des tests.
Questions sur les changements de politique à état
Que doit inclure une demande sur la politique d’admission ?
Fournissez l’état initial, le coût de la requête, les valeurs temporelles et la décision attendue. Précisez quelles valeurs mises à jour doivent être stockées ensuite. L’assistant peut ainsi raisonner sur une transition complète plutôt que deviner une politique à partir d’une expression arithmétique.
Un utilitaire correct garantit-il une limitation de débit concurrente ?
Non. Inspectez la lecture et l’écriture de l’état partagé par l’application ainsi que les garanties de concurrence du stockage. Un utilitaire testé isolément ne prouve pas que des requêtes simultanées ne peuvent pas consommer le même solde disponible.
Comment les requêtes rejetées doivent-elles affecter l’état stocké ?
Définissez-le explicitement pour votre politique, y compris le remplissage lié au temps écoulé et la mise à jour de l’horodatage. Demandez au modèle d’expliquer sa transition et testez des requêtes successives : un appel rejeté apparemment anodin peut affecter la décision suivante.
Puis-je expérimenter sans changer les règles d’admission en production ?
Utilisez des cas de test et une instance de développement de l’application pour comparer les transitions avant d’appliquer un changement de politique. TokenCoppice accompagne la discussion de programmation ; les décisions de revue et de déploiement opérationnel restent du ressort du processus existant de votre projet.
TokenCoppice · Mis à jour 2026-10-25