首页 > 解决方案 > QnA Maker API - 更新后锁定

问题描述

我正在通过 Invoke-RestMethod PowerShell 命令从我的 QnA Maker KB 中删除各种记录,然后使用相同的命令添加一些新的 QnA。

我发现有时它可以工作,有时我会收到 400 Bad Request 响应,其中包含详细信息:

 Invoke-RestMethod : {
  "error": {
    "code": "BadArgument",
    "message": "Invalid input. See details.",
    "details": [
      {
        "code": "ValidationFailure",
        "message": "Kb: <KB Number> is already being updated by Operation: 9766ff66-f950-41ed-b0de-b77d8bc78c23. Please wait for it to complete.",
        "target": "ConcurrentUpdates"
      }
    ]
  }
}

我认为这与我发送的 JSON 无关,因为它不会失败或始终如一地工作。当我收到此响应时,我的 QnA Maker 将被锁定约 1 小时,无法进行任何更改。如果单击 QnA Maker 门户中的保存并训练,我也会收到相同的错误。

任何想法发生了什么或我如何调试它?

标签: qnamaker

解决方案


谢谢史蒂文为我指明了正确的方向。

我测试了复制和粘贴我的请求的 JSON 正文并通过 Postman 发送,它运行良好。之后,我使用 Invoke-RestMethod 和 HTTPBin 进行了大量测试,发现我尝试添加的一个 QnA 具有带重音符号的字符。Invoke-RestMethod 在这种情况下出于某种原因将整个 JSON 正文转换为 Base64。在内容类型上包含“charset=utf-8”已修复它。

我认为锁定一个小时只是我向 QnA Maker api 发送多个错误请求的症状......


推荐阅读