栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Python中添加会话属性以实现Alexa技能

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Python中添加会话属性以实现Alexa技能

sessionAttributes
在我看来,用Python添加最简单的方法似乎是使用字典。例如,如果要在会话属性中存储某些插槽以备将来使用:

session['attributes']['slotKey'] = intent['slots']['slotKey']['value']

接下来,您可以将其传递给构建响应方法:

buildResponse(session['attributes'], buildSpeechletResponse(title, output, reprompt, should_end_session))

在这种情况下的实现:

def buildSpeechletResponse(title, output, reprompt_text, should_end_session):return {    'outputSpeech': {        'type': 'PlainText',        'text': output    },    'card': {        'type': 'Simple',        'title': "SessionSpeechlet - " + title,        'content': "SessionSpeechlet - " + output    },    'reprompt': {        'outputSpeech': { 'type': 'PlainText', 'text': reprompt_text        }    },    'shouldEndSession': should_end_session    }def buildResponse(session_attributes, speechlet_response):    return {        'version': '1.0',        'sessionAttributes': session_attributes,        'response': speechlet_response    }

这将以推荐的方式在Lambda响应JSON中创建sessionAttributes。

如果不存在,仅添加一个新的sessionAttribute也不会覆盖最后一个。它将仅创建一个新的键值对。

请注意,这在服务模拟器中可能会很好地工作,但是在实际的Amazon
Echo上进行测试时可能会返回键属性错误。根据这篇文章,

在Service Simulator上,会话以Session:{…属性:{},…}开头。在Echo上启动会话时,Session根本没有属性键。

解决此问题的方法是,每当创建新会话时,都在lambda处理程序中手动创建它:

 if event['session']['new']:    event['session']['attributes'] = {}    onSessionStarted( {'requestId': event['request']['requestId'] }, event['session'])if event['request']['type'] == 'IntentRequest':    return onIntent(event['request'], event['session'])


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/662620.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号