MiGPT,一个创新的开源项目,通过融合小爱音箱、米家智能设备与ChatGPT的卓越理解能力,为用户带来了一个更加智能化、个性化的居住环境。
MiGPT的核心理念是打造一个能够理解用户需求、富有情感、并与用户共同成长的智能家居生态系统。在MiGPT的驱动下,家中的每一个智能设备,如灯泡、插座、扫地机器人、电视等,都将成为独立的智能体(Agent),它们不仅能够智能响应用户的指令,还能相互协作,形成一个强大的智能家居网络。
项目开源地址:https://github.com/idootop/mi-gpt
项目亮点:
AI问答:接入大模型的小爱音箱,能够提供丰富的信息和知识,从日常咨询到专业知识,应有尽有。
角色扮演:小爱音箱可以根据用户的设定,扮演不同角色,提供更丰富的互动体验。
流式响应:快速响应用户需求,提供即时反馈,让用户体验到流畅的交互体验。
长短期记忆:记录用户习惯和偏好,通过持续学习,提供更加个性化的服务。
自定义TTS:提供语音定制功能,用户可以根据自己的喜好,定制音箱的语音风格。
智能家居Agent:智能感知用户情绪,自动调节家居环境,提升居住舒适度。
配置参数
.migpt.js
重命名本项目根目录下的.migpt.example.js文件为.migpt.js。
然后,将里面的配置参数修改成你自己的,参数含义如下:
参数名称 | 描述 | 示例 |
---|---|---|
bot | ||
name | 对方名称(小爱音箱) | "傻妞" |
profile | 对方的个人简介/人设 | "性别女,性格乖巧可爱,喜欢搞怪,爱吃醋。" |
master | ||
name | 主人名称(我自己) | "陆小千" |
profile | 主人的个人简介/人设 | "性别男,善良正直,总是舍己为人,是傻妞的主人。" |
room | ||
name | 会话群名称 | "魔幻手机" |
description | 会话群简介 | "傻妞和陆小千的私聊" |
speaker | ||
userId | 小米 ID(注意:不是手机号或邮箱) | "987654321" |
password | 账户密码 | "123456" |
did | 小爱音箱 ID 或名称 | "小爱音箱 Pro" |
ttsCommand | 小爱音箱 TTS 指令(可在此查询) | [5, 1] |
wakeUpCommand | 小爱音箱唤醒指令(可在此查询) | [5, 3] |
speaker 其他参数(可选) | ||
callAIKeywords | 当消息以关键词开头时,会调用 AI 来响应用户消息 | ["请", "傻妞"] |
wakeUpKeywords | 当消息以关键词开头时,会进入 AI 唤醒状态 | ["召唤傻妞", "打开傻妞"] |
exitKeywords | 当消息以关键词开头时,会退出 AI 唤醒状态 | ["退出傻妞", "关闭傻妞"] |
onEnterAI | 进入 AI 模式的欢迎语 | ["你好,我是傻妞,很高兴认识你"] |
onExitAI | 退出 AI 模式的提示语 | ["傻妞已退出"] |
onAIAsking | AI 开始回答时的提示语 | ["让我先想想", "请稍等"] |
onAIReplied | AI 结束回答时的提示语 | ["我说完了", "还有其他问题吗"] |
onAIError | AI 回答异常时的提示语 | ["出错了,请稍后再试吧!"] |
playingCommand | 查询小爱音箱是否在播放中指令(注意:默认无需配置此参数,播放出现问题时再尝试开启) | [3, 1, 1] |
streamResponse | 是否启用流式响应(部分小爱音箱型号不支持查询播放状态,此时需要关闭流式响应) | true |
exitKeepAliveAfter | 无响应一段时间后,多久自动退出唤醒模式(单位秒,默认 30 秒) | 30 |
环境变量
重命名本项目根目录下的.env.example文件为.env。
然后,将里面的环境变量修改成你自己的,参数含义如下:
环境变量名称 | 描述 | 示例 |
---|---|---|
OpenAI | ||
OPENAI_API_KEY | OpenAI API 密钥 | abc123 |
OPENAI_MODEL | 使用的 OpenAI 模型 | gpt-4o |
OPENAI_BASE_URL | 可选,OpenAI API BaseURL | https://api.openai.com/v1 |
AZURE_OPENAI_API_KEY | 可选,Microsoft Azure OpenAI | abc123 |
提示音效(可选) | ||
AUDIO_SILENT | 静音音频链接 | "https://example.com/slient.wav" |
AUDIO_BEEP | 默认提示音链接 | "https://example.com/beep.wav" |
AUDIO_ACTIVE | 唤醒提示音链接 | "https://example.com/active.wav" |
AUDIO_ERROR | 出错提示音链接 | "https://example.com/error.wav" |
豆包 TTS(可选) | ||
TTS_DOUBAO | 豆包 TTS 接口 | "https://example.com/tts.wav" |
SPEAKERS_DOUBAO | 豆包 TTS 音色列表接口 | "https://example.com/tts-speakers" |
部署方法
MiGPT提供了Docker和Node.js两种启动方式,适应不同用户的需求。无论是希望通过Docker快速部署,还是利用Node.js进行前端开发,MiGPT都提供了简便的启动指南和详细的参数配置说明。
Docker部署
对于电脑小白或者不想自己配置代码运行环境(Node)的同学,可以使用 Docker 启动方式。用户只需根据参数设置说明配置好.env和.migpt.js文件,然后通过命令启动MiGPT服务。
docker run --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latest
注意:在 Windows 终端下需要将配置文件路径 $(pwd) 替换为绝对路径
Node.js开发
对于开发者而言,可以通过NPM安装MiGPT,并通过提供的示例代码快速创建并启动MiGPT实例。
npm install mi-gpt # 安装依赖
然后,创建并启动 MiGPT 实例。初始化参数的具体说明请到 参数设置 查看。
注意:此模式下并不会主动读取 .env 和 .migpt.js 中的配置信息,你需要手动初始化 Node 环境变量,并将 .migpt.js 中的参数作为 MiGPT.create 的初始化参数传入。
本地开发
MiGPT也支持本地开发和调试,提供了详细的本地开发教程,包括项目初始化、依赖安装、构建项目。
如果你想要修改代码,本地调试开发 MiGPT 可以参考以下教程。
1、初始化
# 克隆项目到本地 git clone https://github.com/idootop/mi-gpt.git cd mi-gpt # 安装依赖 pnpm install # 构建项目 pnpm build
然后按照 参数设置 教程,配置好你的 .env 和 .migpt.js 文件。
2、运行
有两种运行方式:VS Code Debug 或 NPM Script:
NPM Script: 配置好 .env 和 .migpt.js 后直接使用 pnpm run dev 启动 MiGPT。
VScode Debug:使用 VS Code 打开项目根目录,然后按 F5 开始调试 MiGPT。注意,启动前请在 tests/migpt.ts 文件中配置 MiGPT 相关参数。
本项目默认在 Node 20 中运行,如果你的 Node 版本过低可能无法正常启动本项目。
3、构建 Docker 镜像
此项目默认支持 linux/amd64, linux/arm64 和 linux/arm32/v7,可使用以下命令构建指定平台的镜像:
docker build --platform linux/arm/v7 -t mi-gpt .
运行构建后的 docker
docker run --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js mi-gpt
常见问题
MiGPT项目文档中还包含了常见问题解答,帮助用户解决在使用过程中可能遇到的问题,如本地数据库重建、Mi Service初始化失败等。具体可查看:常见问题解答。
MiGPT项目不仅仅是技术上的突破,更是对智能家居理念的一次革新。随着项目的不断发展和完善,我们有理由相信,MiGPT将为用户带来更加智能化、个性化的居住体验,让家成为真正的数字生活中心。
本文来源于#网络整理,由@zhanid 整理发布。如若内容造成侵权/违法违规/事实不符,请联系本站客服处理!
该文章观点仅代表作者本人,不代表本站立场。本站不承担相关法律责任。
如若转载,请注明出处:https://www.zhanid.com/news/1230.html