Dela via


GenericRandomErrorPlugin

Begäranden misslyckas med ett slumpmässigt valt fel från en fil som innehåller falska fel.

Skärmbild av en kommandotolk där Dev Proxy simulerar ett av felen för en OpenAI API-begäran enligt definitionen i konfigurationsfilen.

Konfigurationsexempel

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

Konfigurationsegenskaper

Egenskap Beskrivning Standard
errorsFile Sökväg till filen som innehåller felsvar. Inget standardvärde
rate Procentandelen begäranden om att misslyckas med ett slumpmässigt fel. Värde mellan 0 och 100. 50
retryAfterInSeconds Antalet sekunder att vänta innan du försöker begära igen. Ingår i Retry-After-svarsrubriken för dynamisk begränsning. 5

Kommandoradsalternativ

Namn Beskrivning Standard
-f, --failure-rate <failure rate> Procentandelen begäranden om att misslyckas med ett slumpmässigt fel. Värde mellan 0 och 100. 50

Anmärkningar

Värden per svar Retry-After

Som standard Retry-After använder huvudet det globala retryAfterInSeconds värdet. Du kan åsidosätta det här värdet per svar med hjälp av syntaxen @dynamic=N i felsvarsfilen, där N är antalet sekunder att vänta innan du försöker igen.

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

I det här exemplet Retry-After använder 17 rubriken sekunder för det här svaret, oavsett den globala retryAfterInSeconds inställningen. Värdet ökar för varje efterföljande begränsad begäran, precis som med den oformaterade @dynamic token.

Nästa steg