gpt4 book ai didi

azure - 如何在具有后续提示的 QnA 问题中实现卡片并在卡片中使用它们

转载 作者:行者123 更新时间:2023-12-02 06:43:58 27 4
gpt4 key购买 nike

我已经设置了一个链接到 QnA 服务的简单 QnA 机器人。在 QnA 服务中,我设置了一些带有后续提示的问题(家属),例如我如何通过公共(public)汽车、火车等到达校园。see image in link,在 Qna 制造商测试功能中,您只需单击一个名为“启用多轮”的按钮,该按钮提供功能按钮,通知您接下来可以/应该通过答案 See image in link 的家属。

但是,当在 channel /模拟器中使用时,不会出现任何类似的内容 see image ,这有点奇怪。显然,我想在机器人中实现此类功能,因为它使用户的生活变得更加轻松。

我对整个机器人的事情很陌生(我上个月开始),所以我浏览了互联网,看看我能找到什么,但除了在机器人内部写问题之外,我看不到任何东西,see Microsofts documentation ,这使得使用 QnA 生成器几乎毫无意义。

我认为我需要做的是在 QnA 制造商回复用户时拦截来自 QnA 制造商的消息,查看收到的 Json 以查找是否有任何依赖项,然后运行一个不同的对话框,该对话框获取上下文依赖项名称并运行简单的 for 循环为每个受抚养人生成卡片,然后使用生成的卡片将消息发送给用户,但是我不确定如何拦截 Json 并查找任何受抚养人,或者有一个按钮需要在 azure 中单击这就是它的作用。

最佳答案

this Bot Framework 团队发布的实验示例,演示了如何处理后续提示。

您可以下载它(您必须下载整个存储库),然后将您的详细信息插入到 appsettings.json 文件中,您应该能够使用 Bot Framework Emulator 对其进行测试 - 这些这是我必须执行的唯一步骤。

关键部分是this method它检查结果是否包含任何提示并相应地返回响应 - 它在 FuctionDialog 内调用.

如果您只打算实现单级提示,即您有一个显示提示的问题,并且当您单击其中一个提示时,它将显示答案而不是带您进入另一个提示,那么它可以从 ProcessAsync 方法(检查提示)中获取逻辑的核心,以及从 Models 文件夹和 CardHelper 中获取所需的类> 类并让它在您现有的应用程序中工作 - 您不必担心 QnABotState 因为您只会深入一个级别,因此您不需要跟踪您的位置在一系列提示中。例如

var query = inputActivity.Text;           
var qnaResult = await _qnaService.QueryQnAServiceAsync(query, new QnABotState());
var qnaAnswer = qnaResult[0].Answer;
var prompts = qnaResult[0].Context?.Prompts;

if (prompts == null || prompts.Length < 1)
{
outputActivity = MessageFactory.Text(qnaAnswer);
}
else
{
outputActivity = CardHelper.GetHeroCard(qnaAnswer, prompts);
}

await turnContext.SendActivityAsync(outputActivity);

关于azure - 如何在具有后续提示的 QnA 问题中实现卡片并在卡片中使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56185169/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com