GenerikRandomErrorPlugin

Gagal permintaan dengan kesalahan acak yang dipilih dari file yang berisi kesalahan yang ditidakan.

Cuplikan layar prompt perintah dengan Proksi Dev yang mensimulasikan salah satu kesalahan untuk permintaan API OpenAI seperti yang didefinisikan dalam file konfigurasi.

Contoh konfigurasi

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

Properti konfigurasi

Harta benda Deskripsi Bawaan
errorsFile Jalur ke file yang berisi respons kesalahan. Tidak ada default
rate Persentase permintaan gagal dengan kesalahan acak. Nilai antara 0 dan 100. 50
retryAfterInSeconds Jumlah detik untuk menunggu sebelum mencoba kembali permintaan. Disertakan pada header respons Retry-After untuk pembatasan dinamis. 5

Opsi baris perintah

Nama Deskripsi Bawaan
-f, --failure-rate <failure rate> Persentase permintaan gagal dengan kesalahan acak. Nilai antara 0 dan 100. 50

Komentar

Nilai per respons Retry-After

Secara default, Retry-After header menggunakan nilai global retryAfterInSeconds . Anda dapat mengambil alih nilai ini berdasarkan per respons menggunakan @dynamic=N sintaks dalam file respons kesalahan, di mana N adalah jumlah detik untuk menunggu sebelum mencoba kembali.

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

Dalam contoh ini, Retry-After header menggunakan 17 detik untuk respons ini, terlepas dari pengaturan global retryAfterInSeconds . Kenaikan nilai pada setiap permintaan yang dibatasi berikutnya, seperti halnya token biasa @dynamic .

Langkah selanjutnya