小爱同学技能配置指南
本文档介绍如何在小米小爱开放平台配置 MBE 技能。
平台信息
| 项目 | 信息 |
|---|---|
| 开放平台 | https://developers.xiaoai.mi.com/ |
| 文档中心 | https://xiaoai.mi.com/documents/Home |
| 账号要求 | 小米账号(建议使用企业账号) |
MBE 端点配置
| 配置项 | 值 |
|---|---|
| Webhook URL | https://mbe.hi-maker.com/api/xiaoai/skill |
| 调试页面 | https://mbe.hi-maker.com/api/xiaoai/debug |
| 本地测试 | http://localhost:8000/api/xiaoai/skill |
配置步骤
1. 登录小爱开放平台
- 访问 https://developers.xiaoai.mi.com/
- 使用小米账号登录
- 完成开发者认证(需要实名认证)
2. 创建技能
- 进入「技能开发」→「创建技能」
- 填写技能基本信息:
- 技能名称: 米塞斯智能助手
- 技能类型: 自定义技能
- 调用名称: 米塞斯 / 智能助手
- 技能描述: 提供法律咨询、生活助手等智能服务
3. 配置服务端点
- 进入「服务配置」
- 选择「HTTPS 自定义接入」
- 配置 Webhook:
- 服务地址:
https://mbe.hi-maker.com/api/xiaoai/skill - 请求方式: POST
- 超时时间: 5000ms
- 服务地址:
4. 配置意图
进入「语料配置」→「意图管理」
创建意图:
- 意图名称:
mises_qa - 意图描述: 米塞斯智能问答
- 意图名称:
添加语料示例:
离婚需要什么手续 租房合同需要注意什么 劳动仲裁怎么申请 今天天气怎么样 帮我查一下法律问题 我想咨询律师配置槽位(可选):
- query: 用户问题内容
5. 测试技能
在线测试
- 进入「测试」页面
- 输入测试语句
- 验证返回结果
本地调试
访问调试页面: https://mbe.hi-maker.com/api/xiaoai/debug
命令行测试
python test_xiaoai.py
6. 发布上线
- 完成所有测试
- 提交审核
- 等待审核通过
- 上线发布
请求/响应格式
请求格式
{
"version": "1.0",
"query": "用户说的话",
"session": {
"session_id": "会话ID",
"application": {"app_id": "应用ID"},
"user": {"user_id": "用户ID"}
},
"request": {
"type": 1,
"request_id": "请求ID",
"timestamp": 1234567890000,
"locale": "zh-CN",
"intent": {
"query": "用户说的话",
"name": "意图名称"
}
}
}
请求类型 (type):
0: 技能启动请求1: 意图请求(正常对话)2: 会话结束请求
响应格式
{
"version": "1.0",
"session": {
"session_id": "会话ID"
},
"response": {
"open_mic": true,
"to_speak": {
"type": 0,
"text": "语音播报内容"
},
"to_display": {
"type": 0,
"text": "屏幕显示内容"
}
},
"is_session_end": false
}
响应字段说明:
open_mic: 是否保持麦克风开启继续对话to_speak.text: 语音播报的文本to_display.text: 带屏设备显示的文本is_session_end: 是否结束当前会话
性能指标
| 指标 | 要求 | 实际 |
|---|---|---|
| 响应时间 | < 5秒 | 1.6-2.5秒 |
| 成功率 | > 95% | > 99% |
| 超时率 | < 5% | < 1% |
常见问题
Q: 技能无响应
- 检查 Webhook URL 是否正确
- 确认 MBE 服务正在运行
- 查看 Cloudflare Tunnel 状态
Q: 响应超时
- 确认网络连接正常
- 检查 MBE 服务日志
- 验证专家知识库是否已预热
Q: 返回内容不准确
- 检查意图配置是否正确
- 确认语料覆盖目标场景
- 查看专家匹配日志
调用示例
Python 测试
import requests
import uuid
import time
url = "https://mbe.hi-maker.com/api/xiaoai/skill"
payload = {
"version": "1.0",
"query": "离婚需要什么手续",
"session": {
"session_id": f"test-{uuid.uuid4()}",
"application": {"app_id": "test"},
"user": {"user_id": "test-user"}
},
"request": {
"type": 1,
"request_id": f"req-{uuid.uuid4()}",
"timestamp": int(time.time() * 1000),
"locale": "zh-CN",
"intent": {
"query": "离婚需要什么手续",
"name": "mises_qa"
}
}
}
resp = requests.post(url, json=payload, timeout=10)
data = resp.json()
print(data["response"]["to_speak"]["text"])
cURL 测试
curl -X POST https://mbe.hi-maker.com/api/xiaoai/skill \
-H "Content-Type: application/json" \
-d '{
"version": "1.0",
"query": "离婚需要什么手续",
"session": {
"session_id": "test-session",
"application": {"app_id": "test"},
"user": {"user_id": "test"}
},
"request": {
"type": 1,
"request_id": "test-req",
"timestamp": 1234567890000,
"intent": {"query": "离婚需要什么手续", "name": "mises_qa"}
}
}'