☰
Susi AI API实战指南:susi_alexa_skill如何用Node.js调用chat.json获取智能回答
2026/10/12 0:01:58 网站建设 项目流程

【免费下载链接】susi_alexa_skill

An alexa skill which can be used to ask susi for answers: "Alexa, Ask Susi Who Are You"

项目地址:https://gitcode.com/gh_mirrors/su/susi_alexa_skill
点击查看免费下载

🤖 想了解如何让语音助手帮你随时提问吗?开源项目susi_alexa_skill是一个 Alexa 技能:它用Node.js接收你的语音问题,转发调用Susi AI的chat.json接口,再把智能回答用语音朗读给你听——一句 "Alexa, ask Susi who are you" 就能得到 Susi 的回答。本文将带你拆解它的工作原理,并一步步跑起来。

项目简介:susi_alexa_skill 是什么

susi_alexa_skill 把 Susi(一个开源 AI 聊天机器人)接入 Amazon Alexa。整个后端非常轻量,核心只有几个 Node.js 文件:

文件作用
server.jsExpress 服务,提供/susiapi接口,接收 Alexa 请求
handlers.js业务逻辑:调用chat.json并解析回答
alexa.js封装 Alexa 请求/响应对象,生成语音回复
intent_schema.jsonAlexa 意图模型定义
sample_utterances.txt示例语句
Dockerfile容器化部署

核心原理:一次提问的三步流程

当你说 "Alexa, ask Susi what is the temperature in Berlin" 时,背后发生了这样一条链路:

  1. Alexa 做意图识别:整句问题被作为query槽位传给callSusiApi意图(定义在 intent_schema.json 中,槽位类型为AMAZON.LITERAL);
  2. Node.js 服务端转发请求:server.js 监听 POST 请求,识别出IntentRequest后交给 handlers.js 中的callSusiApi处理器;
  3. 调用 Susi AI 的 chat.json:实际请求形如http://api.susi.ai/susi/chat.json?q=你的问题,Susi 返回 JSON,服务取出答案后以PlainText语音读回给你。

整个过程可以概括为:

用户语音 → Alexa意图(query) → server.js → chat.json?q=问题 → 解析JSON → 语音回答

代码解读:server.js 如何接收 Alexa 请求

server.js 中用 Express 挂载了/susiapi路由,它把 Alexa 发来的 JSON 交给 alexa.js 封装,然后按请求类型分流:

if (type === "LaunchRequest") { // 首次唤醒:连问两次 chat.json(Welcome / Get started) } else if (type === "IntentRequest") { // 用户提问:交给对应意图处理器 handler(slots, session, response); }

而 alexa.js 里的say(text, shouldEndSession)函数负责把文字包成 Alexa 能朗读的响应格式,这是"智能回答"最终变成语音的关键一步。

解析响应:从 chat.json 拿到智能回答

chat.json返回的 JSON 结构中,答案位于answers[0].actions[0].expression。在 handlers.js 中可以看到完整的解析逻辑,它还贴心地处理了两种特殊场景:

  • rss类型:Susi 不知道答案时,固定回复 "I have no idea about it, sorry.";
  • table类型:数据类回答只朗读前 10 条,避免语音过长。

此外,handlers.js 还支持两个"魔法词":说help会请求聊天引导,说stop或cancel则结束会话。

快速上手:本地三步跑起来

✅ 只需 Node.js 环境,三步即可启动服务:

git clone https://gitcode.com/gh_mirrors/su/susi_alexa_skill cd susi_alexa_skill npm install npm start

启动后服务默认监听8080端口(见 server.js 与 package.json),依赖只有express和body-parser两个,非常轻量。

Alexa 控制台配置:让技能听懂你的问题

服务端就绪后,需要在 Amazon 开发者控制台完成技能配置:

  1. 技能信息:填写技能名和调用名(invocation name)。本项目的调用名是susi,所以提问前缀就是 "Alexa, ask Susi...";
  2. 交互模型:把 intent_schema.json 和 sample_utterances.txt 的内容分别填入意图模式和示例语句栏,只需一行示例语句:

  1. 服务配置:选择 HTTPS 端点类型,把部署后的服务地址(如 Heroku 或自有域名 URL)填入端点字段:

测试验证:试着问 "who are you"

配置完成后进入 Test 标签页,可以直接在 Service Simulator 中输入问题测试。输入who are you后,右侧会看到 Susi 的回答 "My name is Susi.":

也可以直接对真机或模拟器说话试试这些句子:

  • "Alexa, ask susi where are you"
  • "Alexa, ask susi tell me a joke"
  • "Alexa, ask susi what is a table"

部署方案:从 Heroku 到 Kubernetes

项目自带多种部署选项,按规模任选:

  • Docker:Dockerfile 基于node:boron镜像,npm install后直接npm start,暴露 8080 端口;
  • Kubernetes:kubernetes/ 目录提供了完整的 YAML 清单(application/deployment.yaml、service.yaml、ingress-tls.yaml 等),配合 kubernetes/deploy.sh 一键部署,官方步骤见 docs/gce-kubernetes.md;
  • Travis CI:kubernetes/travis/deploy.sh 支持自动化部署。

总结:从一行代码到语音智能问答

回顾一下 susi_alexa_skill 的精髓:

  1. 薄后端:一个 Express 路由 + 一个意图处理器,就把 Susi AI 的能力接进了语音世界;
  2. 标准 API:chat.json?q=问题是通用的 HTTP 接口,任何语言都能复刻这套调用方式;
  3. 易扩展:想换问答引擎?只需在 handlers.js 中替换 endpoint 和解析逻辑。

这套"语音入口 + Node.js 网关 + AI API"的模式,对想接入其他聊天 API 的项目同样适用。动手试试吧!🚀

【免费下载链接】susi_alexa_skill

An alexa skill which can be used to ask susi for answers: "Alexa, Ask Susi Who Are You"

项目地址:https://gitcode.com/gh_mirrors/su/susi_alexa_skill
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询