From 5ed1757976e85cf4132cfdb966ee17dac5ee62c2 Mon Sep 17 00:00:00 2001 From: kalicyh <34980061+kaliCYH@users.noreply.github.com> Date: Sun, 16 Feb 2025 19:11:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=93=83=20docs(readme):=20=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 557 +++++++++-------------------------------- docs/Deployment.md | 293 ++++++++++++++++++++++ docs/firmware-build.md | 83 ++++++ 3 files changed, 488 insertions(+), 445 deletions(-) create mode 100644 docs/Deployment.md create mode 100644 docs/firmware-build.md diff --git a/README.md b/README.md index 21799b8c..154f2cba 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,15 @@ (中文 | [English](README_en.md)) -本项目为开源智能硬件项目 [xiaozhi-esp32](https://github.com/78/xiaozhi-esp32) -提供后端服务。根据[小智通信协议](https://ccnphfhqs21z.feishu.cn/wiki/M0XiwldO9iJwHikpXD5cEx71nKh)使用`Python`实现。 +本项目为开源智能硬件项目 [xiaozhi-esp32](https://github.com/78/xiaozhi-esp32) 提供后端服务。根据 [小智通信协议](https://ccnphfhqs21z.feishu.cn/wiki/M0XiwldO9iJwHikpXD5cEx71nKh) 使用 `Python` 实现。 -## 适用人群 +--- -本项目需要配合esp32硬件设备使用,如果童鞋们已经购买了esp32相关硬件,且成功对接虾哥部署的后端,并且想自己独立搭建 -`xiaozhi-esp32`后端服务,可学习本项目。 +## 适用人群 👥 -想看使用效果,请猛戳这个视频 +本项目需要配合 ESP32 硬件设备使用。如果您已经购买了 ESP32 相关硬件,且成功对接过虾哥部署的后端服务,并希望独立搭建自己的 `xiaozhi-esp32` 后端服务,那么本项目非常适合您。 + +想看使用效果?请猛戳这个视频 🎥 @@ -20,526 +20,193 @@ -要想完整体验本项目,需要以下总体步骤: +--- -- 准备一套兼容`xiaozhi-esp32` - 项目的硬件设备,具体型号可[点击这里](https://rcnv1t9vps13.feishu.cn/wiki/DdgIw4BUgivWDPkhMj1cGIYCnRf)。 -- 拥有一台至少4核CPU 8G内存的普通电脑或服务器,运行本项目。部署后可以在控制台看到本项目服务的接口地址。 -- 下载`xiaozhi-esp32`项目,把`接口地址`修改成本项目地址,然后编译,把新固件烧录到硬件设备上。 -- 启动设备,查看电脑或服务器的控制台,如果看到日志,说明成功连到本项目的接口了。 +## 系统要求与部署前提 🖥️ -## 警告 +- **硬件**:一套兼容 `xiaozhi-esp32` 的硬件设备(具体型号请参考 [此处](https://rcnv1t9vps13.feishu.cn/wiki/DdgIw4BUgivWDPkhMj1cGIYCnRf))。 +- **服务器**:至少 4 核 CPU、8G 内存的电脑或服务器。 +- **固件编译**:请将后端服务的接口地址更新至 `xiaozhi-esp32` 项目中,再重新编译固件并烧录到设备上。 + +--- + +## 警告 ⚠️ 本项目成立时间较短,还未通过网络安全测评,请勿在生产环境中使用。 -如果您在公网环境中部署学习本项目。请务必在配置文件`config.yaml`开启防护。 +如果您在公网环境中部署学习本项目,请务必在配置文件 `config.yaml` 中开启防护: -``` +```yaml server: auth: # 开启防护 enabled: true ``` -开启防护后,你要根据自己的情况,要么校验机器的token,要么校验机器的mac地址,详细可看配置。 +开启防护后,您需要根据实际情况校验机器的 token 或 mac 地址,详细请参见配置说明。 -## 功能清单 +--- -## 已实现 +## 功能清单 ✨ -- `xiaozhi-esp32` 通信 WebSocket 协议 -- 支持唤醒对话、手动对话、实时打断对话 -- 支持国语、粤语、英语、日语、韩语 5 种语言识别(FunASR(默认)) -- 自由更换 LLM(openai接口支持ChatGLM(默认)、阿里百炼、DeepSeek等,dify接口支持Dify官方及私有化部署) -- 自由更换 TTS(支持EdgeTTS(默认)、火山引擎豆包TTS) +### 已实现 ✅ -## 正在实现 +- **通信协议** + 基于 `xiaozhi-esp32` 协议,通过 WebSocket 实现数据交互。 +- **对话交互** + 支持唤醒对话、手动对话及实时打断。 +- **多语言识别** + 支持国语、粤语、英语、日语、韩语(默认使用 FunASR)。 +- **LLM 模块** + 支持灵活切换 LLM 模块,默认使用 ChatGLMLLM,也可选用阿里百炼、DeepSeek、Ollama 等接口。 +- **TTS 模块** + 支持 EdgeTTS(默认)、火山引擎豆包 TTS 等多种 TTS 接口,满足语音合成需求。 -- 长时间不聊天进入休眠状态 -- 对话记忆 -- 更换心情模式 +### 正在开发 🚧 -## 本项目支持的平台/组件列表 +- 长时间无对话时自动休眠 +- 对话记忆功能 +- 多种心情模式 -| 类型 | 平台名称 | 使用方式 | 收费模式 | 备注 | -|:----|:----------|:----------:|:--------|:----------------------------------------------------------------| -| LLM | 阿里百炼 | openai接口调用 | 消耗token | [点击申请密钥](https://bailian.console.aliyun.com/?apiKey=1#/api-key) | -| LLM | 深度求索 | openai接口调用 | 消耗token | [点击申请密钥](https://platform.deepseek.com/) | -| LLM | 智谱 | openai接口调用 | 免费 | [点击创建密钥](https://bigmodel.cn/usercenter/proj-mgmt/apikeys) | -| LLM | Dify | dify接口调用 | 消耗token | 本地化部署 | -| TTS | 火山引擎 | 接口调用 | 消耗token | [点击创建密钥](https://console.volcengine.com/speech/service/8) | -| TTS | EdgeTTS | 接口调用 | 免费 | | -| VAD | SileroVAD | 本地使用 | 免费 | | -| ASR | FunASR | 本地使用 | 免费 | | +--- -实际上,任何支持openai接口调用的LLM,都可以接入使用。 +## 本项目支持的平台/组件列表 📋 -# 部署方式 +### LLM -本项目支持docker快速部署、借助docker环境运行部署和本地源码运行三种方式。三种方式怎么选,每个人的情况不一样,以下是一些推荐。 +| 类型 | 平台名称 | 使用方式 | 收费模式 | 备注 | +|:----:|:-----------------------------:|:-------------------:|:-------------:|:------------------------------------------------------------------------------------------:| +| LLM | 阿里百炼 (AliLLM) | openai 接口调用 | 消耗 token | [点击申请密钥](https://bailian.console.aliyun.com/?apiKey=1#/api-key) | +| LLM | 深度求索 (DeepSeekLLM) | openai 接口调用 | 消耗 token | [点击申请密钥](https://platform.deepseek.com/) | +| LLM | 智谱(ChatGLMLLM) | openai 接口调用 | 消耗 token | 需注册申请 API key,请参考 [BigModel](https://bigmodel.cn/usercenter/proj-mgmt/apikeys) | +| LLM | OllamaLLM | ollama 接口调用 | 免费/自定义 | 需预先下载模型(`ollama pull`),服务地址:`http://localhost:11434` | +| LLM | DifyLLM | dify 接口调用 | 消耗 token | 本地化部署,注意配置提示词需在 Dify 控制台设置 | +| LLM | GeminiLLM | gemini 接口调用 | 免费 | [申请 API](https://aistudio.google.com/apikey);请遵守使用规定 | +| LLM | CozeLLM | coze 接口调用 | 消耗 token | 需提供 bot_id、user_id 及个人令牌 | -如果您主要是想快速体验,推荐使用`方式一:docker快速部署`。 +实际上,任何支持 openai 接口调用的 LLM 均可接入使用。 -如果您已经安装docker,不想折腾环境,又想对代码进行DIY修改,推荐`方式二:借助docker环境运行部署`。 +--- -如果您对conda的使用得心应手,或想从零开始学习搭建环境,推荐`方式三:本地源码运行`。 +### TTS -如果你对小智的回答速度非常的敏感,不希望有丝丝的性能损失,推荐`方式三:本地源码运行`。 +| 类型 | 平台名称 | 使用方式 | 收费模式 | 备注 | +|:----:|:-----------------------------------:|:---------------:|:-------------:|:-------------------------------------------------------------------------------------------------------------------------:| +| TTS | EdgeTTS | 接口调用 | 免费 | 默认 TTS,基于微软语音合成技术 | +| TTS | 火山引擎豆包 TTS (DoubaoTTS) | 接口调用 | 消耗 token | [点击创建密钥](https://console.volcengine.com/speech/service/8);建议使用付费版本以获得更高并发 | +| TTS | CosyVoiceSiliconflow | 接口调用 | 消耗 token | 需申请硅基流动 API 密钥;输出格式为 wav | +| TTS | CozeCnTTS | 接口调用 | 消耗 token | 需提供 Coze API key;输出格式为 wav | +| TTS | FishSpeech | 接口调用 | 免费/自定义 | 本地启动 TTS 服务;启动方法见配置文件内说明 | +| TTS | GPT_SOVITS_V2 | 接口调用 | 免费/自定义 | 本地启动 TTS 服务,适用于个性化语音合成场景 | -## 方式一:docker快速部署 +--- -docker镜像已支持x86架构、arm64架构的CPU,支持在国产操作系统上运行。 +### VAD -### 1. 安装docker +| 类型 | 平台名称 | 使用方式 | 收费模式 | 备注 | +|:----:|:----------:|:---------:|:--------:|:----:| +| VAD | SileroVAD | 本地使用 | 免费 | | -如果您的电脑还没安装docker,可以按照这里的教程安装:[docker安装](https://www.runoob.com/docker/ubuntu-docker-install.html) +--- -### 2. 创建目录 +### ASR -安装完后,你需要为这个项目找一个安放配置文件的目录,我们暂且称它为`项目目录`,这个目录最好是一个新建的空的目录。 +| 类型 | 平台名称 | 使用方式 | 收费模式 | 备注 | +|:----:|:--------:|:---------:|:--------:|:----:| +| ASR | FunASR | 本地使用 | 免费 | | -### 3. 下载配置文件 +--- -用浏览器打开[这个链接](https://github.com/xinnan-tech/xiaozhi-esp32-server/blob/main/config.yaml)。 +## 部署方式 🚀 -在页面的右侧找到名称为`RAW`按钮,在`RAW`按钮的旁边,找到下载的图标,点击下载按钮,下载`config.yaml`文件。 把文件下载到你的 -`项目目录`。 +[部署文档](./docs/Deployment.md) -### 4. 修改配置文件 +本项目支持以下三种部署方式,您可根据实际需求选择: -修改刚才你下载的`config.yaml`文件,配置本项目所需的各种参数。默认的LLM使用的是`ChatGLMLLM` -,你需要配置密钥,因为他们的模型,虽然有免费的,但是仍要去[官网](https://bigmodel.cn/usercenter/proj-mgmt/apikeys)注册密钥,才能启动。 +1. **Docker 快速部署** + 适合快速体验,不需过多环境配置。 +2. **借助 Docker 环境运行部署** + 适用于已安装 Docker 且希望对代码进行自定义修改的用户。 +3. **本地源码运行** + 适合熟悉 Conda 环境或希望从零搭建运行环境的用户。 + 对于对响应速度要求较高的场景,推荐使用本地源码运行方式以降低额外开销。 -默认的TTS使用的是`EdgeTTS`,这个无需配置,如果你需要更换成`豆包TTS`,则需要配置密钥。 +--- -配置说明:这里是各个功能使用的默认组件,例如LLM默认使用`ChatGLMLLM`模型。如果需要切换模型,就是改对应的名称。 +## 常见问题 ❓ -本项目的默认配置原则是成本最低配置原则(`glm-4-flash`和`EdgeTTS`都是免费的),如果需要更优的更快的搭配,需要自己结合部署环境切换各组件的使用。 +### 1、TTS 经常失败,经常超时 ⏰ -``` -selected_module: - ASR: FunASR - VAD: SileroVAD - LLM: ChatGLMLLM - TTS: EdgeTTS -``` +建议:如果 `EdgeTTS` 经常失败,请先检查是否使用了代理(梯子)。如果使用了,请尝试关闭代理后再试; +如果用的是火山引擎的豆包 TTS,经常失败时建议使用付费版本,因为测试版本仅支持 2 个并发。 -比如修改`LLM`使用的组件,就看本项目支持哪些`LLM` API接口,当前支持的是`openai`、`dify`。欢迎验证和支持更多LLM平台的接口。 +### 2、我想通过小智控制电灯、空调、远程开关机等操作 💡 -使用时,在`selected_module`修改成对应的如下LLM配置的名称: +建议:在配置文件中将 `LLM` 设置为 `DifyLLM`,并通过 `Dify` 编排智能体来实现相关控制。 -``` -LLM: - AliLLM: - type: openai - ... - DeepSeekLLM: - type: openai - ... - ChatGLMLLM: - type: openai - ... - DifyLLM: - type: dify - ... -``` +### 3、我说话很慢,停顿时小智老是抢话 🗣️ -有些服务,比如如果你使用`Dify`、`豆包的TTS`,是需要密钥的,记得在配置文件加上哦! - -### 5. 执行docker命令 - -打开命令行工具,`cd` 进入到你的`项目目录`,执行以下命令 - -``` -#如果你是linux,执行 -ls -#如果你是windows,执行 -dir -``` - -如果你能看到`config.yaml`文件,确确实实进入到了`项目目录`,接着执行以下命令: - -``` -docker run -d --name xiaozhi-esp32-server --restart always --security-opt seccomp:unconfined -p 8000:8000 -v $(pwd)/config.yaml:/opt/xiaozhi-esp32-server/config.yaml ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest -``` - -如果首次执行,可能需要几分钟时间,你要耐心等待他完成拉取。正常拉取完成后,你可以在命令行执行以下命令查看服务是否启动成功 - -``` -docker ps -``` - -如果你能看到`xiaozhi-server`,说明服务启动成功。那你还可以进一步执行以下命令,查看服务的日志 - -``` -docker logs -f xiaozhi-esp32-server -``` - -如果你能看到,类似以下日志,则是本项目服务启动成功的标志。 - -``` -2025-xx-xx xx:51:59,492 - core.server - INFO - Server is running at ws://xx.xx.xx.xxx:8000 -2025-xx-xx xx:51:59,516 - websockets.server - INFO - server listening on 0.0.0.0:8000 -``` - -接下来,你就可以开始 `编译esp32固件`了,请往下翻,翻到编译`esp32固件`相关章节。那么由于你是用docker部署,你要自己查看自己本机电脑的ip是多少。 -正常来说,假设你的ip是`192.168.1.25`,那么你的接口地址就是:`ws://192.168.1.25:8000`。这个信息很有用的,后面`编译esp32固件` -需要用到。 - -请注意,你的接口地址是`websocket`协议的地址,你可以使用`apifox`等工具调试。但是不能直接用浏览器打开访问,如果用浏览器打开,日志会显示错误,会让你怀疑是否部署成功了。 - -后期如果想升级版本,可以这么操作 - -1、备份好`config.yaml`文件,一些关键的配置到时复制到新的`config.yaml`文件里。 - -2、执行以下命令 - -``` -docker stop xiaozhi-esp32-server -docker rm xiaozhi-esp32-server -docker rmi ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest -``` - -3.按本教程重新来一遍 - -## 方式二:借助docker环境运行部署 - -这个方法的原理,其实是和第一种方式类似。区别在于,第一种方式只要下载一个配置文件,而本方式要下载项目源码。 - -优点就是源码在你主机躺着,你可以使用本机的代码编辑器加载项目和修改源码。每次修改完项目,想要看效果,那就要重启docker。 - -缺点就要下载本项目的代码,还要下载模型文件,如果这个项目不常用,确实会占用您电脑的空间。 - -你先要下载本项目源码,源码可以通过`git clone`命令下载,如果你不熟悉`git clone`命令。 - -你可以用浏览器打开这个地址`https://github.com/xinnan-tech/xiaozhi-esp32-server.git` - -打开完,找到页面中一个绿色的按钮,写着`Code`的按钮,点开它,然后你就看到`Download ZIP`的按钮。 - -点击它,下载本项目源码压缩包。下载到你电脑后,解压它,此时它的名字可能叫`xiaozhi-esp32-server-main` -你需要把它重命名成`xiaozhi-esp32-server`,好了请记住这个目录,我们暂且称它为`项目目录`。 - -下载源码后,需要下载模型文件。 默认使用`SenseVoiceSmall`模型,进行语音转文字。因为模型较大,需要独立下载,下载后把`model.pt` -文件放在`model/SenseVoiceSmall` -目录下。下面两个下载路线任选一个。 - -- 线路一:阿里魔塔下载[SenseVoiceSmall](https://modelscope.cn/models/iic/SenseVoiceSmall/resolve/master/model.pt) -- 线路二:百度网盘下载[SenseVoiceSmall](https://pan.baidu.com/share/init?surl=QlgM58FHhYv1tFnUT_A8Sg&pwd=qvna) 提取码: - `qvna` - -下载模型后,需要按照`方式一:docker快速部署`修改配置文件`config.yaml` - -修改完配置后,打开命令行工具,`cd`进入到你的项目目录下,执行以下命令 - -``` -docker run -d --name xiaozhi-esp32-server --restart always --security-opt seccomp:unconfined \ - -p 8000:8000 \ - -v $(pwd):/opt/xiaozhi-esp32-server \ - ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest -``` - -``` -docker logs -f xiaozhi-esp32-server -``` - -如果你能看到,类似以下日志,则是本项目服务启动成功的标志。 - -``` -2025-xx-xx xx:51:59,492 - core.server - INFO - Server is running at ws://xx.xx.xx.xxx:8000 -2025-xx-xx xx:51:59,516 - websockets.server - INFO - server listening on 0.0.0.0:8000 -``` - -接下来,你就可以开始 `编译esp32固件`了,请往下翻,翻到编译`esp32固件`相关章节。那么由于你是用docker部署,你要自己查看自己本机电脑的ip是多少。 -正常来说,假设你的ip是`192.168.1.25`,那么你的接口地址就是:`ws://192.168.1.25:8000`。这个信息很有用的,后面`编译esp32固件` -需要用到。 - -请注意,你的接口地址是`websocket`协议的地址,你可以使用`apifox`等工具调试。但是不能直接用浏览器打开访问,如果用浏览器打开,日志会显示错误,会让你怀疑是否部署成功了。 - -后期,如果你修改了代码,想让新代码跑起来,可以用以下命令让docker容器重启: - -``` -docker restart xiaozhi-esp32-server -# 查看日志输出 -docker logs -f xiaozhi-esp32-server -``` - -## 方式三:本地源码运行 - -### 1.安装基础环境 - -本项目使用`conda`管理依赖环境,安装好后,开始执行以下命令。 - -``` -conda remove -n xiaozhi-esp32-server --all -y -conda create -n xiaozhi-esp32-server python=3.10 -y -conda activate xiaozhi-esp32-server -``` - -执行以上命令后, 如果你的电脑是Windows或Mac,执行下面的语句: - -``` -conda activate xiaozhi-esp32-server -conda install conda-forge::libopus -conda install conda-forge::ffmpeg -``` - -如果你的电脑是ubuntu,执行下面的语句: - -``` -apt-get install libopus0 ffmpeg -``` - -### 2.安装本项目依赖 - -你先要下载本项目源码,源码可以通过`git clone`命令下载,如果你不熟悉`git clone`命令。 - -你可以用浏览器打开这个地址`https://github.com/xinnan-tech/xiaozhi-esp32-server.git` - -打开完,找到页面中一个绿色的按钮,写着`Code`的按钮,点开它,然后你就看到`Download ZIP`的按钮。 - -点击它,下载本项目源码压缩包。下载到你电脑后,解压它,此时它的名字可能叫`xiaozhi-esp32-server-main` -你需要把它重命名成`xiaozhi-esp32-server`,好了请记住这个目录,我们暂且称它为`项目目录`。 - -``` -# 使用dos或者终端,进入到你的项目目录,执行以下命令 -conda activate xiaozhi-esp32-server -pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ -pip install -r requirements.txt -``` - -### 3.下载语音识别模型 - -默认使用`SenseVoiceSmall`模型,进行语音转文字。因为模型较大,需要独立下载,下载后把`model.pt`文件放在`model/SenseVoiceSmall` -目录下。下面两个下载路线任选一个。 - -- 线路一:阿里魔塔下载[SenseVoiceSmall](https://modelscope.cn/models/iic/SenseVoiceSmall/resolve/master/model.pt) -- 线路二:百度网盘下载[SenseVoiceSmall](https://pan.baidu.com/share/init?surl=QlgM58FHhYv1tFnUT_A8Sg&pwd=qvna) 提取码: - `qvna` - -### 4.配置项目 - -修改`config.yaml`文件,配置本项目所需的各种参数。默认的LLM使用的是`ChatGLMLLM` -,你需要配置密钥,因为他们的模型,虽然有免费的,但是仍要去[官网](https://bigmodel.cn/usercenter/proj-mgmt/apikeys)注册密钥,才能启动。 -默认的TTS使用的是`EdgeTTS`,这个无需配置,如果你需要更换成`豆包TTS`,则需要配置密钥。 - -``` -# 如果您是一名开发者,建议阅读以下内容。如果不是开发者,可以忽略这部分内容。 -# 在开发中,在项目根目录创建data目录,将【config.yaml】复制一份,改成【.config.yaml】,放进data目录中 -# 系统会优先读取【data/.config.yaml】文件的配置。 -# 这样做,可以避免在提交代码的时候,错误地提交密钥信息,保护您的密钥安全。 -``` - -配置说明:这里是各个功能使用的默认组件,例如LLM默认使用`ChatGLMLLM`模型。如果需要切换模型,就是改对应的名称。 - -本项目的默认配置仅是成本最低配置(`glm-4-flash`和`EdgeTTS`都是免费的),如果需要更优的更快的搭配,需要自己结合部署环境切换各组件的使用。 - -``` -selected_module: - ASR: FunASR - VAD: SileroVAD - LLM: ChatGLMLLM - TTS: EdgeTTS -``` - -比如修改`LLM`使用的组件,就看本项目支持哪些`LLM` API接口,当前支持的是`openai`、`dify`。欢迎验证和支持更多LLM平台的接口。 -使用时,在`selected_module`修改成对应的如下LLM配置的名称: - -``` -LLM: - DeepSeekLLM: - type: openai - ... - ChatGLMLLM: - type: openai - ... - DifyLLM: - type: dify - ... -``` - -有些服务,比如如果你使用`Dify`、`豆包的TTS`,是需要密钥的,记得在配置文件加上哦! - -### 5.运行项目 - -启动项目 - -``` -# 确保在本项目的根目录下执行 -conda activate xiaozhi-esp32-server -python app.py -``` - -启动后,会看到类似以下日志 - -``` -2025-xx-xx xx:51:59,492 - core.server - INFO - Server is running at ws://192.168.1.25:8000 -2025-xx-xx xx:51:59,516 - websockets.server - INFO - server listening on 0.0.0.0:8000 -``` - -其中上面的`ws://192.168.1.25:8000`就是本项目提供的接口地址了,当然你自己的机器和我的是不一样的,记得要找到自己的地址。 - -请注意,你的接口地址是`websocket`协议的地址,你可以使用`apifox`等工具调试。但是不能直接用浏览器打开访问,如果用浏览器打开,日志会显示错误,会让你怀疑是否部署成功了。 - -# 编译esp32固件 - -1. 下载`xiaozhi-esp32` - 项目,按照这个教程配置项目环境[《Windows搭建 ESP IDF 5.3.2开发环境以及编译小智》](https://icnynnzcwou8.feishu.cn/wiki/JEYDwTTALi5s2zkGlFGcDiRknXf) - -2. 打开`xiaozhi-esp32/main/Kconfig.projbuild`文件,找到`WEBSOCKET_URL`的`default`的内容,把`wss://api.tenclass.net` - 改成你自己的地址,例如,我的接口地址是`ws://192.168.1.25:8000`,就把内容改成这个。 - -修改前: - -``` -config WEBSOCKET_URL - depends on CONNECTION_TYPE_WEBSOCKET - string "Websocket URL" - default "wss://api.tenclass.net/xiaozhi/v1/" - help - Communication with the server through websocket after wake up. -``` - -修改后(示例): - -``` -config WEBSOCKET_URL - depends on CONNECTION_TYPE_WEBSOCKET - string "Websocket URL" - default "ws://192.168.1.25:8000/xiaozhi/v1/" - help - Communication with the server through websocket after wake up. -``` - -注意:你的地址是`ws://`开头,不是`wss://`开头,一定不要写错了。 - -注意:你的地址是`ws://`开头,不是`wss://`开头,一定不要写错了。 - -注意:你的地址是`ws://`开头,不是`wss://`开头,一定不要写错了。 - -3. 设置编译参数 - -``` -# 终端命令行进入xiaozhi-esp32的根目录 -cd xiaozhi-esp32 -# 例如我使用的板子是esp32s3,所以设置编译目标为esp32s3,如果你的板子是其他型号,请替换成对应的型号 -idf.py set-target esp32s3 -# 进入菜单配置 -idf.py menuconfig -``` - -![图片](docs/images/build_setting01.png) - -进入菜单配置后,再进入`Xiaozhi Assistant`,将`CONNECTION_TYPE`设置为`Websocket` -回退到主菜单,再进入`Xiaozhi Assistant`,将`BOARD_TYPE`设置你板子的具体型号 -保存退出,回到终端命令行。 - -![图片](docs/images/build_setting02.png) - -4. 编译固件 - -``` -idf.py build -``` - -5. 打包bin固件 - -``` -cd scripts -python release.py -``` - -编译成功后,会在项目根目录下的`build`目录下生成固件文件`merged-binary.bin`。 -这个`merged-binary.bin`就是要烧录到硬件上的固件文件。 - -注意:如果执行到第二命令后,报了“zip”相关的错误,请忽略这个错误,只要`build`目录下生成固件文件`merged-binary.bin` -,对你没有太大影响,请继续。 - -6. 烧录固件 - 将esp32设备连接电脑,使用chrome浏览器,打开以下网址 - -``` -https://espressif.github.io/esp-launchpad/ -``` - -打开这个教程,[Flash工具/Web端烧录固件(无IDF开发环境)](https://ccnphfhqs21z.feishu.cn/wiki/Zpz4wXBtdimBrLk25WdcXzxcnNS)。 -翻到:`方式二:ESP-Launchpad 浏览器WEB端烧录`,从`3. 烧录固件/下载到开发板`开始,按照教程操作。 - -# 常见问题 - -## 1、TTS 经常失败,经常超时 - -建议:如果`EdgeTTS`经常失败,先检查一下是否用了梯子,如果用了梯子,请把梯子关了试试。 -如果用的是`火山引擎的豆包TTS`经常失败,最好使用付费版本,因为他们的测试版本只有2个并发。 - -## 2、我想通过小智控制电灯、空调、远程开关机等操作。 - -建议:在配置文件里,将`LLM`设置成`DifyLLM`,然后通过`Dify`编排智能体实现。 - -## 3、我说话很慢,我停顿一下,小智老是抢我的话,咋办。 - -建议:在配置文件里,找到这一段,将`min_silence_duration_ms`值改大一点,比如改成`1000`。 - -``` +建议:在配置文件中找到如下部分,将 `min_silence_duration_ms` 的值调大(例如改为 `1000`): +```yaml VAD: SileroVAD: threshold: 0.5 model_dir: models/snakers4_silero-vad - min_silence_duration_ms: 700 # 如果说话停顿比较长,可以把这个值设置大一些 + min_silence_duration_ms: 700 # 如果说话停顿较长,可将此值调大 ``` -## 4、如何才能提高小智对话响应速度? +### 4、如何提高小智对话响应速度? ⚡ -本项目的默认配置,是成本最低的配置。建议刚上手的童鞋,使用默认的免费模型,先解决了“跑得动”的问题,再解决“跑得快”的问题。 -如果要提高响应速度,需要更换各组件来解决。以下是本项目各组件的响应速度测试Tip。 +本项目默认配置为低成本方案,建议初学者先使用默认免费模型,解决“跑得动”的问题,再优化“跑得快”。 +如需提升响应速度,可尝试更换各组件。以下为各组件的响应速度测试数据(仅供参考,不构成承诺): -以下内容和结论仅供参考,不构成任何形式的承诺或保证。 - -### LLM 类组件 +#### LLM 类组件 | 排名 | 组件名称 | 响应速度(ms) | -|:---|:------------|:--------:| -| 1 | AliLLM | 630 | -| 2 | ChatGLMLLM | 2000 | -| 3 | DeepSeekLLM | 6800 | +|:---:|:---------------:|:------------:| +| 1 | AliLLM | 630 | +| 2 | ChatGLMLLM | 2000 | +| 3 | DeepSeekLLM | 6800 | ``` 测试地点:广东省佛山市禅城区 测试时间:2025年2月9日 16:12 宽带运营商:中国移动 -测试方法:更换配置后,执行core/utils/llm.py文件 +测试方法:更换配置后,执行 core/utils/llm.py 文件 ``` -### TTS 类组件 +#### TTS 类组件 | 排名 | 组件名称 | 响应速度(ms) | -|:---|:----------|:--------:| -| 1 | DoubaoTTS | 645 | -| 2 | EdgeTTS | 1019 | +|:---:|:--------------:|:------------:| +| 1 | DoubaoTTS | 645 | +| 2 | EdgeTTS | 1019 | ``` 测试地点:广东省佛山市禅城区 测试时间:2025年2月9日 16:12 宽带运营商:中国移动 -测试方法:更换配置后,执行core/utils/tts.py文件 - +测试方法:更换配置后,执行 core/utils/tts.py 文件 ``` -### 结论 +### 结论 🔍 `2025年2月9日`,如果我的电脑在`广东省佛山市禅城区`,且使用的是`中国移动`网络,我会优先使用: - LLM:`AliLLM` - TTS:`DoubaoTTS` -## 5、更多问题,可联系我们反馈 +### 5、更多问题,可联系我们反馈 💬 ![图片](docs/images/wechat.jpg) -# 鸣谢 +--- -- 本项目受[百聆语音对话机器人](https://github.com/wwbin2017/bailing)项目启发,基于该项目的基础思路完成实现。 -- 感谢[腾讯云](https://cloud.tencent.com/)为本次项目提供免费docker镜像空间。 -- 感谢[十方融海](https://www.tenclass.com/)在小智通讯协议上提供充分的文档支持。 +## 鸣谢 🙏 + +- 本项目受 [百聆语音对话机器人](https://github.com/wwbin2017/bailing) 启发,并在其基础上实现。 +- 感谢 [腾讯云](https://cloud.tencent.com/) 提供免费 Docker 镜像空间。 +- 感谢 [十方融海](https://www.tenclass.com/) 对小智通讯协议提供的详尽文档支持。 diff --git a/docs/Deployment.md b/docs/Deployment.md new file mode 100644 index 00000000..63911b71 --- /dev/null +++ b/docs/Deployment.md @@ -0,0 +1,293 @@ +# 方式一:docker快速部署 + +docker镜像已支持x86架构、arm64架构的CPU,支持在国产操作系统上运行。 + +## 1. 安装docker + +如果您的电脑还没安装docker,可以按照这里的教程安装:[docker安装](https://www.runoob.com/docker/ubuntu-docker-install.html) + +## 2. 创建目录 + +安装完后,你需要为这个项目找一个安放配置文件的目录,我们暂且称它为`项目目录`,这个目录最好是一个新建的空的目录。 + +## 3. 下载配置文件 + +用浏览器打开[这个链接](https://github.com/xinnan-tech/xiaozhi-esp32-server/blob/main/config.yaml)。 + +在页面的右侧找到名称为`RAW`按钮,在`RAW`按钮的旁边,找到下载的图标,点击下载按钮,下载`config.yaml`文件。 把文件下载到你的 +`项目目录`。 + +## 4. 修改配置文件 + +修改刚才你下载的`config.yaml`文件,配置本项目所需的各种参数。默认的LLM使用的是`ChatGLMLLM` +,你需要配置密钥,因为他们的模型,虽然有免费的,但是仍要去[官网](https://bigmodel.cn/usercenter/proj-mgmt/apikeys)注册密钥,才能启动。 + +默认的TTS使用的是`EdgeTTS`,这个无需配置,如果你需要更换成`豆包TTS`,则需要配置密钥。 + +配置说明:这里是各个功能使用的默认组件,例如LLM默认使用`ChatGLMLLM`模型。如果需要切换模型,就是改对应的名称。 + +本项目的默认配置原则是成本最低配置原则(`glm-4-flash`和`EdgeTTS`都是免费的),如果需要更优的更快的搭配,需要自己结合部署环境切换各组件的使用。 + +``` +selected_module: + ASR: FunASR + VAD: SileroVAD + LLM: ChatGLMLLM + TTS: EdgeTTS +``` + +比如修改`LLM`使用的组件,就看本项目支持哪些`LLM` API接口,当前支持的是`openai`、`dify`。欢迎验证和支持更多LLM平台的接口。 + +使用时,在`selected_module`修改成对应的如下LLM配置的名称: + +``` +LLM: + AliLLM: + type: openai + ... + DeepSeekLLM: + type: openai + ... + ChatGLMLLM: + type: openai + ... + DifyLLM: + type: dify + ... +``` + +有些服务,比如如果你使用`Dify`、`豆包的TTS`,是需要密钥的,记得在配置文件加上哦! + +## 5. 执行docker命令 + +打开命令行工具,`cd` 进入到你的`项目目录`,执行以下命令 + +``` +#如果你是linux,执行 +ls +#如果你是windows,执行 +dir +``` + +如果你能看到`config.yaml`文件,确确实实进入到了`项目目录`,接着执行以下命令: + +``` +docker run -d --name xiaozhi-esp32-server --restart always --security-opt seccomp:unconfined -p 8000:8000 -v $(pwd)/config.yaml:/opt/xiaozhi-esp32-server/config.yaml ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest +``` + +如果首次执行,可能需要几分钟时间,你要耐心等待他完成拉取。正常拉取完成后,你可以在命令行执行以下命令查看服务是否启动成功 + +``` +docker ps +``` + +如果你能看到`xiaozhi-server`,说明服务启动成功。那你还可以进一步执行以下命令,查看服务的日志 + +``` +docker logs -f xiaozhi-esp32-server +``` + +如果你能看到,类似以下日志,则是本项目服务启动成功的标志。 + +``` +2025-xx-xx xx:51:59,492 - core.server - INFO - Server is running at ws://xx.xx.xx.xxx:8000 +2025-xx-xx xx:51:59,516 - websockets.server - INFO - server listening on 0.0.0.0:8000 +``` + +接下来,你就可以开始 `编译esp32固件`了,请往下翻,翻到编译`esp32固件`相关章节。那么由于你是用docker部署,你要自己查看自己本机电脑的ip是多少。 +正常来说,假设你的ip是`192.168.1.25`,那么你的接口地址就是:`ws://192.168.1.25:8000`。这个信息很有用的,后面`编译esp32固件` +需要用到。 + +请注意,你的接口地址是`websocket`协议的地址,你可以使用`apifox`等工具调试。但是不能直接用浏览器打开访问,如果用浏览器打开,日志会显示错误,会让你怀疑是否部署成功了。 + +后期如果想升级版本,可以这么操作 + +1、备份好`config.yaml`文件,一些关键的配置到时复制到新的`config.yaml`文件里。 + +2、执行以下命令 + +``` +docker stop xiaozhi-esp32-server +docker rm xiaozhi-esp32-server +docker rmi ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest +``` + +3.按本教程重新来一遍 + +# 方式二:借助docker环境运行部署 + +这个方法的原理,其实是和第一种方式类似。区别在于,第一种方式只要下载一个配置文件,而本方式要下载项目源码。 + +优点就是源码在你主机躺着,你可以使用本机的代码编辑器加载项目和修改源码。每次修改完项目,想要看效果,那就要重启docker。 + +缺点就要下载本项目的代码,还要下载模型文件,如果这个项目不常用,确实会占用您电脑的空间。 + +你先要下载本项目源码,源码可以通过`git clone`命令下载,如果你不熟悉`git clone`命令。 + +你可以用浏览器打开这个地址`https://github.com/xinnan-tech/xiaozhi-esp32-server.git` + +打开完,找到页面中一个绿色的按钮,写着`Code`的按钮,点开它,然后你就看到`Download ZIP`的按钮。 + +点击它,下载本项目源码压缩包。下载到你电脑后,解压它,此时它的名字可能叫`xiaozhi-esp32-server-main` +你需要把它重命名成`xiaozhi-esp32-server`,好了请记住这个目录,我们暂且称它为`项目目录`。 + +下载源码后,需要下载模型文件。 默认使用`SenseVoiceSmall`模型,进行语音转文字。因为模型较大,需要独立下载,下载后把`model.pt` +文件放在`model/SenseVoiceSmall` +目录下。下面两个下载路线任选一个。 + +- 线路一:阿里魔塔下载[SenseVoiceSmall](https://modelscope.cn/models/iic/SenseVoiceSmall/resolve/master/model.pt) +- 线路二:百度网盘下载[SenseVoiceSmall](https://pan.baidu.com/share/init?surl=QlgM58FHhYv1tFnUT_A8Sg&pwd=qvna) 提取码: + `qvna` + +下载模型后,需要按照`方式一:docker快速部署`修改配置文件`config.yaml` + +修改完配置后,打开命令行工具,`cd`进入到你的项目目录下,执行以下命令 + +``` +docker run -d --name xiaozhi-esp32-server --restart always --security-opt seccomp:unconfined \ + -p 8000:8000 \ + -v ./:/opt/xiaozhi-esp32-server \ + ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest +``` + +``` +docker logs -f xiaozhi-esp32-server +``` + +如果你能看到,类似以下日志,则是本项目服务启动成功的标志。 + +``` +2025-xx-xx xx:51:59,492 - core.server - INFO - Server is running at ws://xx.xx.xx.xxx:8000 +2025-xx-xx xx:51:59,516 - websockets.server - INFO - server listening on 0.0.0.0:8000 +``` + +接下来,你就可以开始 `编译esp32固件`了,请往下翻,翻到编译`esp32固件`相关章节。那么由于你是用docker部署,你要自己查看自己本机电脑的ip是多少。 +正常来说,假设你的ip是`192.168.1.25`,那么你的接口地址就是:`ws://192.168.1.25:8000`。这个信息很有用的,后面`编译esp32固件` +需要用到。 + +请注意,你的接口地址是`websocket`协议的地址,你可以使用`apifox`等工具调试。但是不能直接用浏览器打开访问,如果用浏览器打开,日志会显示错误,会让你怀疑是否部署成功了。 + +后期,如果你修改了代码,想让新代码跑起来,可以用以下命令让docker容器重启: + +``` +docker restart xiaozhi-esp32-server +# 查看日志输出 +docker logs -f xiaozhi-esp32-server +``` + +# 方式三:本地源码运行 + +## 1.安装基础环境 + +本项目使用`conda`管理依赖环境,安装好后,开始执行以下命令。 + +``` +conda remove -n xiaozhi-esp32-server --all -y +conda create -n xiaozhi-esp32-server python=3.10 -y +conda activate xiaozhi-esp32-server +``` + +执行以上命令后, 如果你的电脑是Windows或Mac,执行下面的语句: + +``` +conda activate xiaozhi-esp32-server +conda install conda-forge::libopus +conda install conda-forge::ffmpeg +``` + +如果你的电脑是ubuntu,执行下面的语句: + +``` +apt-get install libopus0 ffmpeg +``` + +## 2.安装本项目依赖 + +你先要下载本项目源码,源码可以通过`git clone`命令下载,如果你不熟悉`git clone`命令。 + +你可以用浏览器打开这个地址`https://github.com/xinnan-tech/xiaozhi-esp32-server.git` + +打开完,找到页面中一个绿色的按钮,写着`Code`的按钮,点开它,然后你就看到`Download ZIP`的按钮。 + +点击它,下载本项目源码压缩包。下载到你电脑后,解压它,此时它的名字可能叫`xiaozhi-esp32-server-main` +你需要把它重命名成`xiaozhi-esp32-server`,好了请记住这个目录,我们暂且称它为`项目目录`。 + +``` +# 使用dos或者终端,进入到你的项目目录,执行以下命令 +conda activate xiaozhi-esp32-server +pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ +pip install -r requirements.txt +``` + +## 3.下载语音识别模型 + +默认使用`SenseVoiceSmall`模型,进行语音转文字。因为模型较大,需要独立下载,下载后把`model.pt`文件放在`model/SenseVoiceSmall` +目录下。下面两个下载路线任选一个。 + +- 线路一:阿里魔塔下载[SenseVoiceSmall](https://modelscope.cn/models/iic/SenseVoiceSmall/resolve/master/model.pt) +- 线路二:百度网盘下载[SenseVoiceSmall](https://pan.baidu.com/share/init?surl=QlgM58FHhYv1tFnUT_A8Sg&pwd=qvna) 提取码: + `qvna` + +## 4.配置项目 + +修改`config.yaml`文件,配置本项目所需的各种参数。默认的LLM使用的是`ChatGLMLLM` +,你需要配置密钥,因为他们的模型,虽然有免费的,但是仍要去[官网](https://bigmodel.cn/usercenter/proj-mgmt/apikeys)注册密钥,才能启动。 +默认的TTS使用的是`EdgeTTS`,这个无需配置,如果你需要更换成`豆包TTS`,则需要配置密钥。 + +``` +# 如果您是一名开发者,建议阅读以下内容。如果不是开发者,可以忽略这部分内容。 +# 在开发中,在项目根目录创建data目录,将【config.yaml】复制一份,改成【.config.yaml】,放进data目录中 +# 系统会优先读取【data/.config.yaml】文件的配置。 +# 这样做,可以避免在提交代码的时候,错误地提交密钥信息,保护您的密钥安全。 +``` + +配置说明:这里是各个功能使用的默认组件,例如LLM默认使用`ChatGLMLLM`模型。如果需要切换模型,就是改对应的名称。 + +本项目的默认配置仅是成本最低配置(`glm-4-flash`和`EdgeTTS`都是免费的),如果需要更优的更快的搭配,需要自己结合部署环境切换各组件的使用。 + +``` +selected_module: + ASR: FunASR + VAD: SileroVAD + LLM: ChatGLMLLM + TTS: EdgeTTS +``` + +比如修改`LLM`使用的组件,就看本项目支持哪些`LLM` API接口,当前支持的是`openai`、`dify`。欢迎验证和支持更多LLM平台的接口。 +使用时,在`selected_module`修改成对应的如下LLM配置的名称: + +``` +LLM: + DeepSeekLLM: + type: openai + ... + ChatGLMLLM: + type: openai + ... + DifyLLM: + type: dify + ... +``` + +有些服务,比如如果你使用`Dify`、`豆包的TTS`,是需要密钥的,记得在配置文件加上哦! + +## 5.运行项目 + +启动项目 + +``` +# 确保在本项目的根目录下执行 +conda activate xiaozhi-esp32-server +python app.py +``` + +启动后,会看到类似以下日志 + +``` +2025-xx-xx xx:51:59,492 - core.server - INFO - Server is running at ws://192.168.1.25:8000 +2025-xx-xx xx:51:59,516 - websockets.server - INFO - server listening on 0.0.0.0:8000 +``` + +其中上面的`ws://192.168.1.25:8000`就是本项目提供的接口地址了,当然你自己的机器和我的是不一样的,记得要找到自己的地址。 + +请注意,你的接口地址是`websocket`协议的地址,你可以使用`apifox`等工具调试。但是不能直接用浏览器打开访问,如果用浏览器打开,日志会显示错误,会让你怀疑是否部署成功了。 \ No newline at end of file diff --git a/docs/firmware-build.md b/docs/firmware-build.md new file mode 100644 index 00000000..731372b7 --- /dev/null +++ b/docs/firmware-build.md @@ -0,0 +1,83 @@ +# 编译esp32固件 + +1. 下载`xiaozhi-esp32` + 项目,按照这个教程配置项目环境[《Windows搭建 ESP IDF 5.3.2开发环境以及编译小智》](https://icnynnzcwou8.feishu.cn/wiki/JEYDwTTALi5s2zkGlFGcDiRknXf) + +2. 打开`xiaozhi-esp32/main/Kconfig.projbuild`文件,找到`WEBSOCKET_URL`的`default`的内容,把`wss://api.tenclass.net` + 改成你自己的地址,例如,我的接口地址是`ws://192.168.1.25:8000`,就把内容改成这个。 + +修改前: + +``` +config WEBSOCKET_URL + depends on CONNECTION_TYPE_WEBSOCKET + string "Websocket URL" + default "wss://api.tenclass.net/xiaozhi/v1/" + help + Communication with the server through websocket after wake up. +``` + +修改后(示例): + +``` +config WEBSOCKET_URL + depends on CONNECTION_TYPE_WEBSOCKET + string "Websocket URL" + default "ws://192.168.1.25:8000/xiaozhi/v1/" + help + Communication with the server through websocket after wake up. +``` + +注意:你的地址是`ws://`开头,不是`wss://`开头,一定不要写错了。 + +注意:你的地址是`ws://`开头,不是`wss://`开头,一定不要写错了。 + +注意:你的地址是`ws://`开头,不是`wss://`开头,一定不要写错了。 + +3. 设置编译参数 + +``` +# 终端命令行进入xiaozhi-esp32的根目录 +cd xiaozhi-esp32 +# 例如我使用的板子是esp32s3,所以设置编译目标为esp32s3,如果你的板子是其他型号,请替换成对应的型号 +idf.py set-target esp32s3 +# 进入菜单配置 +idf.py menuconfig +``` + +![图片](images/build_setting01.png) + +进入菜单配置后,再进入`Xiaozhi Assistant`,将`CONNECTION_TYPE`设置为`Websocket` +回退到主菜单,再进入`Xiaozhi Assistant`,将`BOARD_TYPE`设置你板子的具体型号 +保存退出,回到终端命令行。 + +![图片](images/build_setting02.png) + +4. 编译固件 + +``` +idf.py build +``` + +5. 打包bin固件 + +``` +cd scripts +python release.py +``` + +编译成功后,会在项目根目录下的`build`目录下生成固件文件`merged-binary.bin`。 +这个`merged-binary.bin`就是要烧录到硬件上的固件文件。 + +注意:如果执行到第二命令后,报了“zip”相关的错误,请忽略这个错误,只要`build`目录下生成固件文件`merged-binary.bin` +,对你没有太大影响,请继续。 + +6. 烧录固件 + 将esp32设备连接电脑,使用chrome浏览器,打开以下网址 + +``` +https://espressif.github.io/esp-launchpad/ +``` + +打开这个教程,[Flash工具/Web端烧录固件(无IDF开发环境)](https://ccnphfhqs21z.feishu.cn/wiki/Zpz4wXBtdimBrLk25WdcXzxcnNS)。 +翻到:`方式二:ESP-Launchpad 浏览器WEB端烧录`,从`3. 烧录固件/下载到开发板`开始,按照教程操作。 From 36a08adf67b6a03cc75fff42b316c9e8462a7987 Mon Sep 17 00:00:00 2001 From: kalicyh <34980061+kaliCYH@users.noreply.github.com> Date: Sun, 16 Feb 2025 19:32:12 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=93=83=20docs(readme):=20=E8=A1=A5?= =?UTF-8?q?=E5=85=85readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 17 +++++++++++------ docs/firmware-build.md | 6 ++++++ docs/images/vscode_idf.png | Bin 0 -> 152710 bytes 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 docs/images/vscode_idf.png diff --git a/README.md b/README.md index 154f2cba..edd3b6e7 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ 本项目需要配合 ESP32 硬件设备使用。如果您已经购买了 ESP32 相关硬件,且成功对接过虾哥部署的后端服务,并希望独立搭建自己的 `xiaozhi-esp32` 后端服务,那么本项目非常适合您。 +跳转到[使用方式](#使用方式-) + 想看使用效果?请猛戳这个视频 🎥 @@ -81,7 +83,7 @@ server: | LLM | 智谱(ChatGLMLLM) | openai 接口调用 | 消耗 token | 需注册申请 API key,请参考 [BigModel](https://bigmodel.cn/usercenter/proj-mgmt/apikeys) | | LLM | OllamaLLM | ollama 接口调用 | 免费/自定义 | 需预先下载模型(`ollama pull`),服务地址:`http://localhost:11434` | | LLM | DifyLLM | dify 接口调用 | 消耗 token | 本地化部署,注意配置提示词需在 Dify 控制台设置 | -| LLM | GeminiLLM | gemini 接口调用 | 免费 | [申请 API](https://aistudio.google.com/apikey);请遵守使用规定 | +| LLM | GeminiLLM | gemini 接口调用 | 免费 | [点击申请密钥](https://aistudio.google.com/apikey) | | LLM | CozeLLM | coze 接口调用 | 消耗 token | 需提供 bot_id、user_id 及个人令牌 | 实际上,任何支持 openai 接口调用的 LLM 均可接入使用。 @@ -117,20 +119,23 @@ server: --- -## 部署方式 🚀 +## 使用方式 🚀 -[部署文档](./docs/Deployment.md) +### 一、[部署文档](./docs/Deployment.md) 本项目支持以下三种部署方式,您可根据实际需求选择: -1. **Docker 快速部署** +1. **[Docker 快速部署](./docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%B8%80docker%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2)** 适合快速体验,不需过多环境配置。 -2. **借助 Docker 环境运行部署** +2. **[借助 Docker 环境运行部署](./docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%BA%8C%E5%80%9F%E5%8A%A9docker%E7%8E%AF%E5%A2%83%E8%BF%90%E8%A1%8C%E9%83%A8%E7%BD%B2)** 适用于已安装 Docker 且希望对代码进行自定义修改的用户。 -3. **本地源码运行** +3. **[本地源码运行](./docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%B8%89%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E8%BF%90%E8%A1%8C)** 适合熟悉 Conda 环境或希望从零搭建运行环境的用户。 对于对响应速度要求较高的场景,推荐使用本地源码运行方式以降低额外开销。 + +### 二、[固件编译](./docs/firmware-build.md) + --- ## 常见问题 ❓ diff --git a/docs/firmware-build.md b/docs/firmware-build.md index 731372b7..cacfd45f 100644 --- a/docs/firmware-build.md +++ b/docs/firmware-build.md @@ -59,6 +59,12 @@ idf.py menuconfig idf.py build ``` +如果是vscode安装的idf可以使用`F1`或者`ctrl+shift+p`,输入idf然后直接选择进行编译 + +还可以直接进行烧录不用接下来的操作 + + + 5. 打包bin固件 ``` diff --git a/docs/images/vscode_idf.png b/docs/images/vscode_idf.png new file mode 100644 index 0000000000000000000000000000000000000000..f943b71e46ec83084efac621072ce30e9521895c GIT binary patch literal 152710 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

nD`>pDF!tMfHXd*Ek|UPtJRS>zlR$^RxxV+s{D; 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

    k#e9szD62$`h@u&EcKD8)md!| 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 z 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