Compartir a través de


Simulación de errores de las API de OpenAI

Al usar las API de OpenAI en la aplicación, debes probar cómo controla la aplicación los errores de API. El proxy de desarrollo permite simular errores en cualquier API de OpenAI mediante GenericRandomErrorPlugin.

Sugerencia

Descargue este valor preestablecido mediante la ejecución en el símbolo del sistema devproxy preset get openai-throttling.

En la carpeta de instalación del proxy de desarrollo, busque la presets carpeta . En la presets carpeta , cree un nuevo archivo denominado openai-errors.json. Abra el archivo en un editor de código.

Cree un nuevo objeto en la plugins matriz que haga referencia a GenericRandomErrorPlugin. Defina la dirección URL de la API de OpenAI para que el complemento watch y agregue una referencia a la configuración del complemento.

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/rc.schema.json",
  "plugins": [    
    {
      "name": "GenericRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "openAIAPI",
      "urlsToWatch": [
        "https://api.openai.com/*"
      ]
    }
  ]
}

Cree el objeto de configuración del complemento para proporcionar al complemento la ubicación de las respuestas de error.

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/rc.schema.json",
  "plugins": [    
    {
      "name": "GenericRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "openAIAPI",
      "urlsToWatch": [
        "https://api.openai.com/*"
      ]
    }
  ],
  "openAIAPI": {
    "errorsFile": "errors-openai.json"
  }
}

En la misma carpeta, cree el errors-openai.json archivo. Este archivo contiene las posibles respuestas de error que se pueden devolver cuando el complemento envía una respuesta de error.

{
  "responses": [
    {
      "statusCode": 429,
      "headers": [
        {
          "name": "content-type",
          "value": "application/json; charset=utf-8"
        }
      ],
      "body": {
        "error": {
          "message": "Rate limit reached for default-text-davinci-003 in organization org-K7hT684bLccDbBRnySOoK9f2 on tokens per min. Limit: 150000.000000 / min. Current: 160000.000000 / min. Contact support@openai.com if you continue to have issues. Please add a payment method to your account to increase your rate limit. Visit https://beta.openai.com/account/billing to add a payment method.",
          "type": "tokens",
          "param": null,
          "code": null
        }
      }
    },
    {
      "statusCode": 429,
      "headers": [
        {
          "name": "content-type",
          "value": "application/json; charset=utf-8"
        }
      ],
      "body": {
        "error": {
          "message": "Rate limit reached for default-text-davinci-003 in organization org-K7hT684bLccDbBRnySOoK9f2 on requests per min. Limit: 60.000000 / min. Current: 70.000000 / min. Contact support@openai.com if you continue to have issues. Please add a payment method to your account to increase your rate limit. Visit https://beta.openai.com/account/billing to add a payment method.",
          "type": "requests",
          "param": null,
          "code": null
        }
      }
    },
    {
      "statusCode": 429,
      "addDynamicRetryAfter": true,
      "headers": [
        {
          "name": "content-type",
          "value": "application/json; charset=utf-8"
        }
      ],
      "body": {
        "error": {
          "message": "The engine is currently overloaded, please try again later.",
          "type": "requests",
          "param": null,
          "code": null
        }
      }
    }
  ]
}

Inicie el proxy de desarrollo con el archivo de configuración:

devproxy --config-file "~appFolder/presets/openai-errors.json"

Al usar la aplicación que llama a las API de OpenAI, el proxy de desarrollo devuelve aleatoriamente una de las respuestas de error que definió en el errors-openai.json archivo.

Obtenga más información sobre GenericRandomErrorPlugin.