点击上方“AI搞事情”关注我们


💎工作原理

本项目主要依赖小米 IoT 生态开放的接口能力,以下为核心运行流程:

  • 使用 MIoT 和 MiNA 开放接口控制小爱音箱(播放、暂停、唤醒等)

  • 轮询设备对话列表,获取用户的最新对话消息,然后调用 AI 获取回复

  • 调用豆包等 TTS 接口合成不同音色的语音回复,然后使用小爱音箱播放音频

🐛 已知缺陷

通过调用小米 IoT 生态开放接口的方案,无法完美实现在 AI 回复时让原来的小爱闭嘴:

  • 存在网络延迟

  • 有一定的轮询间隔

  • 小爱音箱,小米服务云端,MiGPT 三者之间的响应延迟

支持设备

🐳 项目部署

刚好手里有一个早期买的小爱音箱Play,决定部署玩儿玩儿。

mi-gpt 有两种部署方式,一是使用 docker 部署,二是使用 Node.js 进行部署,本文两种方式都进行了尝试。

有两个关键的文件:.env 和 .migpt.js 文件,仓库中有示例,可以按照例子进行修改。

.migpt.js 是配置文件,包括一些配置;

.env 是环境变量文件,存放 gpt 密钥相关文件,注意不是js文件。

# OpenAI(也支持通义千问、MoonShot、DeepSeek 等模型)
OPENAI_MODEL=deepseek-chat
OPENAI_API_KEY=sk-xxxxx
# 你的大模型服务接口,比如:https://api.openai.com/v1(注意:一般以 /v1 结尾)
OPENAI_BASE_URL=https://api.deepseek.com/v1

获取api_key, 以deepseek为例,进入开放平台:
https://platform.deepseek.com/

创建API key,自定义名称,注意防止不要泄露了API key。

DeepSeek API 文档:https://api-docs.deepseek.com/zh-cn/

1. DOCKER部署

部署命令

docker run -d --name mi-gpt --env-file /root/mi-gpt/.env -v /root/mi-gpt/.migpt.js:/app/.migpt.js idootop/mi-gpt:latest
自动拉取镜像
自动拉取镜像
2. NODE部署

注:mi-gpt 需要 node 16 以上版本

安装依赖

npm install mi-gpt

启动命令

node main.js

初始化代码

// app.js
import config from "./.migpt.js";
import { MiGPT } from "mi-gpt";

async function main() {
  const client = MiGPT.create(config);
  await client.start();
}

main();
启动页面
启动页面

问题

  1. SyntaxError: Cannot use import statement outside a module
    在package.json文件中配置 type 属性

{
  "type": "module"
}
  1. OpenAIError: The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).

OPENAI_API_KEY 、OPENAI_MODELOPENAI_BASE_URL及对应的api key 设置到环境变量。为啥没有读取.env呢?

📕 资料

GITHUBhttps://github.com/idootop/mi-gpt.git

参考:
1、小爱同学接入各类AI模型
https://post.smzdm.com/p/an99mo63/
https://zhuanlan.zhihu.com/p/25874058147
3、centos docker安装
https://juejin.cn/post/7477534327882907660
https://blog.csdn.net/weixin_39764056/article/details/145042307

长按二维码关注我们

有趣的灵魂在等你

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