天猫精灵AI语音技能云开发

简介: 清单中物品的价格查询

https://aligenie.com/
登录,进入控制台,创建新技能。
1.png

点击后端服务,点击创建应用,关联阿里云账户,开通相关资源,创建技能应用;
语言选择python,模板选择地理小百科,点击创建,保存。
2.png
3.png

然后选择语言互交模型,点击左侧的实体,创建一个自定义实体
4.png

点击实体列表的编辑,添加实体值。
5.png

返回意图,点击图中的编辑,添加对话和参数。
6.png
7.png

前往后端服务,如图进入部署。
8.png

点击右下角的终端,输入pip install requests 安装模块

代码如下
import logging
import json
import base64
import random
import collections
import requests

USER_MAP = {}
KNOWLEDGE = [

"大米",
"餐巾纸",
"卫生纸",
"酱油"    

]
KNOWLEDGEJJDid = [

"4592915",
"100015114144",
"1082266",
"100006624003"    

]
def jdprice(l_index):
#京东

URL ='https://p.3.cn/prices/mgets?skuIds='+KNOWLEDGEJJDid[l_index]
headers = {
    'User-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36',
    'Cookie': '',
    'Connection': 'keep-alive',
    'Accept': '*/*',
    'Accept-Encoding': 'gzip, deflate, sdch',
    'Accept-Language': 'zh-CN,zh;q=0.8',
    'Host': 'p.3.cn',
    'Referer': 'https://book.jd.com/booktop/0-0-0.html?category=1713-0-0-0-10001-1'
}   
res = requests.get(URL,headers=headers)
jdp=json.loads(res.text)

return jdp[0]['p']

KNOWLEDGEJTB = [

"55.3",
"60",
"56.9",
"100006624003"    

]
def tbprice(l_index):

return KNOWLEDGEJTB[l_index]

KNOWLEDGEJPDD = [

"4592915",
"100015114144",
"1082266",
"100006624003"    

]
def pddprice(l_index):

return KNOWLEDGEJPDD[l_index]

def pricecx(l_index,maket):

if maket=='京东':
    return jdprice(l_index)
if maket=='淘宝':
    return tbprice(l_index)
if maket=='拼多多':
    return pddprice(l_index) 

print(pricecx(0,'淘宝'))

def common_reply(reply, result_type):

response = {
    "isBase64Encoded": "false",
    "statusCode": "200",
    "headers": {"content-type": "application/json"},
    "body": {
        "returnCode": "0",
        "returnErrorSolution": "",
        "returnMessage": "",
        "returnValue": {
            "reply": reply,
            "resultType": result_type,
            "executeCode": "SUCCESS",
            "msgInfo": "",
        }
    }
}
return response

未指定追问参数,音箱自动开麦,用户的回答可跳转到其它意图

def ask_reply(reply):

return common_reply(reply, 'ASK_INF')

结束对话的回复,回复后音箱闭麦

def result_reply(reply):

return common_reply(reply, 'RESULT')

def handler(event, context):

request = json.loads(event)
logger = logging.getLogger()
body = base64.b64decode(request['body']).decode()
data = json.loads(body)
maket=data['slotEntities'][0]['originalValue']

logger.info('request body:' + body)

# 从请求中获取意图参数以及参数值
intent_name = data['intentName']
user_id = getattr(data['requestData'], 'userOpenId', 'testUser')
global USER_MAP
linked_list = USER_MAP.get(user_id)

# 欢迎意图 或 用户缓存数据为空
if intent_name == "welcome" or linked_list is None:
    linked_list = collections.deque()
    random_index = random.randint(0, len(KNOWLEDGE) - 1)
    linked_list.append(random_index)
    USER_MAP[user_id] = linked_list
    
    
    return ask_reply(KNOWLEDGE[random_index]+'在'+maket+'平台的价格是'+pricecx(random_index,maket))
# 下一个意图,随机选择一个内容回复,并将index追加到用户数据的List集合最后
elif intent_name == "next":
    random_index = random.randint(0, len(KNOWLEDGE) - 1)
    linked_list.append(random_index)
    USER_MAP[user_id] = linked_list
    return ask_reply(KNOWLEDGE[random_index]+'在'+maket+'平台的价格是'+pricecx(random_index,maket))

# 上一个意图,将用户数据的List集合中最后一个index移除,并返回该index的内容。首先要判断集合内是否有元素,没有则不需要移除
elif intent_name == "prev":
    if len(linked_list) > 0:
        linked_list.pop()
    if len(linked_list) == 0:
        return ask_reply("这已经是第一个了。")
    return ask_reply(KNOWLEDGE[linked_list[len(linked_list) - 1]] +'在'+maket+'平台的价格是'+pricecx(linked_list[len(linked_list) - 1],maket))

