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.
A nyelvi modell API-k jogkivonatalapú sebességkorlátozását szimulálja a parancssori és befejezési jogkivonat-használat nyomon követésével a konfigurálható időkereteken belül.
Példa konfigurációra
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.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/v3.0.0/languagemodelratelimitingplugin.schema.json",
"promptTokenLimit": 5000,
"completionTokenLimit": 5000,
"resetTimeWindowSeconds": 60,
"whenLimitExceeded": "Throttle",
"headerRetryAfter": "retry-after"
}
}
Konfigurációs tulajdonságok
| Property | Description | Default |
|---|---|---|
promptTokenLimit |
Az időkereten belül engedélyezett parancssori jogkivonatok maximális száma. | 5000 |
completionTokenLimit |
Az időkereten belül engedélyezett befejezési jogkivonatok maximális száma. | 5000 |
resetTimeWindowSeconds |
Időablak másodpercben, amely után a jogkivonatok korlátai alaphelyzetbe állíthatók. | 60 |
whenLimitExceeded |
Válasz viselkedése a tokenkorlátok túllépésekor. A következők egyike lehet: Throttle vagy Custom. |
Throttle |
headerRetryAfter |
Az újrapróbálkozás utáni információkat tartalmazó HTTP-fejléc neve. | retry-after |
customResponseFile |
Egyéni választ tartalmazó fájl elérési útja, ha whenLimitExceeded be van állítva Custom. |
token-limit-response.json |
Egyéni válaszkonfiguráció
Ha whenLimitExceeded be van állítva Custom, egyéni választ adhat meg egy külön JSON-fájlban:
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/languagemodelratelimitingplugin.customresponsefile.schema.json",
"statusCode": 429,
"headers": [
{
"name": "retry-after",
"value": "@dynamic"
},
{
"name": "content-type",
"value": "application/json"
}
],
"body": {
"error": {
"message": "You have exceeded your token quota. Please wait before making additional requests.",
"type": "insufficient_quota",
"code": "token_quota_exceeded"
}
}
}
Egyéni választulajdonságok
| Property | Description |
|---|---|
statusCode |
HTTP-állapotkód, amely a jogkivonat-korlát túllépésekor ad vissza. |
headers |
A válaszba belefoglalandó HTTP-fejlécek tömbje. Az újrapróbálkozáshoz használva @dynamic automatikusan kiszámíthatja a másodperceket az alaphelyzetbe állításig. |
body |
A JSON-ra szerializált választörzs-objektum. |
Hogyan működik?
A LanguageModelRateLimitingPlugin a következő módon működik:
- OpenAI API-kérések elfogása: Figyeli a POST-kéréseket az OpenAI-kompatibilis kérelemtörzseket tartalmazó konfigurált URL-címekre
-
Jogkivonat-használat nyomon követése: Elemzi a kinyerni
prompt_tokenskívánt éscompletion_tokensa használati szakaszból származó válaszokat - Korlátozások kikényszerítése: A felhasznált jogkivonatok összegének fenntartása a konfigurált időkereten belül
- Szabályozási válaszok megadása: Ha túllépi a korlátokat, a standard szabályozási válaszokat vagy az egyéni válaszokat adja vissza
Támogatott kéréstípusok
A beépülő modul támogatja az OpenAI-befejezési és a csevegés-befejezési kéréseket is:
-
Befejezési kérelmek: Tulajdonsággal rendelkező
promptkérelmek -
Csevegés befejezésére vonatkozó kérések: Tulajdonsággal rendelkező
messageskérések
Jogkivonatok nyomon követése
A jogkivonat-felhasználást külön követi nyomon a következőhöz:
- Parancssori jogkivonatok: A kérés által felhasznált bemeneti jogkivonatok
- Befejezési jogkivonatok: A válasz által létrehozott kimeneti jogkivonatok
Ha bármelyik korlátot túllépi, a későbbi kérések szabályozása addig történik, amíg az időkeret alaphelyzetbe nem áll.
Az időablak viselkedése
- A tokenkorlátok alaphelyzetbe állítása a konfigurált után
resetTimeWindowSeconds - Az alaphelyzetbe állítás időzítője az első kérés feldolgozásakor indul el
- Ha egy időablak lejár, a parancssori és a befejezési jogkivonat számlálói is visszaállítják a konfigurált korlátokat
Alapértelmezett szabályozási válasz
Ha whenLimitExceeded be van állítva Throttle, a beépülő modul egy standard OpenAI-kompatibilis hibaválaszt ad vissza:
{
"error": {
"message": "You exceeded your current quota, please check your plan and billing details.",
"type": "insufficient_quota",
"param": null,
"code": "insufficient_quota"
}
}
A válasz a következőket tartalmazza:
- HTTP-állapotkód:
429 Too Many Requests -
retry-afterfejléc másodperccel, amíg a jogkivonatkorlátok alaphelyzetbe nem állíthatók - CORS-fejlécek, ha az eredeti kérés tartalmaz egy fejlécet
Origin
Használati esetek
A LanguageModelRateLimitingPlugin a következő esetekben hasznos:
- Jogkivonatalapú sebességkorlátozás tesztelése: Szimulálja az alkalmazás viselkedését, amikor a nyelvi modellszolgáltatók jogkivonatkvótákat kényszerítenek ki
- Fejlesztési költségszimuláció: A tokenhasználati minták megismerése a fejlesztés során, mielőtt valós API-korlátokat érnénk el
- Rugalmasságtesztelés: Ellenőrizze, hogy az alkalmazás megfelelően kezeli-e a jogkivonatkorlát hibáit, és implementálja-e a megfelelő újrapróbálkozási logikát
- Helyi LLM-tesztelés: Olyan helyi nyelvi modellek (például Ollama) jogkivonat-korlátozási forgatókönyveinek tesztelése, amelyek nem kényszerítik saját korlátaikat
Példaforgatókönyvek
1. forgatókönyv: Alapszintű jogkivonat-korlátozás
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 1000,
"completionTokenLimit": 500,
"resetTimeWindowSeconds": 300
}
}
Ez a konfiguráció legfeljebb 1000 parancssori jogkivonatot és 500 befejezési jogkivonatot tesz lehetővé egy 5 perces ablakban.
2. forgatókönyv: Egyéni hibaválaszok
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 2000,
"completionTokenLimit": 1000,
"resetTimeWindowSeconds": 60,
"whenLimitExceeded": "Custom",
"customResponseFile": "custom-token-error.json"
}
}
Ez a konfiguráció egyéni válaszfájlt használ a speciális hibaüzenetek biztosítására a jogkivonat-korlátok túllépése esetén.