• 你的位置:尊龙百乐家乐规则怎么玩 > 新闻动态 >

  • 纯干货!DeepSeek接入天猫精灵完整教程(代码版)
    发布日期:2025-03-07 16:13    点击次数:133

    涵盖从环境准备到技能发布的完整流程,并提供代码级细节与调试方法。 纯干货,篇幅较长,建议按步骤操作。

    图片

    一、准备工作(详细版)

    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. 审核注意事项

    本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。