我正在使用C#/ Lambda / Alexa.NET
编写Alexa技能我有一个用户可以响应的系统的自定义插槽列表。有3个有效的插槽值。 Lambda代码目前使用委托指令将对话的控制权传递给Alexa以处理获取系统插槽以及其他几个插槽。目前正在为此提供服务:
// check the name to determine what you should do
if (intentRequest.Intent.Name.Equals("problemIntent"))
{
context.Logger.LogLine($"The specific intent I have created has been received");
}
context.Logger.LogLine($"Dialog state = {intentRequest.DialogState}");
if (intentRequest.DialogState != "COMPLETED")
{
response = ResponseBuilder.DialogDelegate(input.Session);
}
但是,用户可以使用不是列表有效部分的系统进行响应,Alexa将接受此信息,确认并继续。
如何验证传入的插槽值以确定它是否正确(不是有效的插槽值)并提示用户输入正确的值?我在Lambda函数中有一个字符串列表要进行验证,但是如何获取代码中提供的插槽的值?例如。伪代码将是:
如果对话状态未完成 检查列表提供的槽值。 如果有效,请委托给ALexa继续。 如果无效,请快速回复说“我不知道是什么。你能尝试其他价值吗?例如x,yz'