天猫精灵(AliGenie)调试指南

当前问题分析

根据您的描述"触发成功但还是不正常",可能有以下几种情况:

1. 触发成功但无响应/响应错误

可能原因:

  • 后端服务未正常启动或无法访问
  • 意图配置不完整
  • 槽位(Slot)配置错误
  • 网络连接问题

解决方案:

A. 检查服务状态

# 检查本地服务
curl http://localhost:8000/api/health

# 检查公网服务  
curl https://mbe.hi-maker.com/api/health

# 查看服务日志
docker logs mbe-api --tail 100

B. 检查AliGenie配置

在AliGenie开发平台需要配置:

  1. 后端服务地址 (必填)

    • 公网地址: https://mbe.hi-maker.com/api/aligenie/skill
    • 注意: 必须是HTTPS,天猫精灵不支持HTTP
  2. 域名验证 (首次配置)

    • 验证文件: https://mbe.hi-maker.com/aligenie/323aa2fd4c69780935b939d96c38ca97.txt
    • 应该返回: Jfc4Z4Ur15JwUBuvUQD5wg7Nu8+l+HscqYlfofbyJdavfNxDWpPP4tUuhaygT1it
  3. 意图配置示例

意图名称: chat
意图别名: 米塞斯
意图识别语: 通用对话
槽位类型: 通用

推荐配置3个基础意图:

意图名称 意图标识 示例用语
米塞斯聊天 chat "你好"、"介绍一下你自己"
知识查询 query "什么是比特币"、"米塞斯是谁"
帮助 help "你能做什么"、"如何使用"

2. 响应格式错误

天猫精灵要求特定的响应格式:

{
  "returnCode": "0",
  "returnMessage": "success", 
  "returnValue": {
    "reply": "这是回复内容",
    "resultType": "RESULT",
    "executeCode": "SUCCESS",
    "actions": [],
    "properties": {},
    "shouldEndSession": false
  }
}

3. 常见问题及解决方法

问题1: "触发成功"但天猫精灵无响应

原因:

  • webhook未正确配置
  • 服务器响应超时(>5秒)
  • 返回格式错误

调试方法:

# 运行测试脚本
python test_aligenie.py

# 或测试特定语句
python test_aligenie.py "你好,请介绍一下你自己"

问题2: 天猫精灵说"服务出错"

原因:

  • 返回的returnCode不是"0"
  • 网络连接失败
  • 后端处理异常

检查方法:

  1. 查看天猫精灵平台的"测试中心" - "调试日志"
  2. 查看后端日志: docker logs mbe-api --tail 100 -f
  3. 使用调试页面: https://mbe.hi-maker.com/api/aligenie/debug

问题3: 天猫精灵听不懂/无法触发

原因:

  • 未配置唤醒词或技能名称
  • 意图训练不足
  • 槽位配置不当

解决方法:

  1. 在AliGenie平台设置技能唤醒词,例如: "米塞斯"
  2. 完善意图的示例用语,至少10条
  3. 测试语音命令格式:
    • "打开米塞斯" (唤醒技能)
    • "米塞斯,你好" (带技能名)
    • "你好" (已唤醒状态下)

4. 完整测试流程

步骤1: 验证服务可访问性

# Windows PowerShell
Invoke-WebRequest -Uri "https://mbe.hi-maker.com/api/aligenie/skill" -Method HEAD

期望返回: HTTP 200

步骤2: 测试意图响应

import requests
import json

# 模拟天猫精灵请求
payload = {
    "header": {
        "namespace": "AliGenie.Skill.Service",
        "name": "SkillService",
        "messageId": "test123",
        "payLoadVersion": "2"
    },
    "payload": {
        "intentName": "chat",
        "utterance": "你好",
        "sessionId": "session123",
        "skillId": "202601251802424",
        "deviceId": "test_device",
        "userId": "test_user",
        "requestType": "intent",
        "slots": {}
    }
}

response = requests.post(
    "https://mbe.hi-maker.com/api/aligenie/skill",
    json=payload,
    timeout=10
)

print(json.dumps(response.json(), ensure_ascii=False, indent=2))

期望输出:

{
  "returnCode": "0",
  "returnMessage": "success",
  "returnValue": {
    "reply": "您好!我是米塞斯智能助手..."
  }
}

步骤3: 在天猫精灵平台测试

  1. 进入技能管理 → 测试
  2. 选择"模拟对话"
  3. 输入测试语句: "你好"
  4. 查看响应和日志

5. 调试技巧

使用内置调试页面

访问: https://mbe.hi-maker.com/api/aligenie/debug

在页面上:

  1. 输入测试语句
  2. 点击"发送测试请求"
  3. 查看完整的请求和响应

查看实时日志

# Docker环境
docker logs mbe-api -f | Select-String "aligenie"

# 或查看所有日志
docker logs mbe-api -f

使用Postman测试

  1. 创建POST请求: https://mbe.hi-maker.com/api/aligenie/skill
  2. Headers: Content-Type: application/json
  3. Body: 使用上面的payload示例
  4. 发送并查看响应

6. 配置检查清单

  • Cloudflare Tunnel正常运行
  • 后端服务(mbe-api)正常运行
  • 域名验证文件可访问
  • Webhook地址配置正确
  • 至少配置1个意图
  • 意图有足够的示例用语(≥10条)
  • 技能已保存并上线
  • 技能已在"我的技能"中启用

7. 错误码参考

错误码 说明 解决方法
1033 Cloudflare错误 检查Tunnel状态
404 路径不存在 检查webhook URL
500 服务器错误 查看后端日志
超时 响应时间>5秒 优化后端性能

8. 快速修复命令

# 重启服务
cd d:\Mises\mises-behavior-engine
docker compose down
docker compose up -d

# 查看服务状态
docker ps

# 测试接口
python test_aligenie.py

9. 获取帮助

如果问题仍未解决:

  1. 查看完整日志: docker logs mbe-api --tail 500
  2. 检查天猫精灵平台的"调试日志"
  3. 访问调试页面查看详细错误信息
  4. 检查网络连接和DNS解析

联系信息