如何在本地部署小智服务器:从源码到全模块运行的详细步骤

article/2025/6/25 22:05:28

小智聊天机器人本地后台服务器源码全模块部署

作者:林甲酸 -不是小女子也不是女汉子 是大女子
更新日期:2025年4月29日

我觉得新的控制台好看耶

🎯 前言:为什么要写这篇教程?

上周按照虾哥小智服务器的教程去部署本地后台,我用的是本地源码运行全模块的方法去部署,虽然照着文字教程去部署了,但是教程一看要安装好多东西啊,我是一个硬件的,对于服务器这块也不熟悉,一路坎坎坷坷,还好借助各类gpt解决了问题。感谢AI工具🙏。如果你也跟我一样看着教程有些下不去手,或许你可以参考我这篇文章开始动手,帮您少走一步弯路。
在这里插入图片描述

本文将用最直白的语言+图解,带你完成全模块部署!
注:部署过程也不是一次就能搞定的,出现问题可以备注交流,文章是经过验证后才写的,如果错误请指正,欢迎交流!


采用本地源码运行全模块的好处是,你可以体验最全的小智大模型各类工具。
声明,本文参考了:
小智源码文档
本地源码运行全模块步骤
小智硬件源码
下面跟着虾哥本地源码运行全模块的流程来吧!

📦 环境总览

组件版本用途
Docker最新版容器化部署数据库
MySQL8.0+数据存储
Redis7.0+缓存服务
JDK21后端运行环境
Python3.10AI模型推理

🔧 一、安装MySQL数据库

1. 先安装Docker

通过docker安转MySQL。这里因为我是没有MySQL,所以我采取了使用Docker安装。我用的Docker是在官方下载的,我并没有按照他上面给的方式去安装,感觉看的不清晰。
(1)安装Docker。我是win11系统,我选择了第3个。
在这里插入图片描述

(2)安装的时候记得要关闭所有杀毒软件!关闭所有防火墙!安装的时候使用管理员运行.exe文件,安装的时候按照默认选择。
在这里插入图片描述

(2)安装好后关闭,然后重新管理员运行打开软件。进入界面时Accept一下条款,然后Skip跳过介绍。

在这里插入图片描述

(3)Docker设置。这一步是在 Docker Desktop 里开启 WSL 2 集成,目的是让 Docker 可以直接在你的 WSL 2(例如 Ubuntu)环境中运行容器。点击设置->Resources->WSL integration,然后打开Ubuntu的按钮,为了让你的 Ubuntu WSL 环境可以直接用 Docker。
在这里插入图片描述

这里我当时安装的时候没有出现Ubuntu的按钮,是因为当时我的系统尚未安装任何WSL 2发行版。如果你没有遇到这个问题可以跳过这里。解决方法:
① 安装WSL 2发行版

wsl --install

②将发行版设置为WSL 2模式

wsl --set-version Ubuntu 2

③验证是否成功

wsl --list --verbose

确认输出中包含Ubuntu且版本为WSL 2。然后在关闭、管理员重启Docker,就可以看到这里有这个Ubuntu选项了。
(4)接下来在Docker Desktop 中设置磁盘镜像存储位置,Docker Desktop 会把所有的数据(包括镜像、容器、卷)存在 C 盘,如果不改路径,时间长了 C 盘可能爆满。因此我选择了D盘,点击Apply&restart。
在这里插入图片描述等待安装好后,管理员打开Docker,这样就安装好这个大部头。

2. 通过docker安转MySQL

安装好 Docker 后,确保Docker打开的状态。你可以通过 命令行终端PowerShell,通过docker安装mysql。

docker run --name xiaozhi-esp32-server-db -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -e MYSQL_DATABASE=xiaozhi_esp32_server -e MYSQL_INITDB_ARGS="--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci" -d mysql:latest

在这里插入图片描述
这个时候你可以看到在Docker中看到当前系统正在运行一个MySQL容器。
在这里插入图片描述

🔧 二、安装redis

如果还没有Redis,你可以通过docker安装redis。

docker run --name xiaozhi-esp32-server-redis -d -p 6379:6379 redis

