Udostępnij za pośrednictwem


GenericRandomErrorPlugin

Żądania kończą się niepowodzeniem z losowym wybranym błędem z pliku zawierającego wyśmiewane błędy.

Zrzut ekranu wiersza polecenia z serwerem proxy dewelopera symulującym jeden z błędów żądania interfejsu API OpenAI zgodnie z definicją w pliku konfiguracji.

Przykład konfiguracji

{
  "$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"
  }
}

Właściwości konfiguracji

Własność Opis Domyślny
errorsFile Ścieżka do pliku zawierającego odpowiedzi na błędy. Brak wartości domyślnej
rate Procent żądań do niepowodzenia z losowym błędem. Wartość z zakresu od 0 do 100. 50
retryAfterInSeconds Liczba sekund oczekiwania przed ponowieniu próby żądania. Uwzględniony w nagłówku odpowiedzi Retry-After na potrzeby ograniczania dynamicznego. 5

Opcje wiersza polecenia

Nazwa Opis Domyślny
-f, --failure-rate <failure rate> Procent żądań do niepowodzenia z losowym błędem. Wartość z zakresu od 0 do 100. 50

Uwagi

Wartości na odpowiedź Retry-After

Domyślnie Retry-After nagłówek używa wartości globalnej retryAfterInSeconds . Tę wartość można zastąpić dla poszczególnych odpowiedzi przy użyciu @dynamic=N składni w pliku odpowiedzi o błędach, gdzie N jest to liczba sekund oczekiwania przed ponowną próbą.

{
  "$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."
            }
          }
        }
      ]
    }
  ]
}

W tym przykładzie Retry-After nagłówek używa 17 sekund dla tej odpowiedzi, niezależnie od ustawienia globalnego retryAfterInSeconds . Wartość zwiększa się dla każdego kolejnego żądania ograniczonego, tak jak w przypadku zwykłego @dynamic tokenu.

Następny krok