天猫精灵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("请检查意图名称是否正确,或者新增的意图没有在代码里添加对应的处理分支。")



相关文章
|
2月前
|
人工智能 安全 API
20 万奖金池就位!Higress AI 网关开发挑战赛参赛指南
本次赛事共设三大赛题方向,参赛者可以任选一个方向参赛。本文是对每个赛题方向的参赛指南。
327 23
|
2月前
|
人工智能
Claude code AI 技能神器:Anthropic Skills!
Anthropic推出Claude AI技能神器Skills,将复杂任务打包成即插即用的“外挂”,让AI秒懂流程,告别重复提示。支持团队共享,提升效率数倍,三步搞定专业报告,堪称AI办公革命!
786 4
|
2月前
|
人工智能 运维 安全
加速智能体开发:从 Serverless 运行时到 Serverless AI 运行时
在云计算与人工智能深度融合的背景下,Serverless 技术作为云原生架构的集大成者,正加速向 AI 原生架构演进。阿里云函数计算(FC)率先提出并实践“Serverless AI 运行时”概念,通过技术创新与生态联动,为智能体(Agent)开发提供高效、安全、低成本的基础设施支持。本文从技术演进路径、核心能力及未来展望三方面解析 Serverless AI 的突破性价值。
|
3月前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
本文介绍如何在Spring AI中自定义Advisor实现日志记录、结构化输出、对话记忆持久化及多模态开发,结合阿里云灵积模型Qwen-Plus,提升AI应用的可维护性与功能性。
769 125
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
|
2月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
3945 57
|
3月前
|
人工智能 Rust 并行计算
AI大模型开发语言排行
AI大模型开发涉及多种编程语言:Python为主流,用于算法研发;C++/CUDA优化性能;Go/Rust用于工程部署;Java适配企业系统;Julia等小众语言用于科研探索。
1312 127
|
人工智能 自然语言处理 前端开发
产品经理也能“开发”需求?淘宝信息流从需求到上线的AI端到端实践
淘宝推荐信息流业务,常年被“需求多、技术栈杂、协作慢”困扰,需求上线周期动辄一周。WaterFlow——一套 AI 驱动的端到端开发新实践,让部分需求两天内上线,甚至产品经理也能“自产自销”需求。短短数月,已落地 30+ 需求、自动生成 5.4 万行代码,大幅提升研发效率。接下来,我们将揭秘它是如何落地并改变协作模式的。
457 37
产品经理也能“开发”需求?淘宝信息流从需求到上线的AI端到端实践
|
2月前
|
人工智能 IDE 开发工具
从6人日到1人日:一次AI驱动的客户端需求开发实战
从6人日到1人日:一次AI驱动的客户端需求开发实战
从6人日到1人日:一次AI驱动的客户端需求开发实战
|
3月前
|
人工智能 前端开发 JavaScript
前端工程化演进之路:从手工作坊到AI驱动的智能化开发
前端工程化演进之路:从手工作坊到AI驱动的智能化开发
666 18
前端工程化演进之路:从手工作坊到AI驱动的智能化开发
|
2月前
|
人工智能 运维 定位技术
【微笑讲堂】AI时代的Geo优化:掌握这些技能,让你的内容被智能引擎“偏爱”
大家好,我是微笑老师!本期讲解“Geo都需要掌握哪些技能”。随着AI搜索兴起,GEO(生成式引擎优化)正取代传统SEO,核心在于让内容被AI“读懂、信任、引用”。需掌握四大技能:结构化数据工程、多模态语义对齐、动态知识图谱运维、权威信源建设。从“被找到”到“被引用”,GEO与SEO融合进化,助力内容在AI时代脱颖而出。未来已来,你准备好了吗?
346 8

热门文章

最新文章