在这里插入图片描述
回车之后,可以看到redis启动运行。
在这里插入图片描述

🔧 三、运行manager-api程序(后端服务)

1. 安装JDK21

① JDK下载网址:Java 。我是window系統行4位。解压后,可安装到D盘。例如我是安装到 D:\JDK21_0_6下的。
在这里插入图片描述

② 设置JDK的path环境变量。首先是Path环境变量设置。在“系统变量”区域找到并选中 Path,然后点击“编辑”。 在编辑窗口中,点击“新建”,添加以下JDK的安装路径。
在这里插入图片描述

③ 设置JDK的JAVA_HOME 环境变量。在“系统变量”部分点击“新建”, 变量名:JAVA_HOME,变量值:JDK 安装路径。
在这里插入图片描述

④ 可以打开PowerShell,验证 JDK 是否安装成功。

java -version

如果返回类似下面的结果,说明 JDK 已正确安装。

java version "21" 2025-03-21
Java(TM) SE Runtime Environment (build 21+36-2239)
Java HotSpot(TM) 64-Bit Server VM (build 21+36-2239, mixed mode)

2.安装Maven

① Maven 压缩包(下载 Maven 的二进制 zip 文件)。
在这里插入图片描述

②解压 Maven 到 D 盘,例如:D:\Apache\Maven。
在这里插入图片描述
③设置环境变量
• MAVEN_HOME:指向你解压 Maven 的目录(例如:D:\Apache\Maven)。
• Path:将 Maven 的 bin 目录添加到 Path 环境变量中(例如:D:\Apache\Maven\bin)。

3.安装Java环境相关插件

打开 VSCode,安装 Java 插件(例如:Java Extension Pack)。
在这里插入图片描述

4.使用Vscode编程工具加载manager-api模块

首先你需要去下载虾哥源码 。解压后按照虾哥的教程你需要“把它重命名成xiaozhi-esp32-server,我把工程放在了E盘,然后使用VScode打开路径“E:\xiaozhi-esp32-server\main\manager-api”。
①按照虾哥提供的配置,将数据库连接信息填入 :

src/main/resources/application-dev.yml中:
spring:datasource:username: root
password: 123456

② 在src/main/resources/application-dev.yml中配置Redis连接信息。

spring:data:redis:host: localhostport: 6379password:database: 0

在这里插入图片描述

5.运行manager-api程序

一定要确保你的Docker是打开的,这俩是在运行的情况下,再去运行程序。
在这里插入图片描述

当你看到输出日志时,说明你的manager-api启动成功了。
在这里插入图片描述

🔧四、运行manager-web程序(前端控制台)

1. 安装nodejs

(下面的步骤都是按照虾哥的教程来的)
nodejs的安装地址:Node.js — 在任何地方运行 JavaScript

2. 使用Vscode编程工具加载manager-web模块

①终端命令进入manager-web目录下。

npm install

② 启动

npm run serve

在这里插入图片描述

③ 到这一步,运行成功后,打开智控台,链接:http://127.0.0.1:8001,注册第一个用户。第一个用户即是超级管理员,以后的用户都是普通用户。然后在里面配置你的LLM密钥。这一步可以去申请阿里或者智谱的密钥,网上很多,我就不描述了。
在这里插入图片描述

重要:注册成功后,使用超级管理员账号,登录智控台,在顶部菜单找到模型配置,然后在左侧栏点击大语言模型,找到第一条数据智谱AI,点击修改按钮, 弹出修改框后,将你注册到的智谱AI的密钥填写到API密钥中。然后点击保存。然后窗口别关闭了。
注意:采用豆包语音识别请看,没有可跳过这里。你如果使用豆包然后tts报错的话,你应该是voice_type参数出错了。别问我为啥知道…
如果你开通了豆包的语音识别,然后有这些参数
在这里插入图片描述

你可以按照我这个参数去修改豆包的语音合成。
在这里插入图片描述

然后要记得在外面这里音色管理修改参数编码,根据你开通填的音色去修改
在这里插入图片描述

🔧五、安装Python环境

