GenericRandomErrorPlugin

A hibás fájlból véletlenszerűen kiválasztott hibával rendelkező kérelmek meghiúsulnak.

Parancssor képernyőképe, amelyen a Dev Proxy szimulálja az OpenAI API-kérések egyik hibáját a konfigurációs fájlban definiált módon.

Példa konfigurációra

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "GenericRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "genericRandomErrorPlugin"
    }
  ],
  "urlsToWatch": [
    "https://api.openai.com/*"
  ],
  "genericRandomErrorPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/genericrandomerrorplugin.schema.json",
    "errorsFile": "errors.json"
  }
}

Konfigurációs tulajdonságok

Ingatlan Leírás Alapértelmezett
errorsFile A hibaválaszokat tartalmazó fájl elérési útja. errors.json
rate A sikertelen kérelmek százalékos aránya véletlenszerű hibával. 0 és 100 közötti érték. 50
retryAfterInSeconds A kérés újrapróbálkozása előtt várandó másodpercek száma. A dinamikus szabályozás Retry-After válaszfejlécén található. 5

Parancssori beállítások

Név Leírás Alapértelmezett
-f, --failure-rate <failure rate> A sikertelen kérelmek százalékos aránya véletlenszerű hibával. 0 és 100 közötti érték. 50

Megjegyzések

Válasz törzse

Ha egy body hibaválasz tulajdonságát JSON-objektumra vagy tömbre állítja be, a Dev Proxy JSON-ra szerializálja azt. Ha sztringre állítja, a Dev Proxy a sztringet as-isküldi el, idézőjelek nélkül. A rendszer egy olyan sztringet @ kezel, amely a hibafájlhoz képest egy fájl elérési útját tartalmazza a válasz törzsével. Mivel a Dev Proxy alapértelmezés szerint a Content-Type fejlécet application/jsonállítja be, állítsa be a Content-Type fejlécet úgy, hogy megfeleljen a tartalomnak, amikor például text/plainnem JSON-tartalmat ad vissza.

Válaszonkénti Retry-After értékek

A fejlesztői proxy feloldja a fejlécben az Retry-After olyan állapotkódokat@dynamic, mint például 429a , 503vagy 529. Esettől függetlenül megegyezik a fejléc nevével. A feloldáskor @dynamica kérést az Újrapróbálkoztatáspluginnal is regisztrálja, amely az alkalmazás által az Retry-After idő letelte előtt küldött kérelmeket jelenti.

Alapértelmezés szerint a fejléc a Retry-After globális retryAfterInSeconds értéket használja. Ezt az értéket válaszonként felülbírálhatja a @dynamic=N hibaválasz-fájl szintaxisával, ahol N az újrapróbálkozás előtt várandó másodpercek száma.

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/genericrandomerrorplugin.errorsfile.schema.json",
  "errors": [
    {
      "request": {
        "url": "https://api.openai.com/*"
      },
      "responses": [
        {
          "statusCode": 429,
          "headers": [
            {
              "name": "Retry-After",
              "value": "@dynamic=17"
            }
          ],
          "body": {
            "error": {
              "message": "Rate limit exceeded. Wait 17 seconds."
            }
          }
        }
      ]
    }
  ]
}

Ebben a példában a Retry-After fejléc a globális 17 beállítástól függetlenül másodperceket használ retryAfterInSeconds ehhez a válaszhoz. Az érték az egyszerű jogkivonathoz @dynamic hasonlóan minden további szabályozott kérésen növekszik.

Alapértelmezett Content-Type fejléc

Ha egy hibaválasz fejlécet body tartalmaz, és nem határoz meg fejlécet Content-Type , a Dev Proxy a fejlécmel együtt adja vissza a Content-Type: application/json választ. Ha másik tartalomtípust szeretne visszaadni, adja hozzá a Content-Type fejlécet a hibafájl válaszához. A Dev Proxy a megadott értéket használja.

Következő lépés