Compartir a través de


GenericRandomErrorPlugin

Se produce un error seleccionado aleatoriamente del archivo que contiene errores ficticios.

Captura de pantalla de un símbolo del sistema con el proxy de desarrollo simulando uno de los errores de una solicitud de API de OpenAI tal como se define en el archivo de configuración.

Ejemplo de configuración

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

Propiedades de configuración

Propiedad Descripción Predeterminado
errorsFile Ruta de acceso al archivo que contiene respuestas de error. Sin valor predeterminado
rate Porcentaje de solicitudes que se producirá un error aleatorio. Valor entre 0 y 100. 50
retryAfterInSeconds Número de segundos que se deben esperar antes de volver a intentar la solicitud. Incluido en el encabezado de respuesta Retry-After para la limitación dinámica. 5

Opciones de línea de comandos

Nombre Descripción Predeterminado
-f, --failure-rate <failure rate> Porcentaje de solicitudes que se producirá un error aleatorio. Valor entre 0 y 100. 50

Observaciones

Valores por respuesta Retry-After

De forma predeterminada, el Retry-After encabezado usa el valor global retryAfterInSeconds . Puede invalidar este valor por respuesta mediante la @dynamic=N sintaxis del archivo de respuestas de error, donde N es el número de segundos que se deben esperar antes de volver a intentarlo.

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

En este ejemplo, el Retry-After encabezado usa 17 segundos para esta respuesta, independientemente de la configuración global retryAfterInSeconds . El valor se incrementa en cada solicitud limitada posterior, como con el token sin @dynamic formato.

Paso siguiente