gpt4 book ai didi

node.js - Microsoft Bot Framework - 在多个对话框中使用变量 (node.js)

转载 作者:太空宇宙 更新时间:2023-11-03 23:13:48 25 4
gpt4 key购买 nike

我使用 Microsoft Bot Framework(V.4 - node.js)已经有一段时间了,我开始掌握一些事情。但是,我目前正在尝试找出一种在多个对话框中使用变量的方法。在其中一个对话框中,我向 REST API 发出 JSON 请求以获取一些数据。我可以在对话框中的任何位置使用此数据,但我想在另一个对话框中使用此数据。有一个简单的方法可以做到这一点吗?

我也知道在结束对话框时可以发送数据,如下所示:

 return await step.endDialog(#YourDataHere);

但在启动新对话框时没有发现发送数据的选项。

我研究了这个例子:https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/05.multi-turn-prompt但这仅使用 1 个对话框。

我还研究了 V3 中给出的代码: https://learn.microsoft.com/en-us/azure/bot-service/nodejs/bot-builder-nodejs-dialog-manage-conversation-flow?view=azure-bot-service-3.0 This error message.点击此链接将显示一个空白页面,没有任何 V 4 的帮助文档。

关于如何制作以便我可以在所有对话框中使用我的数据有什么建议吗?

最佳答案

您可以使用第二个选项将数据传递到新对话框

await dc.beginDialog(DIALOG_NAME, your_data);

对我来说,我通常会在此槽中传递 LUIS recognizerResult,但在某些情况下,我不需要引用捕获的意图和实体,我会传递一个简单的变量。

然后您可以在对话框中将其作为上下文的一部分进行访问。我使用“step”作为上下文变量名称,因此您可以在 step._info.options 中找到该值(不确定是否需要下划线)。

如果您传递一个简单的值,则可以直接使用它(即 yourData = step._info.options)。如果它是 JSON 对象,您只需照常引用您要查找的值即可。例如,要获取实体,我使用 myEntity = step._info.options.entities.myEntityName[0]

请注意您的变量范围,以防您可能需要多次重复使用该值。最好将其保存在对话状态中,特别是如果您不立即从一个对话框进入下一个对话框。

关于node.js - Microsoft Bot Framework - 在多个对话框中使用变量 (node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58078672/

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