Sdílet prostřednictvím


GenericRandomErrorPlugin (Generický náhodný chybový plugin)

Nezdaří požadavky s náhodnou vybranou chybou ze souboru obsahujícího napodobené chyby.

snímek obrazovky příkazového řádku se simulujícími jednu z chyb pro požadavek rozhraní OPENAI API definovaným v konfiguračním souboru

Příklad konfigurace

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.2.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/v2.2.0/genericrandomerrorplugin.schema.json",
    "errorsFile": "errors.json"
  }
}

Vlastnosti konfigurace

Vlastnost Popis Výchozí
errorsFile Cesta k souboru, který obsahuje chybové odpovědi. Bez výchozího nastavení
rate Procento neúspěšných požadavků s náhodnou chybou Hodnota mezi 0 a 100. 50
retryAfterInSeconds Počet sekund, které se mají počkat před opakováním požadavku. Součástí hlavičky Retry-After odpovědi pro dynamické omezování. 5

Možnosti příkazového řádku

Název Popis Výchozí
-f, --failure-rate <failure rate> Procento neúspěšných požadavků s náhodnou chybou Hodnota mezi 0 a 100. 50

Poznámky

Hodnoty pro jednotlivé odpovědi Retry-After

Ve výchozím nastavení používá hlavička Retry-After globální retryAfterInSeconds hodnotu. Tuto hodnotu můžete přepsat na základě odpovědi pomocí @dynamic=N syntaxe v souboru odpovědí na chyby, kde N je počet sekund čekání před opakováním.

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.2.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."
            }
          }
        }
      ]
    }
  ]
}

V tomto příkladu používá hlavička Retry-After17 sekundy pro tuto odpověď bez ohledu na globální retryAfterInSeconds nastavení. Hodnota se zvýší u každého dalšího omezeného požadavku, stejně jako u prostého @dynamic tokenu.

Další krok