我按照虾哥的教程使用 Conda 创建 Python 环境,这一步是为本地化运行的语音交互、设备通信、AI模型推理等关键功能提供隔离、稳定的Python运行时环境。因此需要先去安装Anaconda。

1. 安装清华镜像源的Anaconda

尽量安装Anaconda3-5.3.0后面的版本,python版本3.6。安装我是安装在D盘的
在这里插入图片描述

2. 通过conda_prompt运行指令

(1) 使用管理员身份运行
在这里插入图片描述

(2)执行命令

conda remove -n xiaozhi-esp32-server --all -y
conda create -n xiaozhi-esp32-server python=3.10 -y
conda activate xiaozhi-esp32-server# 添加清华源通道
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forgeconda install libopus -y
conda install ffmpeg -y

安装libopus可能会出现如下报错:
在这里插入图片描述
你可以尝试:指定conda-forge安装
libopus主要在conda-forge仓库中,可以指定从conda-forge安装:

conda install -c conda-forge libopus -y

上面的命令都要一步一步执行下来。出现问题,及时问AI。
在这里插入图片描述

🔧六、运行源码依赖

1. 安装依赖

# 继续使用conda环境
conda activate xiaozhi-esp32-server
# 进入到你的项目根目录,再进入main/xiaozhi-server
cd main/xiaozhi-server
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip install -r requirements.txt

在这里插入图片描述

🔧七、 下载语音识别模型文件

还是按照虾哥的教程去下载语音识别模块,然后下载后把model.pt文件放在models/SenseVoiceSmall目录下线路 百度网盘下载SenseVoiceSmall 提取码:qvna

🔧八、 配置项目文件

1. 复制server.secret参数

使用 超级管理员账号 登录系统管理后台(智控台),在顶部菜单找到参数管理(参数编码为server.secret),找到列表中第一条数据,参数编码是server.secret,它是随机生成的,每次重新部署都会随机生成,复制它到参数值。
在这里插入图片描述

2. 配置.config.yaml文件

打开整一个源码文件,进入xiaozhi-server目录,检查是否存在data文件夹,如果没有data目录,请手动创建。如果 data 目录下没有 .config.yaml 文件,执行以下操作:
将 xiaozhi-server 目录下的 config_from_api.yaml 复制到 data 目录。重命名复制的文件为 .config.yaml
在这里插入图片描述
将复制的server.secret值粘贴到secret字段中。
在这里插入图片描述

🔧九、 运行xiaozhi-esp32-server项目

1.运行本地服务端

在刚刚安装依赖的环境下继续执行

# 确保在xiaozhi-server目录下执行
conda activate xiaozhi-esp32-server
python app.py

在这里插入图片描述

如果出现上面的结果,表示你的server端已经部署好了。接下来就是跟小智硬件的结合。注意看返回的ws://xxx.xx.xx.xx:8000/xiaozhi/v1/,其中xxx.xx.xx.xx就是你本地的地址,后面都会用到。

2.硬件接口更新

接下来你可以去在智控台更新硬件接口。
①使用超级管理员账号,登录智控台,在顶部菜单找到参数管理,找到参数编码是server.websocket,输入你的Websocket接口。
②使用超级管理员账号,登录智控台,在顶部菜单找到参数管理,找到数编码是server.ota,输入你的OTA接口。
不知道为啥我没找到,所以我通过手动新增了这两个参数
在这里插入图片描述

🔧十、 小智硬件烧录

打开小智的硬件源码程序。

  1. OTA接口更新
http://你电脑局域网的ip:8002/xiaozhi/ota/
  1. Websocket接口更新
ws://你电脑局域网的ip:8000/xiaozhi/v1/

这里我是写在Kconfig.projbuild文件里面,后面配置的时候会根据这个文件去更新。记得保存
在这里插入图片描述

你可以点击下方的设置那里,查看右边配置有没有更新到,没有问题可以下载到小智硬件了。
在这里插入图片描述

硬件烧录成功后,根据屏幕播报的设备码填写到控制台。点击智能体管理,还没新建智能体的话,就新建一个,然后填写设备管理,绑定播报的6位验证码。
在这里插入图片描述

