以下是常用表达里提取槽位值的配置部分,这里要注意的是槽位标示这个数据,这个就是代码中用来取得数据的标识,如下图:本文地址:http://www.04007.cn/article/637.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/637.html,未经许可,不得转载.
以下是实现一个很简单的查询属相的小技能的python代码,功能代码都很简单,也是为了给公司同事演示一下百度AI小技能的开发使用,代码执行过程:使用self.get_slots(year)来取得数据后进行简单的基本判断,进行计算然后语音读出来属相是什么。具体的代码如下:本文地址:http://www.04007.cn/article/637.html,未经许可,不得转载.
#!/usr/bin/env python2 # -*- encoding=utf-8 -*- import sys from dueros.Bot import Bot from dueros.card.TextCard import TextCard reload(sys) sys.setdefaultencoding('utf8') class DuerOSBot(Bot): def launch_request(self): """ 打开技能 """ self.wait_answer() card = TextCard('欢迎使用查属相技能,您要查的是哪一年的属相?') return { 'card': card, 'outputSpeech': r'欢迎使用查属相技能,您要查的是哪一年的属相?' } def ended_request(self): """ 关闭技能 """ self.wait_answer() return { 'outputSpeech': r'感谢您使用查属相技能,再见' } def __init__(self, request_data): super(DuerOSBot, self).__init__(request_data) self.add_launch_handler(self.launch_request) self.add_session_ended_handler(self.ended_request) self.add_intent_handler('shuxiang', self.shuxiang_intent) def shuxiang_intent(self): year = int(self.get_slots('year')) if not year or year<1900 or year>2100: card = TextCard('您说出1900至2100间的年份.') return { 'card': card, 'outputSpeech': r'您说出1900至2100间的年份.' } shuxiangArr = ['鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗','猪'] sx = (year - 1900) % 12 card = TextCard('您查询的属相是:' + shuxiangArr[sx]) return { 'card': card, 'outputSpeech': r'您查询的属相是:' + shuxiangArr[sx] } def handler(event, context): bot = DuerOSBot(event) result = bot.run() return result代码编辑页面右边就可以进行测试,文字语音都行,也可以进入测试验证中的模拟测试和真机测试,在没有发布的情况下,要进行真机测试必须是开发账号和小度音箱/在家的登录账号是一样的才行,只需要在开放平台上打开技能调试模式并在语音交互中对设备说:开启技能调试模式即可使用真机测试。本文地址:http://www.04007.cn/article/637.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/637.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |