Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Egy pillantással
Cél: LLM-jogkivonatok sebességkorlátainak tesztelése
Idő: 10 perc
Beépülő modulok:LanguageModelRateLimitingPlugin
Előfeltételek:Fejlesztői proxy beállítása
Nyelvi modelleket használó alkalmazások létrehozásakor tesztelnie kell, hogy az alkalmazás hogyan kezeli a jogkivonatalapú sebességkorlátozást. A Dev Proxy lehetővé teszi a nyelvi modell API-k jogkivonatkorlátainak szimulálását a LanguageModelRateLimitingPlugin használatával.
Nyelvi modell API-k tokenkorlátainak szimulálása
Első lépésként engedélyezze a LanguageModelRateLimitingPlugin elemet a konfigurációs fájlban.
Fájl: devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.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/*"
]
}
]
}
Jótanács
A beépülő modul bármilyen OpenAI-kompatibilis API-val működik, beleértve az olyan helyi nyelvi modelleket is, mint az Ollama. Adja meg a tulajdonságban tesztelni kívánt összes nyelvi modell API-végpontot urlsToWatch .
Ezután állítsa be a beépülő modult a kívánt tokenkorlátokkal és időkerettel.
Fájl: devproxyrc.json (tokenkorlátokkal kiegészítve)
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.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.3.0/languagemodelratelimitingplugin.schema.json",
"promptTokenLimit": 1000,
"completionTokenLimit": 500,
"resetTimeWindowSeconds": 60,
"whenLimitExceeded": "Throttle"
}
}
Ez a konfiguráció legfeljebb 1000 parancssori jogkivonatot és 500 befejezési jogkivonatot tesz lehetővé egy 60 másodperces ablakban. Ha bármelyik korlátot túllépi, a rendszer a további kéréseket szabványos 429-válaszsal szabályozza.
Indítsa el a dev proxyt a konfigurációs fájllal, és használja az alkalmazást a nyelvi modell kéréseinek igényléséhez. A beépülő modul nyomon követi a tényleges API-válaszok token felhasználását, és a korlátok túllépése esetén korlátozza a kérelmeket.
Tesztelés egyéni hibaválaszokkal
Egyéni válaszokat is konfigurálhat, ha a tokenkorlátokat túllépi, úgy, hogy beállítja a whenLimitExceeded értéket Custom-re, és létrehoz egy egyéni válaszfájlt.
Fájl: devproxyrc.json (csak languageModelRateLimitingPlugin szakasz)
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 500,
"completionTokenLimit": 300,
"resetTimeWindowSeconds": 120,
"whenLimitExceeded": "Custom",
"customResponseFile": "token-limit-response.json"
}
}
Hozza létre az egyéni válaszfájlt a kívánt hibaformátummal:
Fájl: token-limit-response.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.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"
}
}
}
}
Az @dynamic retry-after fejlécek értéke automatikusan kiszámítja a fennmaradó másodperceket, amíg a token korlátai újraindulnak.
Különböző forgatókönyvek tesztelése
1. forgatókönyv: Alacsony tokenkorlátok a gyakori teszteléshez
Fájl: devproxyrc.json (csak languageModelRateLimitingPlugin szakasz)
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 100,
"completionTokenLimit": 50,
"resetTimeWindowSeconds": 30
}
}
Alacsony korlátok és rövid időkeretek használatával gyorsan aktiválhatja a szabályozást a fejlesztés és a tesztelés során.
2. forgatókönyv: Éles környezethez hasonló korlátok
Fájl: devproxyrc.json (csak languageModelRateLimitingPlugin szakasz)
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 10000,
"completionTokenLimit": 5000,
"resetTimeWindowSeconds": 3600
}
}
A valós tokenhasználati minták teszteléséhez állítson be az éles környezetéhez hasonló korlátokat.
3. forgatókönyv: Aszimmetrikus korlátok
Fájl: devproxyrc.json (csak languageModelRateLimitingPlugin szakasz)
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 2000,
"completionTokenLimit": 100,
"resetTimeWindowSeconds": 300
}
}
Olyan forgatókönyvek tesztelése, amelyeknél a befejezési jogkivonat korlátai alacsonyabbak a parancssori korlátoknál, és a költségtudatos API-csomagokat szimulálják.
Következő lépés
További információ a LanguageModelRateLimitingPlugin-ról.