- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 QnAMaker 中使用后续提示,但对“后续提示”创建对话框中标记为“显示文本”的字段的用途感到困惑。 https://learn.microsoft.com/en-us/azure/cognitive-services/qnamaker/how-to/multiturn-conversation将此字段描述为“要在后续提示中显示的自定义文本。”。对我来说,这表明它只是后续提示的标签,通常呈现为按钮。因此,我假设该文本除了作为标签外没有其他用途,并且该按钮将直接链接到所选的问题/答案对。然而,从 QnAMaker 知识库的实验来看,“显示文本”似乎实际上已传递给 QnAMaker 服务,并且该文本用于搜索答案。这意味着必须选择“显示文本”值,以便标记按钮和成功找到后续答案。
这意味着我不能使用简短的后续提示,例如“我该如何付款?”或“我如何加入它?”其中主要的 Q/A 对与各种服务之一相关,因为这些字符串不会可靠地返回预期的答案。相反,提示必须是更详细的“我如何为服务 A 付费”和“我如何加入服务 A”。
我的理解正确吗?我认为文档根本没有说明这一点......
最佳答案
多轮 QnA Maker 对话仍处于预览阶段,目前没有可帮助您构建知道如何与后续提示 API 交互的机器人的 SDK。您最终处于控制之中,因此您可以让您的机器人随心所欲地处理显示文本。所有“显示文本”都是您插入到知识库答案中的值,以便在调用 generateAnswer
后它与答案一起返回。
让您的显示文本与您链接到的问题的文本相匹配会非常有帮助,因为这样提示的显示文本就可以用于访问正确的后续 QnA 对,只要包含上下文在 API 调用中。这就是 this sample 中发生的事情.听起来您想在提示的显示文本不与后续问题的文本匹配的情况下让它工作。这可能会变得棘手,但您可以做一些事情。
请记住,在进行后续提示时,您指定的不仅仅是显示文本。您还链接到特定的 QnA 对。这允许 API 将该 QnA ID 与显示文本一起返回给您。您没有提到您的机器人针对哪个 channel ,但是如果您使用的 channel 支持 postBack
或 messageBack
操作,那么您可以将 QnA ID 传递给您的机器人无形地然后你的机器人可以使用它来访问答案。如果你走这条路,你甚至不需要担心对话框或状态。您还没有提到您使用什么语言编写机器人,但这里有一个如何在 Node.js 中实现的示例:
async testQnAMaker(turnContext) {
var qna = new QnAMaker({
knowledgeBaseId: '<GUID>',
endpointKey: '<GUID>',
host: 'https://<APPNAME>.azurewebsites.net/qnamaker'
});
var value = turnContext.activity.value;
var qnaId = value && value.qnaId;
// qnaId will be undefined if value is empty
var results = await qna.getAnswers(turnContext, { qnaId });
var firstResult = results[0];
if (firstResult) {
var answer = firstResult.answer;
var resultContext = firstResult.context;
var prompts = resultContext && resultContext.prompts;
if (prompts && prompts.length) {
var card = CardFactory.heroCard(
answer,
[],
prompts.map(prompt => ({
type: 'messageBack',
title: prompt.displayText,
displayText: prompt.displayText,
text: prompt.displayText,
value: { qnaId: prompt.qnaId }
}))
);
answer = MessageFactory.attachment(card);
}
await turnContext.sendActivity(answer);
} else {
await turnContext.sendActivity("I can't answer that");
}
}
请注意,这确实有一些限制。因为它通过从事件的值属性中检索 QnA ID 来工作,所以如果用户手动键入按钮的文本而不是单击按钮,它可能无法找到正确的 QnA 对。
如果您想让显示文本独立工作而不依赖于 QnA ID,您可以保存自己的映射,以便您的机器人知道在每个上下文中哪些显示文本值对应于每个 QnA ID。但是,您也可以考虑只添加显示文本作为 QnA 对中问题的替代措辞。因此,“我如何为服务 A 付款”和“我如何为服务 B 付款”都可以将“我如何为它付款”作为问题的一种形式。因为您现在在多个 QnA 对中有重复的措辞,所以您需要在调用 generateAnswer
时传递上下文,这样才能正常工作。
参见 this answer有关多轮对话的更多信息。
关于microsoft-cognitive - 显示 QnAMaker 后续提示的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58203069/
如何在QnAmaker无任何响应时更改默认答案显示提示对话框。 例如: 用户1:你好 机器人:你好!! User1:你卖车吗? 机器人:找不到合适的匹配项! 机器人应该提出可用服务列表,而不是找不到合
我已经在带有 Qnamaker 的 Azure Webapp 机器人中选择了 Nodejs,并在在线代码编辑器本身中修改了默认无答案,但它仍然没有反射(reflect)在聊天中。即使我尝试更改应用程序
我有一个 pdf 或 docx 文档(仅接受多圈格式),其中包含许多子标题,可转换为后续提示。这一切正常!但我想为我的所有提示启用仅上下文,因为答案与上下文无关。 我可以在我的文件中注明吗?手动检查按
我们正在使用 QnAMaker 服务创建一个机器人,并想知道是否可以将该服务部署为我们自己的 Azure 订阅中的认知服务。目前,我们没有看到在自定义 Azure 订阅中部署它的选项,并且 QnA M
我有一些属于多个类别的问题数据。 因此,我想为下面的一个元数据标记分配多个值。 我该怎么做? 最佳答案 我认为您提到的元数据结构如下: 您可以为其添加元数据标签以使其正确链接。 引用:https://
我已开始使用 QnA Maker,并希望能够在日志中查看问题的所有答案以及随请求发送的分数阈值 。目前,我只能通过此 Kusto 查询看到问题的一个答案。 requests | where url e
我在想机器人有一些通用的问题,比如你好吗?可能我有大约 10 个答案,我希望问答制作者随机选择而不是每次都相同的答案。 或者还有像给我讲故事这样的问题 最佳答案 some generic questi
我正在生成一个大型 PDF,其中包含多轮问题。 我是通过浏览器执行此操作的,更新需要相当长的时间,最后它说它仍在后台运行。 为了检查它何时完成,我进行了 api 调用以获取操作的详细信息。最终这会返回
我正在探索 Microsoft 服务。 路易斯引起了我的注意。将其添加到 QNAmaker 机器人会有好处吗? 机器人基本上会尽可能准确地回答问题,没有别的,只是来自知识库的纯粹答案。 我还需要添加
我正在探索 Microsoft 服务。 路易斯引起了我的注意。将其添加到 QNAmaker 机器人会有好处吗? 机器人基本上会尽可能准确地回答问题,没有别的,只是来自知识库的纯粹答案。 我还需要添加
使用 Bot Framework SDK v-3,我能够根据关键字作为建议的操作/卡片获得匹配问题列表,如下所示 - Suggested actions cards in QnAMaker Dialo
我正在尝试在 QnAMaker 中使用后续提示,但对“后续提示”创建对话框中标记为“显示文本”的字段的用途感到困惑。 https://learn.microsoft.com/en-us/azure/c
针对查询 QnAMaker 实例的 Azure Web App Bot 服务执行的问题(西类牙语)的回答与直接针对该实例的特定 QnAMaker 服务执行的查询存在差异。 对于这个特定案例,我在机器人
目前,我正在开发一个聊天机器人项目,该项目基于以 PDF 形式上传到 QnAMaker 服务的知识库进行回答。不过,我了解到 Azure 使用深度学习功能从通过搜索认知服务排名的长答案段落中提取简短答
对于我当前的项目,我尝试使用仅上下文的后续提示。 我现在的问题是,后续提示中的一些问题是相同的。 在 qna ui 中,上下文的分离工作正常,但是当用户回答我在应用程序中实现的聊天中的问题时,qna
QnA 创客机器人易于实现并提供巨大值(value)。在某些情况下,我需要向 QnaMaker 机器人添加对话框。我正在努力寻找最好的方法来做到这一点。我尝试的示例均以非 QnAmaker 主对话框开
我正在尝试将 QnAmaker 知识库与 Azure 机器人服务集成。 我无法在 QnAMaker 门户上找到知识库 ID。 如何在QnAPortal中找到kbid? 最佳答案 知识库 ID 可以位于
因此,我尝试为 Microsoft Bot Framework 创建一个新的 QnA,但由于某种原因,我能够创建知识库,但它始终是空的。 这是 postman 的结果 然后我等待一段时间,让所有过程完
我使用了新推出的机器人框架虚拟助手模板并进行了部署,工作正常,但它确实为 Azure 搜索服务提供了我的场景所需的标准层。 由于无法选择升级 azure 搜索服务的定价层 - 我必须删除现有的搜索服务
是否可以在 QnAmaker 中设置触发器,以便在添加新问题后,一定数量的人会通过电子邮件收到通知? 为了提供背景信息,我们的网站上有一个聊天机器人,访问者可以在其中提问,我们还会记录每个问题,如果访
我是一名优秀的程序员,十分优秀!