Aracılığıyla paylaş


GenericRandomErrorPlugin

Sahte hatalar içeren dosyadan rastgele seçilen bir hatayla istekleri başarısız olur.

Yapılandırma dosyasında tanımlandığı gibi OpenAI API isteği hatalarından birinin benzetimini yaparak Dev Proxy ile komut isteminin ekran görüntüsü.

Yapılandırma örneği

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

Yapılandırma özellikleri

Mülk Açıklama Temerrüt
errorsFile Hata yanıtları içeren dosyanın yolu. Varsayılan yok
rate Rastgele bir hatayla başarısız olan isteklerin yüzdesi. 0 ile 100 arasındaki değer. 50
retryAfterInSeconds İsteği yeniden denemeden önce beklenmesi gereken saniye sayısı. Dinamik azaltma için Retry-After yanıt üst bilgisine eklenir. 5

Komut satırı seçenekleri

İsim Açıklama Temerrüt
-f, --failure-rate <failure rate> Rastgele bir hatayla başarısız olan isteklerin yüzdesi. 0 ile 100 arasındaki değer. 50

Açıklamalar

Yanıt Retry-After başına değerler

Üst bilgi varsayılan olarak Retry-After genel retryAfterInSeconds değeri kullanır. Bu değeri, yeniden denemeden önce beklenmesi gereken saniye sayısı olan N hata yanıtları dosyasındaki söz dizimini kullanarak @dynamic=N yanıt başına temelinde geçersiz kılabilirsiniz.

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

Bu örnekte üst bilgi, Retry-After genel retryAfterInSeconds ayardan bağımsız olarak bu yanıt için saniyeleri kullanır17. Değer, düz @dynamic belirteçte olduğu gibi sonraki her kısıtlanmış istekte de artar.

Sonraki adım