在这里插入图片描述

然后点击硬件重启设备。接下来就是见证奇迹的时候。
在这里插入图片描述

总结:

通过上述步骤,你已经成功在本地部署了小智服务器。无论是后端服务的管理、前端控制台的操作,还是语音交互与硬件控制的集成,都可以在本地环境中完成。这种部署方式给开发者提供了极大的灵活性,同时也帮助你更深入地理解整个系统的工作流程。希望本文能帮助你少走弯路,顺利搭建起属于自己的智能硬件系统。


http://www.hkcw.cn/article/PisCPHxBVF.shtml

相关文章

【Linux实践系列】:进程间通信:万字详解命名管道实现通信

🔥 本文专栏:Linux Linux实践项目 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 与其等待完美的风,不如学会在逆风中调整帆的角度——所有伟大航程都始于此刻出发的勇气 ★★★ 本文前置知…

nginx配置反向代理服务器,实现在https网站中请求http资源

文章目录 一、前言二、Nginx反向代理的工作原理三、Nginx反向代理的主要功能‌四、Nginx反向代理的配置和使用场景五、实战配置5.1 首先,修改宝塔面板配置5.2 接着配置代理服务器5.3 完成上面所有配置后5.4最后还要在原来的index.html文件里添加5.5 或者可以操作服务…

鲲鹏服务器+昇腾卡(Atlas 300I pro)搭建DeepSeek-R1-Distill-Qwen-7B(自己存档详细版)

参考文章:https://modelers.cn/models?namedeepseek&page1&size16 https://www.hiascend.com/software/modelzoo/models/detail/11aa2a48479d4d229a9830b8e41fc011 当前服务器配置为:2 * 鲲鹏920 2 * Atlas 300I pro 系统:open Eul…

Tongweb7049M4有关SSL/TLS 服务器瞬时 Diffie-Hellman 公共密钥过弱的处理方案(by lqw)

前提条件:Tongweb7049M4已在http通道里配置了https(如何配置https可以参考这个帖子:东方通TongWEB添加Https证书,开启SSL) 遇到客户在配置了https后,扫描漏洞提示: 有关SSL/TLS 服务器瞬时 Dif…

[原因和较为完美的解决方法]远程主机可能不符合 glibc 和 libstdc++ Vs code 服务器的先决条件

省流:把vscode降低到1.98版本并关闭自动更新 今天打开vscode,突然发现连接不了本地的虚拟主机ubuntu了,并且报了本文标题所示的错误。 vscode的具体报错如下: 原因是:(从别人的文章摘过来的) 通…

金蝶K3服务器安装与配置方法详细图解手册

金蝶K3服务器安装与配置方法详细图解手册 【下载地址】金蝶K3服务器安装与配置方法详细图解手册 本开源项目提供了一份详尽的《金蝶K3服务器安装与配置方法》图文教程,帮助用户轻松掌握金蝶K3系统的安装与配置。教程涵盖了服务器硬件配置、K3中间件、客户端以及数据…

物理服务器紧急救援:CentOS系统密码重置全流程实战指南

前言 在企业IT运维实践中,物理服务器密码丢失是典型的"低概率高风险"事件。某金融科技公司曾因核心服务器密码遗失导致业务中断36小时,直接损失超过800万元。这起真实案例揭示了系统密码管理的关键性——当承载重要业务的物理服务器遭遇密码丢…

arm内核架构服务器本地离线安装nginx服务

一、下载nginx安装包 nginx下载地址:https://nginx.org/en/download.html 二、解压并编译nginx应用 (1)解压安装包 首先将第一步下载的安装包上传到服务器上,然后执行以下指令: sudo tar -zxvf nginx-1.26.3.tar.gz…

华为RH2288服务器LSISAS2308SAS阵列卡Windows驱动安装指南:快速上手与稳定运行

华为RH2288服务器LSISAS2308SAS阵列卡Windows驱动安装指南:快速上手与稳定运行 【下载地址】华为RH2288服务器LSISAS2308SAS阵列卡Windows驱动安装指南 本开源项目为华为RH2288服务器用户提供了LSISAS2308 SAS阵列卡在Windows系统下的驱动程序及详细安装指南。通过清…

