botframework - 添加 QnA Maker 资源时,机器人问候停止工作
问题描述
使用 Microsoft 提供的出色资源。遵循https://docs.microsoft.com/en-us/composer/上的文档
- 在某处创建文件夹
- 在该文件夹中执行https://docs.microsoft.com/en-us/composer/setup-yarn
- 执行https://docs.microsoft.com/en-us/composer/tutorial/tutorial-create-bot
- 在模拟器中测试:按下重启对话 - 新用户 ID:工作正常,回复:嗨!我是一个友好的机器人,可以帮助天气。试着说天气或预报。
- 执行https://docs.microsoft.com/en-us/composer/tutorial/tutorial-add-dialog
- 在模拟器中进行测试:在用户输入“天气”时呈现“让我们检查天气”som 响应。工作正常。
- 然后使用 Dialog 事件和 Dialog 开始创建新触发器并继续:https://docs.microsoft.com/en-us/composer/how-to-add-qna-to-bot,在设置中输入以下内容
- 请注意,为了使用设置值,必须在 id 后面加上一个额外的“=”<br>,例如“=settings.qna.knowledgebaseid”。
也请不要为了在欧洲使用我们的
“,”而不是“。”来使这项工作在欧洲工作。作为十进制标记,阈值必须设置为“float('0.3')”才能被评估为浮点数。- 根据您的 QnA Base,确保设置准确无误。请注意,此时 LUIS 字段大部分为空,除了 https://docs.microsoft.com/en-us/composer/how-to-add-qna-to-bot中描述的预填充值
- 此时未添加任何 LUIS。
- 重启机器人
- 在模拟器中点击测试
- 按重新开始对话 - 新用户 ID
现在有三个问题:
A. 不再有任何问候语。
B. QnA 制造商的第一个响应导致“字典中不存在给定的键 'stepIndex'。”。然后在此之后 QnA 制造商部分工作,但问题 A 和 C 仍然存在。
C. 天气正则表达式仅在第一次输入时触发一次,然后在第二次尝试或输入其他内容后,它无法触发。
预期行为:
- 当按下重新启动对话 - 新用户 ID 时,机器人应该向用户致意。
- 当天气正则表达式是最好的选择时,它应该触发
- 不应将文本“字典中不存在给定键'stepIndex'”作为第一个响应呈现,而应根据所提供的意图呈现正确的回复。
解决方案
我对此游戏有点晚了,但我在作曲家遇到了完全相同的问题并发现了同样的问题。在 MS Docs 中使用未知意图的建议方法效果不佳。它实际上只是一个让您尽快启动和运行的教程,除此之外没有真正的想法 - 正如您所指出的,它很容易陷入内部循环,阻止其他意图触发。
假设您使用的是 Luis.ai,则应添加“已识别 QnA 意图”和“已识别重复意图”。这将确保实施自动交叉训练,以便 QNAmaker 了解 Luis Questions,反之亦然,他们不仅会理解自己的问题,而且知道在其他方法中排除问题。这将有助于更好的训练。但是,根据两者的相似程度,它们可能都会返回不同置信度的匹配 - 这就是“识别的重复意图”的用途。它在他们执行他们的意图之前捕获两者并实施对每个人的信心检查并重新引发获胜的事件。从而确保仅识别和执行两者中的一个。
推荐阅读
- xcode - 尝试满足 Xcode 10 的图标要求时出现问题
- spring - 创建 bean 以连接到 Couchbase 时出现抽象方法错误
- php - 如何检查是否已使用条带支付令牌
- node.js - 使用现有 API 创建自定义 API
- c - 为什么 for 循环实际上返回一个值作为返回指令?
- php - 在 PHP 7 中使用 PHP excel 库或 python excel 库?
- javascript - 使用 SVG.JS 重叠两个 SVG 元素 - 一个响应式,一个固定式
- bash - 嵌套 for 循环内的 Bash shell 文件大小比较
- mysql - mySql 错误符号的错误:它是 Tic、Comma 还是 Quotations?
- java - 来自字符串的 CreateFont()