Condividi tramite


GenericRandomErrorPlugin

Le richieste hanno esito negativo con un errore selezionato casuale dal file contenente errori fittizi.

Screenshot di un prompt dei comandi con il proxy di sviluppo simulando uno degli errori per una richiesta API OpenAI, come definito nel file di configurazione.

Esempio di configurazione

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

Proprietà di configurazione

Proprietà Descrizione Predefinito
errorsFile Percorso del file che contiene risposte di errore. Nessun valore predefinito
rate Percentuale di richieste che non riescono con un errore casuale. Valore compreso tra 0 e 100. 50
retryAfterInSeconds Numero di secondi di attesa prima di ripetere la richiesta. Incluso nell'intestazione della risposta Retry-After per la limitazione dinamica. 5

Opzioni della riga di comando

Nome Descrizione Predefinito
-f, --failure-rate <failure rate> Percentuale di richieste che non riescono con un errore casuale. Valore compreso tra 0 e 100. 50

Osservazioni:

Valori per risposta Retry-After

Per impostazione predefinita, l'intestazione Retry-After usa il valore globale retryAfterInSeconds . È possibile eseguire l'override di questo valore in base alla risposta usando la @dynamic=N sintassi nel file delle risposte agli errori, dove N è il numero di secondi di attesa prima di riprovare.

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

In questo esempio l'intestazione Retry-After usa secondi 17 per questa risposta, indipendentemente dall'impostazione globale retryAfterInSeconds . Il valore aumenta in ogni richiesta limitata successiva, come con il token normale @dynamic .

Passo successivo