根据此问题,可以检查lexEvent的requestAttributes属性以确定传入请求是否支持语音。
但是,在我的C# Lambda中,该属性为null:
public LexResponse FunctionHandler(LexEvent lexEvent, ILambdaContext context)
{
LambdaLogger.Log($"Request Populated: {lexEvent.RequestAttributes != null}");记录:
2020-08-20 18:03:04: START RequestId: f363e694-77e4-40fe-b607-ddaf51b6852f Version: $LATEST
2020-08-20 18:03:04: Request Populated: False在C#开发人员工具包的上下文中,如何确定我的lambda处理的请求是语音请求还是文本请求?
发布于 2020-08-23 09:18:40
Lambda输入事件包括outputDialogMode
"outputDialogMode": "Text or Voice, based on ContentType request header in runtime API request",AWS文件进一步解释:
outputDialogMode -对于每个用户输入,客户端使用运行时API操作之一PostContent或PostText向Amazon发送请求。Amazon使用请求参数来确定对客户端的响应是文本还是声音,并相应地设置此字段。 Lambda函数可以使用这些信息生成适当的消息。例如,如果客户端需要语音响应,那么Lambda函数可以返回语音合成标记语言(SSML),而不是文本。
因此,您的Lambda函数应该能够将lexEvent.outputDialogMode检查为“语音”或“文本”,然后您可以在此基础上做出适当的响应。
https://stackoverflow.com/questions/63515156
复制相似问题