Přijetí pomocí zásobníku tokenů
Rozhodněte přijetí zásobníkem tokenů z výslovného času a vraťte další stav.
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| Projekt | Ověřte přesné vyčerpání a omezené doplnění a odmítněte zpětný čas, neplatné náklady a nekonečné hodnoty. |
|---|---|
| Před použitím zkontrolujte | Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu. |
| Modely | Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně. |
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), allowedPřed změnou pravidel popište stavový přechod
TokenCoppice je programovací prostředí pro Windows k prověřování stavového kódu aplikací s modelem AI. Začněte zaznamenáním stavu před operací a výsledku očekávaného po ní. Konverzace tak získá pozorovatelné smluvené chování a snáze zjistíte, zda navržená změna řeší pravidla, nebo jen přeskupuje aritmetiku.
Příkladem úkolu je přijímací funkce token bucket. Zahrňte do diskuse současná pravidla kapacity, doplňování a ceny požadavku a pak požádejte asistenta o kontrolu stavu vraceného po přijetí nebo odmítnutí. Příklad pomáhá vymezit kontrolu zdrojů; provoz služby omezující četnost zůstává odpovědností aplikace a infrastruktury.
Navržený přechod kontrolujte s ohledem na časové předpoklady a stav ukládaný pro další požadavek. Testujte meze, například zůstatek přesně odpovídající ceně a požadavek přicházející bez uplynulého času. Tyto kontroly spusťte ve vlastním projektu a prověřte volající kód, než budete předpokládat, že lokálně správná pomocná funkce určuje chování souběžných požadavků.
Modely označené jako nefiltrované můžete vybírat přes podporovaný koncový bod kompatibilní s OpenAI nebo Anthropic, který je nabízí. Nastavte potřebné přihlašovací údaje a ověřte dostupné nástroje a kontext. Chování modelu a limity koncového bodu stále platí, zatímco vaše kritéria přijetí zůstávají založena na stanovených pravidlech aplikace a výsledcích testů.
Otázky ke změnám stavových pravidel
Co má obsahovat požadavek na pravidla přijímání?
Dodejte počáteční stav, cenu požadavku, časové hodnoty a očekávané rozhodnutí. Uveďte, které aktualizované hodnoty se pak musí uložit. Asistent tak může uvažovat o celém přechodu, místo aby hádal pravidla z jediného aritmetického výrazu.
Zaručuje správná pomocná funkce omezení četnosti při souběhu?
Ne. Prověřte, jak aplikace čte a zapisuje sdílený stav a jaké záruky souběhu toto úložiště poskytuje. Izolovaně testovaná pomocná funkce nedokládá, že současné požadavky nemohou spotřebovat stejný dostupný zůstatek.
Jak mají odmítnuté požadavky ovlivňovat uložený stav?
Výslovně to definujte pro svá pravidla včetně doplnění za uplynulý čas a aktualizace časového údaje. Požádejte model o vysvětlení navrženého přechodu a testujte následné požadavky, protože zdánlivě neškodné odmítnuté volání může ovlivnit další rozhodnutí.
Mohu experimentovat bez změny živých pravidel přijímání?
Před použitím změny pravidel porovnejte přechody pomocí testovacích případů a vývojové instance aplikace. TokenCoppice podporuje diskusi o kódu; rozhodování o kontrole a provozním nasazení zůstává ve stávajícím procesu projektu.
TokenCoppice · Aktualizováno 2026-10-25