Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Överblick
Mål: Testa gränser för LLM-tokenfrekvens
Tid: 10 minuter
Plugins:LanguageModelRateLimitingPlugin
Krav:Konfigurera Dev Proxy
När du skapar appar som använder språkmodeller bör du testa hur appen hanterar tokenbaserad hastighetsbegränsning. Med Dev Proxy kan du simulera tokengränser för språkmodell-API:er med hjälp av LanguageModelRateLimitingPlugin.
Simulera tokenbegränsningar för språkmodell-API:er
För att starta, aktivera LanguageModelRateLimitingPlugin i din konfigurationsfil.
Fil: devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
"plugins": [
{
"name": "LanguageModelRateLimitingPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "languageModelRateLimitingPlugin",
"urlsToWatch": [
"https://api.openai.com/*",
"http://localhost:11434/*"
]
}
]
}
Tips/Råd
Plugin-programmet fungerar med alla OpenAI-kompatibla API:er, inklusive lokala språkmodeller som Ollama. Inkludera alla api-slutpunkter för språkmodellen som du vill testa i egenskapen urlsToWatch .
Konfigurera sedan plugin-programmet med önskade tokengränser och tidsperioder.
Fil: devproxyrc.json (komplett med tokengränser)
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
"plugins": [
{
"name": "LanguageModelRateLimitingPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "languageModelRateLimitingPlugin",
"urlsToWatch": [
"https://api.openai.com/*",
"http://localhost:11434/*"
]
}
],
"languageModelRateLimitingPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/languagemodelratelimitingplugin.schema.json",
"promptTokenLimit": 1000,
"completionTokenLimit": 500,
"resetTimeWindowSeconds": 60,
"whenLimitExceeded": "Throttle"
}
}
Den här konfigurationen tillåter upp till 1 000 prompttoken och 500 slutförandetoken inom ett 60-sekundersfönster. När någon av gränserna överskrids begränsas efterföljande begäranden med ett standardsvar på 429.
Starta Dev Proxy med konfigurationsfilen och använd din app för att göra språkmodellbegäranden. Plugin-programmet spårar tokenförbrukning från faktiska API-svar och begränsar begäranden när gränserna överskrids.
Testa med anpassade felsvar
Du kan också konfigurera anpassade svar när tokengränserna överskrids genom att ange whenLimitExceeded till Custom och skapa en anpassad svarsfil.
Fil: devproxyrc.json (endast languageModelRateLimitingPlugin)
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 500,
"completionTokenLimit": 300,
"resetTimeWindowSeconds": 120,
"whenLimitExceeded": "Custom",
"customResponseFile": "token-limit-response.json"
}
}
Skapa den anpassade svarsfilen med önskat felformat:
Fil: token-limit-response.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/languagemodelratelimitingplugin.customresponsefile.schema.json",
"statusCode": 429,
"headers": [
{
"name": "retry-after",
"value": "@dynamic"
},
{
"name": "content-type",
"value": "application/json"
}
],
"body": {
"error": {
"message": "Token quota exceeded. Your application has consumed all available tokens for this time period.",
"type": "quota_exceeded",
"code": "TOKENS_EXHAUSTED",
"details": {
"quota_type": "tokens",
"retry_after_seconds": "@dynamic"
}
}
}
}
Värdet @dynamic för återförsök efter rubriker beräknar automatiskt de sekunder som återstår tills tokengränserna återställs.
Testa olika scenarier
Scenario 1: Låga tokengränser för frekvent testning
Fil: devproxyrc.json (endast sektionen languageModelRateLimitingPlugin)
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 100,
"completionTokenLimit": 50,
"resetTimeWindowSeconds": 30
}
}
Använd låga gränser med korta tidsfönster för att snabbt utlösa strypning under utveckling och testning.
Scenario 2: Produktionsliknande gränser
Fil: devproxyrc.json (endast languageModelRateLimitingPlugin)
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 10000,
"completionTokenLimit": 5000,
"resetTimeWindowSeconds": 3600
}
}
Om du vill testa realistiska mönster för tokenförbrukning konfigurerar du gränser som liknar produktionsmiljön.
Scenario 3: Asymmetriska gränser
Fil: devproxyrc.json (endast languageModelRateLimitingPlugin-sektionen)
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 2000,
"completionTokenLimit": 100,
"resetTimeWindowSeconds": 300
}
}
Testscenarier där gränserna för slutförandetoken är lägre än promptgränserna, vilket simulerar kostnadsmedvetna API-planer.
Nästa steg
Läs mer om LanguageModelRateLimitingPlugin.