银河麒麟服务器操作系统V10 系统升级操作

原系统版本: Kylin-Server-10-SP1-Release-Build04-20200711-x86_64.iso 更新系统版本: Kylin-Server-V10-SP3-General-Release-2212-X86_64.iso 备注:在系统升级前,如系统有数据的,请务必做好数据备份! 1…

【AI非常道】二零二五年四月,AI非常道

经常在社区看到一些非常有启发或者有收获的话语,但是,往往看过就成为过眼云烟,有时再想去找又找不到。索性,今年开始,看到好的言语,就记录下来,一月一发布,亦供大家参考。 前面的记…

胖东来红内裤案当事人道歉 承认未核实质量问题

5月30日,段某通过其短视频账号“两个小段(小)”发布视频向胖东来道歉,这标志着胖东来“红内裤”事件告一段落。次日,许昌生活广场的胖东来门店内,富妮来的内衣产品仍在销售,但没有该品牌的红内裤。5月28日,河南许昌市魏都区人民法院公开审理了胖东来与段某之间的名誉权…

美15岁女孩练车误踩油门致父亲身亡 悲剧震惊社区

近日,美国洛杉矶一名15岁少女在练车时发生意外,导致指导她学车的父亲当场身亡,她自己也受了伤。据警方透露,5月26日下午接到报案称当地发生了一起车祸。初步调查显示,当时这名少女正在超市上层停车场练车,她的64岁父亲坐在副驾驶座上指导。不幸的是,少女误踩油门,车辆失…

网络犯罪分子利用虚假ChatGPT安装程序实施攻击

网络安全研究人员发现,攻击者正利用OpenAI ChatGPT和InVideo AI等流行人工智能(AI)工具的虚假安装程序作为诱饵,传播包括CyberLock和Lucky_Gh0$t勒索软件家族以及名为Numero的新型恶意软件在内的多种威胁。 恶意软件技术分析 思科Talos研究员Chetan Ra…

vmware虚拟机在物理机重启的情况下经常上不去网的情况处理

vmware虚拟机在物理机重启的情况下经常上不去网的情况处理 现状:物理机 winserver 2019 vmware 15.5 虚拟机是linux 7.2 和 winserver 2019 现象:物理机能正常上网,两个虚拟机不能上网,ping不通任何ip (每次重…

学习LINUX第3天

今日任务: 基本文件属性、文件与目录管理、用户和用户组管理 [rootlocalhost ~]# 分别代表: 1、用户名:root 2、主机名:localhost 3、当前路径:~当前用户的home目录 4、权限源标志位: #代表root&#x…

JavaScript实现备忘录的增删改操作

最终实现目标效果: ​添加任务​:用户输入内容后点击“add”,创建包含任务和操作按钮的新行。每个任务分配唯一index标识(通过flag自增实现)。标记完成/未完成​:点击“mark”切换任务文本的中划线样式和颜…

从认识AI开始-----卷积神经网络(CNN)

前言 在上一篇文章里,我们手写了多层感知机,细心地小伙伴们可能会发现一个问题,对于MLP,有两个突出的问题,尤其是处理图像任务时: 参数太多:例如一个28*28的图像扁平化为784维后,连…

从“固定“到“流动“:移动充电如何重塑用户体验?

在传统充电模式中,"固定"不仅是技术的特征,更成为用户行为的枷锁——人们需要规划行程、寻找插座、等待电量填满,这种被动适配正在被移动充电技术颠覆。当充电设备从墙面解放,化身可携带的能源胶囊,甚至嵌入…

π0基于自己的数据集微调,convert_libero_data_to_lerobot.py 各种报错的解决方法

π0 github地址 在做:π0基于自己的数据集微调 Fine-Tuning Base Models on Your Own Data 的时候遇到各种报错,记录一下。 推荐教程:π0的微调——如何基于各种开源数据集、以及私有数据集微调通用VLA π0(含我司七月的微调实践及在机械臂上…