共用方式為


通用隨機錯誤插件 (GenericRandomErrorPlugin)

失敗要求,其中包含模擬錯誤的檔案中隨機選取的錯誤。

命令提示字元的螢幕快照,其中開發人員 Proxy 會模擬組態檔中所定義之 OpenAI API 要求的其中一個錯誤。

組態範例

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

組態屬性

財產 描述 違約
errorsFile 包含錯誤回應之檔案的路徑。 無預設值
rate 要求失敗的百分比,並出現隨機錯誤。 介於 0 和 100 之間的值。 50
retryAfterInSeconds 重試要求之前要等候的秒數。 包含在動態節流 Retry-After 回應標頭中。 5

命令行選項

名稱 描述 違約
-f, --failure-rate <failure rate> 要求失敗的百分比,並出現隨機錯誤。 介於 0 和 100 之間的值。 50

備註

每次回應 Retry-After

預設標 Retry-After 頭使用全域 retryAfterInSeconds 值。 你可以用 @dynamic=N 錯誤回應檔案中的語法,針對每個回應來覆寫這個值,其中 N 是等待後再嘗試的秒數。

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

在此範例中, Retry-After 標頭對此回應使用 17 秒數,無論全域 retryAfterInSeconds 設定為何。 每次後續限速請求的值都會增加,就像普通 @dynamic 標記一樣。

後續步驟