如何解决检测机器人是否正在使用语音:RequestAttribute为null
根据此question,可以检查requestAttributes
的{{1}}属性,以确定传入请求是否支持语音。
但是,在我的C#Lambda中,该属性为null:
lexEvent
已记录:
public LexResponse FunctionHandler(LexEvent lexEvent,ILambdaContext context)
{
LambdaLogger.Log($"Request Populated: {lexEvent.RequestAttributes != null}");
如何在C#开发人员工具包的上下文中确定我的lambda正在处理的请求是语音还是文本?
解决方法
Lambda Input Event包括outputDialogMode
:
"outputDialogMode": "Text or Voice,based on ContentType request header in runtime API request",
AWS文档进一步说明:
outputDialogMode –对于每个用户输入,客户端使用运行时API操作之一PostContent或PostText将请求发送到Amazon Lex。 Amazon Lex使用请求参数来确定对客户端的响应是文本还是语音,并相应地设置此字段。
Lambda函数可以使用此信息来生成适当的消息。例如,如果客户期望语音响应,则您的Lambda函数可以返回语音合成标记语言(SSML)而不是文本。
因此,您的Lambda函数应该能够将lexEvent.outputDialogMode
检查为“语音”还是“文本”,然后您就可以基于此做出适当的响应了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。