如何在 LUIS 机器人中获取之前的查询或用户输入
How do I get the previous query or user input in LUIS bot
有没有办法查明之前用户在 LUIS 中输入的内容?例如:
用户:给我我的航班信息
机器人:你的电子邮件地址是什么?
用户:为什么需要它?
在这种情况下,我需要它来访问用户的航班详细信息...所以我希望能够处理该问题并仍然返回到原始线程,例如检索航班详细信息。
机器人应用程序中的所有对话框都在一个堆栈中工作,因此如果您询问用户问题(例如电子邮件),您最终会进入同一个对话框。我假设您也在使用 BotFramework。如果您致电:
context.Call(new EmailDialog(), ResumeAfterEmail)
ResumeAfterEmail
方法将在EmailDialog
完成后立即调用,当前对话框的局部变量也将在那里,因此您可以继续任何操作,具有所有数据。
如果您想在多个对话框中保留数据,可以使用 UserData
或 ConversationData
,如下所示:
context.UserData.SetValue<some_type>(string key, some_type value)
并且:
context.UserData.GetValue<some_type>(string key)
这将持续一段时间,取决于您使用的 (...)Data
。
总而言之 - 保存对话数据不是 LUIS 的一部分,您必须在应用程序的逻辑中执行此操作。如果您想从 LUIS 中检索确切的查询或结果,只需将它们保存在局部变量或 context.(...)Data
.
中
有没有办法查明之前用户在 LUIS 中输入的内容?例如:
用户:给我我的航班信息 机器人:你的电子邮件地址是什么? 用户:为什么需要它?
在这种情况下,我需要它来访问用户的航班详细信息...所以我希望能够处理该问题并仍然返回到原始线程,例如检索航班详细信息。
机器人应用程序中的所有对话框都在一个堆栈中工作,因此如果您询问用户问题(例如电子邮件),您最终会进入同一个对话框。我假设您也在使用 BotFramework。如果您致电:
context.Call(new EmailDialog(), ResumeAfterEmail)
ResumeAfterEmail
方法将在EmailDialog
完成后立即调用,当前对话框的局部变量也将在那里,因此您可以继续任何操作,具有所有数据。
如果您想在多个对话框中保留数据,可以使用 UserData
或 ConversationData
,如下所示:
context.UserData.SetValue<some_type>(string key, some_type value)
并且:
context.UserData.GetValue<some_type>(string key)
这将持续一段时间,取决于您使用的 (...)Data
。
总而言之 - 保存对话数据不是 LUIS 的一部分,您必须在应用程序的逻辑中执行此操作。如果您想从 LUIS 中检索确切的查询或结果,只需将它们保存在局部变量或 context.(...)Data
.