qnamaker - 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 门户中的保存并训练,我也会收到相同的错误。
任何想法发生了什么或我如何调试它?
解决方案
谢谢史蒂文为我指明了正确的方向。
我测试了复制和粘贴我的请求的 JSON 正文并通过 Postman 发送,它运行良好。之后,我使用 Invoke-RestMethod 和 HTTPBin 进行了大量测试,发现我尝试添加的一个 QnA 具有带重音符号的字符。Invoke-RestMethod 在这种情况下出于某种原因将整个 JSON 正文转换为 Base64。在内容类型上包含“charset=utf-8”已修复它。
我认为锁定一个小时只是我向 QnA Maker api 发送多个错误请求的症状......
推荐阅读
- python - 合并字符串检查器
- reactjs - 使用反应钩子操作数组
- c - 链接静态库与动态库的问题
- rust - 一揽子 impl、HRTB 和“impl”抽象返回类型:“预期绑定生命周期参数”
- android - 如何修复与十字路口地理编码反向地址相关的错误?
- javascript - 如何从当前 URL 获取路由名称
- excel - Excel - 找到包含 X 元素的最佳数量
- shell - 通过 CI 将本地无版本文件复制/提交到 SVN 版本文件
- php - 删除图像背景在 php imagick 中无法正常工作
- html - 从 Excel 公式进行 Google 搜索并将结果放入单元格中