涵盖从环境准备到技能发布的完整流程,并提供代码级细节与调试方法。 纯干货,篇幅较长,建议按步骤操作。
图片
一、准备工作(详细版)
1.1 天猫精灵开发者账号
1. 注册与认证
访问[天猫精灵开放平台](https://open.aligenie.com) → 点击「立即入驻」选择「个人开发者」或「企业开发者」(企业需上传营业执照)完成支付宝实名认证(需手机验证码+人脸识别)注意:个人开发者技能审核更严格,企业资质推荐用于正式发布2. 创建技能
登录后进入「开发者中心」→「创建新技能」
技能类型:选择「自定义技能」技能名称:输入 “DeepSeek智能助手”(后续可修改)调用词:设置唤醒词,如 “打开AI助手”(用户需说“天猫精灵,打开AI助手”)技能分类:选择「工具」→「问答与助手」1.2 DeepSeek API申请
1. 获取API Key
登录 [DeepSeek官网](https://www.deepseek.com/) → 进入「开发者中心」点击「创建新应用」→ 填写应用名称(如 “天猫精灵集成”)记录生成的 “API Key”(形如 sk-123456789abcde)记录API端点地址如:(https://api.deepseek.com/v1/chat/completions)2. 测试API连通性
bash
# 使用curl测试API是否可用
curl https://api.deepseek.com/v1/chat/completions \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
'model': 'deepseek-chat',
'messages': [{'role': 'user', 'content': '你好'}]
}'
预期返回包含 'content': '你好!有什么可以帮助您的吗?'` 的JSON数据
二、配置天猫精灵技能(分步详解)
2.1 定义语音交互模型
1. 创建意图(Intent)
进入技能详情页 →「交互模型」→「意图管理」→「新建意图」
意图名称:`AskAI`
意图描述:用户向AI提问
2. 设置槽位(Slot)
槽位名称:`question`
槽位类型:`TEXT`(文本类型)
必要槽位:勾选「是」(强制用户必须提供问题)
3. 添加示例语句
- 输入至少10条触发语句,例如:
text
问一下AI {question}
帮我回答{question}
解释一下{question}
{question}是什么意思
4. 训练模型
点击「模型训练」→ 等待5-10分钟完成训练
使用「在线测试」验证意图识别:
text
测试输入:问AI 什么是引力波
预期输出:正确提取槽位 question='什么是引力波'
2.2 配置服务端信息(回调接口)
1. 填写服务地址
进入「服务配置」→「服务地址」
输入你的后端服务URL(需HTTPS,如 `https://your-domain.com/aligenie`)
注:若尚未部署,可先填写临时地址,后续更新
2. 配置OAuth2.0(可选)
如需用户登录绑定,选择「账号关联」→「OAuth2.0」
设置授权地址和Token地址(参考阿里云文档)
三、开发后端服务(代码级详解)
3.1 环境准备
bash
# 创建项目目录
mkdir deepseek-aligenie && cd deepseek-aligenie
# 初始化Python虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# 安装依赖
pip install flask requests gunicorn
3.2 完整代码(app.py)
python
from flask import Flask, request, jsonify
import requests
import logging
app = Flask(__name__)
app.logger.setLevel(logging.INFO)
# 配置参数
DEEPSEEK_API = 'https://api.deepseek.com/v1/chat/completions'
API_KEY = 'sk-your-api-key-here' # 替换为你的API Key
MAX_TOKENS = 1000 # 控制响应长度
@app.route('/aligenie', methods=['POST'])
def handle_aligenie():
try:
# 解析天猫精灵请求
data = request.json
app.logger.info(f'Received request: {data}')
# 提取用户问题
question = data['intent']['slots']['question']['value']
if not question:
return jsonify({'returnCode': '1', 'error': 'Empty question'})
# 调用DeepSeek API
headers = {
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
}
payload = {
'model': 'deepseek-chat',
'messages': [{'role': 'user', 'content': question}],
'temperature': 0.7,
'max_tokens': MAX_TOKENS
}
response = requests.post(DEEPSEEK_API, json=payload, headers=headers, timeout=10)
response.raise_for_status() # 检查HTTP错误
# 提取AI回复
ai_response = response.json()['choices'][0]['message']['content']
app.logger.info(f'AI Response: {ai_response}')
# 构建天猫精灵响应
return jsonify({
'returnCode': '0',
'returnValue': {
'reply': ai_response[:500], # 天猫精灵限制500字符
'resultType': 'RESULT'
}
})
except Exception as e:
app.logger.error(f'Error: {str(e)}')
return jsonify({
'returnCode': '1',
'error': f'Internal Error: {str(e)}'
})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=443, ssl_context=('fullchain.pem', 'privkey.pem')) # 正式环境需替换为真实证书
3.3 关键代码解释
1. 请求验证
天猫精灵POST请求的Body结构示例:
json
{
'utterance': '问AI 什么是相对论',
'intent': {
'slots': {
'question': {
'value': '什么是相对论'
}
}
}
}
2. 错误处理
使用 `try-except` 捕获API超时、JSON解析错误等异常
返回标准错误码 `returnCode: '1'`
3. 响应优化
限制回复长度为500字符(天猫精灵语音播报限制)
可添加敏感词过滤(示例代码未展示,需自行实现)
四、服务部署(HTTPS强制)
4.1 云服务器配置(以Ubuntu为例)
1. 安装Nginx
bash
sudo apt update
sudo apt install nginx -y
sudo systemctl start nginx
2. 配置SSL证书
- 申请免费证书(推荐 [Let's Encrypt](https://certbot.eff.org/))
bash
sudo snap install --classic certbot
sudo certbot --nginx -d your-domain.com
3. Nginx反向代理配置
编辑 `/etc/nginx/sites-available/deepseek.conf`:
nginx
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
location /aligenie {
proxy_pass http://localhost:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
重启Nginx:`sudo systemctl restart nginx`
### 4.2 启动服务
bash
# 使用Gunicorn运行(推荐生产环境)
gunicorn -w 4 -b 127.0.0.1:5000 app:app --access-logfile -
# 测试接口
curl -X POST https://your-domain.com/aligenie -H 'Content-Type: application/json' -d '{'intent':{'slots':{'question':{'value':'你好'}}}'
五、调试与发布
5.1 测试方法
1. 虚拟设备测试
进入开放平台 →「测试与发布」→「虚拟设备测试」输入测试语句:`问AI 如何学习人工智能`检查返回的语音回复是否符合预期2. 真机测试
打开天猫精灵APP →「技能」→ 搜索你的技能名称
对设备说:“天猫精灵,打开AI助手,问AI 太阳的年龄是多少?”
注意:未上架技能需开启“测试模式”
5.2 提交审核
1. 完善技能信息
图标:512x512 PNG,透明背景描述:明确说明技能功能,例如“通过DeepSeek AI提供智能问答服务”隐私协议:需单独页面说明数据使用方式2. 审核注意事项
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。