# 退出意图,清除用户缓存
elif intent_name == "exit":
    USER_MAP.pop(user_id)
    return result_reply("已为您退出,再见。")



return result_reply("请检查意图名称是否正确,或者新增的意图没有在代码里添加对应的处理分支。")



相关文章
|
27天前
|
人工智能 小程序
一步步开发AI运动小程序】二、引入插件
随着人工智能技术的发展,阿里体育等公司推出的“乐动力”、“天天跳绳”等AI运动APP广受欢迎。本文将引导您从零开始开发一个AI运动小程序,使用“云智AI运动识别小程序插件”。内容包括新建uni-app项目、配置插件、部署模型、安装依赖包、全局初始化和调用插件对象。
|
8天前
|
人工智能 安全 测试技术
探索AI在软件开发中的应用:提升开发效率与质量
【10月更文挑战第31天】在快速发展的科技时代,人工智能(AI)已成为软件开发领域的重要组成部分。本文探讨了AI在代码生成、缺陷预测、自动化测试、性能优化和CI/CD中的应用,以及这些应用如何提升开发效率和产品质量。同时,文章也讨论了数据隐私、模型可解释性和技术更新等挑战。
|
8天前
|
人工智能 算法 程序员
程序员如何借势AI提高自己:从高效工作到技能升级的全面指南
【11月更文挑战第4天】程序员可以通过以下几个方面借势 AI 提升自己:1. 日常工作效率提升,包括智能代码编写与补全、自动化测试与调试、项目管理与协作;2. 技能学习与升级,涵盖基础知识学习和深入技术研究;3. 思维拓展与创新能力培养,激发创意灵感和培养批判性思维。
|
1月前
|
人工智能
三文带你轻松上手鸿蒙的AI语音03-文本合成声音
三文带你轻松上手鸿蒙的AI语音03-文本合成声音
39 1
三文带你轻松上手鸿蒙的AI语音03-文本合成声音
|
13天前
|
人工智能 小程序
【一步步开发AI运动小程序】五、帧图像人体识别
随着AI技术的发展,阿里体育等公司推出的AI运动APP,如“乐动力”和“天天跳绳”,使云上运动会、线上健身等概念广受欢迎。本文将引导您从零开始开发一个AI运动小程序,使用“云智AI运动识别小程序插件”。文章分为四部分:初始化人体识别功能、调用人体识别功能、人体识别结果处理以及识别结果旋转矫正。下篇将继续介绍人体骨骼图绘制。
|
14天前
|
人工智能 小程序 vr&ar
AI运动小程序开发常见问题集锦二
截至当前,我们的AI运动识别小程序插件已迭代至第23个版本,广泛应用于健身、体育、体测、AR互动等场景。本文针对近期用户咨询,汇总了常见问题,帮助用户减少开发成本,提高效率。主要涵盖计时与计数模式的区别、综合排行榜生成方法、全屏模式适配及无开发能力用户的解决方案。
|
24天前
|
人工智能 编解码 小程序
【一步步开发AI运动小程序】四、小程序如何抽帧
随着AI技术的发展,阿里体育等公司推出的“乐动力”、“天天跳绳”等APP使云上运动会、线上健身等概念备受关注。本文将引导您从零开始开发一个AI运动小程序,利用“云智AI运动识别小程序插件”。文中详细介绍了微信小程序抽帧的相关API、设置及注意事项,帮助开发者更好地实现AI运动功能。下篇将介绍人体识别技术,敬请期待。
|
27天前
|
机器学习/深度学习 人工智能 监控
利用AI进行代码审查:提升代码质量和开发效率
【10月更文挑战第12天】本文探讨了AI在代码审查中的应用及其优势,介绍了AI辅助代码审查工具如何通过自动化和持续学习提升代码质量和开发效率。文章还提供了实施AI辅助代码审查的具体步骤和实战技巧,帮助团队更好地利用这些工具。
|
27天前
|
人工智能
添加一个Stable Difussion图像生成应用,通过向AI助手简单的提问,即可快速搭建Stable Diffusion应用至自己的网站中,大幅提升开发效率。
添加一个Stable Difussion图像生成应用,通过向AI助手简单的提问,即可快速搭建Stable Diffusion应用至自己的网站中,大幅提升开发效率。
|
27天前
|
存储 人工智能 NoSQL
使用 MongoDB 构建 AI:Gradient Accelerator Block 如何在几秒钟内让您从零开发 AI
借助 MongoDB,开发者可以存储任何结构的数据,然后使用单一查询 API 和驱动程序将这些数据用于 OLTP、文本搜索和向量搜索处理。