Skip to content

Commit 2d7d75c

Browse files
authored
Merge pull request #1438 from xinnan-tech/vllm
udpate:添加拍照识物教程
2 parents 48223e4 + 237e88b commit 2d7d75c

File tree

5 files changed

+183
-3
lines changed

5 files changed

+183
-3
lines changed

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,13 +130,18 @@
130130
</a>
131131
</td>
132132
<td>
133-
<a href="https://www.bilibili.com/video/BV1TJ7WzzEo6" target="_blank">
133+
<a href="https://www.bilibili.com/video/BV1Co76z7EvK" target="_blank">
134134
<picture>
135-
<img alt="客户端MCP" src="docs/images/demo11.png" />
135+
<img alt="拍照识物品" src="docs/images/demo12.png" />
136136
</picture>
137137
</a>
138138
</td>
139139
<td>
140+
<a href="https://www.bilibili.com/video/BV1TJ7WzzEo6" target="_blank">
141+
<picture>
142+
<img alt="多指令任务" src="docs/images/demo11.png" />
143+
</picture>
144+
</a>
140145
</td>
141146
<td>
142147
</td>

docs/FAQ.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,11 @@ VAD:
108108
109109
参考教程[阿里云短信集成指南](./ali-sms-integration.md)
110110
111-
### 9、更多问题,可联系我们反馈 💬
111+
### 9、如何开启视觉模型实现拍照识物 📷
112+
113+
参考教程[视觉模型使用指南](./mcp-vision-integration.md)
114+
115+
### 10、更多问题,可联系我们反馈 💬
112116
113117
可以在[issues](https://github.com/xinnan-tech/xiaozhi-esp32-server/issues)提交您的问题。
114118

docs/images/demo11.png

29 KB
Loading

docs/images/demo12.png

361 KB
Loading

docs/mcp-vision-integration.md

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
# 视觉模型使用指南
2+
本教程分为两部分:
3+
- 第一部分:单模块运行xiaozhi-server开启视觉模型
4+
- 第二部分:全模块运行时,如何开启视觉模型
5+
6+
开启视觉模型前,你需要准备三件事:
7+
- 你需要准备一台带摄像头的设备,而且这台设备已经在虾哥仓库里,实现了调用摄像头功能。例如`立创·实战派ESP32-S3开发板`
8+
- 你设备固件的版本升级到1.6.6及以上
9+
- 你已经成功跑通基础对话模块
10+
11+
## 单模块运行xiaozhi-server开启视觉模型
12+
13+
### 第一步确认网络
14+
由于视觉模型会默认启动8003端口。
15+
16+
如果你是docker运行,请确认一下你的`docker-compose.yml`是否放了`8003`端口,如果没有就更新最新的`docker-compose.yml`文件
17+
18+
如果你是源码运行,确认防火墙是否放行`8003`端口
19+
20+
### 第二步选择你的视觉模型
21+
打开你的`data/.config.yaml`文件,设置你的`selected_module.VLLM`设置为某个视觉模型。目前我们已经支持`openai`类型接口的视觉模型。`ChatGLMVLLM`就是其中一款兼容`openai`的模型。
22+
23+
```
24+
selected_module:
25+
VAD: ..
26+
ASR: ..
27+
LLM: ..
28+
VLLM: ChatGLMVLLM
29+
TTS: ..
30+
Memory: ..
31+
Intent: ..
32+
```
33+
34+
假设我们使用`ChatGLMVLLM`作为视觉模型,那我们需要先登录[智谱AI](https://bigmodel.cn/usercenter/proj-mgmt/apikeys)网站,申请密钥。如果你之前已经申请过了密钥,可以复用这个密钥。
35+
36+
在你的配置文件中,增加这个配置,如果已经有了这个配置,就设置好你的api_key。
37+
38+
```
39+
VLLM:
40+
ChatGLMVLLM:
41+
api_key: 你的api_key
42+
```
43+
44+
### 第三步启动xiaozhi-server服务
45+
如果你是源码,就输入命令启动
46+
```
47+
python app.py
48+
```
49+
如果你是docker运行,就重启容器
50+
```
51+
docker restart xiaozhi-esp32-server
52+
```
53+
54+
启动后会输出以下内容的日志。
55+
56+
```
57+
2025-06-01 **** - OTA接口是 http://192.168.4.7:8003/xiaozhi/ota/
58+
2025-06-01 **** - 视觉分析接口是 http://192.168.4.7:8003/mcp/vision/explain
59+
2025-06-01 **** - Websocket地址是 ws://192.168.4.7:8000/xiaozhi/v1/
60+
2025-06-01 **** - =======上面的地址是websocket协议地址,请勿用浏览器访问=======
61+
2025-06-01 **** - 如想测试websocket请用谷歌浏览器打开test目录下的test_page.html
62+
2025-06-01 **** - =============================================================
63+
```
64+
65+
启动后,使用使用浏览器打开日志里`视觉分析接口`连接。看看输出了什么?如果你是linux,没有浏览器,你可以执行这个命令:
66+
```
67+
curl -i 你的视觉分析接口
68+
```
69+
70+
正常来说会这样显示
71+
```
72+
MCP Vision 接口运行正常,视觉解释接口地址是:http://xxxx:8003/mcp/vision/explain
73+
```
74+
75+
请注意,如果你是公网部署,或者docker部署,一定要改一下你的`data/.config.yaml`里这个配置
76+
```
77+
server:
78+
vision_explain: http://你的ip或者域名:端口号/mcp/vision/explain
79+
```
80+
81+
为什么呢?因为视觉解释接口需要下发到设备,如果你的地址是局域网地址,或者是docker内部地址,设备是无法访问的。
82+
83+
假设你的公网地址是`111.111.111.111`,那么`vision_explain`应该这么配
84+
85+
```
86+
server:
87+
vision_explain: http://111.111.111.111:8003/mcp/vision/explain
88+
```
89+
90+
如果你的MCP Vision 接口运行正常,且你也试着用浏览器访问正常打开下发的`视觉解释接口地址`,请继续下一步
91+
92+
### 第四步 设备唤醒开启
93+
94+
对设备说“请打开摄像头,说你你看到了什么”
95+
96+
留意xiaozhi-server的日志输出,看看有没有报错。
97+
98+
99+
## 全模块运行时,如何开启视觉模型
100+
101+
### 第一步 确认网络
102+
由于视觉模型会默认启动8003端口。
103+
104+
如果你是docker运行,请确认一下你的`docker-compose_all.yml`是否映射了`8003`端口,如果没有就更新最新的`docker-compose_all.yml`文件
105+
106+
如果你是源码运行,确认防火墙是否放行`8003`端口
107+
108+
### 第二步 确认你配置文件
109+
110+
打开你的`data/.config.yaml`文件,确认一下你的配置文件的结构,是否和`data/config_from_api.yaml`一样。如果不一样,或缺少某项,请补齐。
111+
112+
### 第三步 配置视觉模型密钥
113+
114+
那我们需要先登录[智谱AI](https://bigmodel.cn/usercenter/proj-mgmt/apikeys)网站,申请密钥。如果你之前已经申请过了密钥,可以复用这个密钥。
115+
116+
登录`智控台`,顶部菜单点击`模型配置`,在左侧栏点击`视觉打语言模型`,找到`VLLM_ChatGLMVLLM`,点击修改按钮,在弹框中,在`API密钥`输入你密钥,点击保存。
117+
118+
保存成功后,去到你需要测试的智能体哪里,点击`配置角色`,在打开的内容里,查看`视觉大语言模型(VLLM)`是否选择了刚才的视觉模型。点击保存。
119+
120+
### 第三步 启动xiaozhi-server模块
121+
如果你是源码,就输入命令启动
122+
```
123+
python app.py
124+
```
125+
如果你是docker运行,就重启容器
126+
```
127+
docker restart xiaozhi-esp32-server
128+
```
129+
130+
启动后会输出以下内容的日志。
131+
132+
```
133+
2025-06-01 **** - 视觉分析接口是 http://192.168.4.7:8003/mcp/vision/explain
134+
2025-06-01 **** - Websocket地址是 ws://192.168.4.7:8000/xiaozhi/v1/
135+
2025-06-01 **** - =======上面的地址是websocket协议地址,请勿用浏览器访问=======
136+
2025-06-01 **** - 如想测试websocket请用谷歌浏览器打开test目录下的test_page.html
137+
2025-06-01 **** - =============================================================
138+
```
139+
140+
启动后,使用使用浏览器打开日志里`视觉分析接口`连接。看看输出了什么?如果你是linux,没有浏览器,你可以执行这个命令:
141+
```
142+
curl -i 你的视觉分析接口
143+
```
144+
145+
正常来说会这样显示
146+
```
147+
MCP Vision 接口运行正常,视觉解释接口地址是:http://xxxx:8003/mcp/vision/explain
148+
```
149+
150+
请注意,如果你是公网部署,或者docker部署,一定要改一下你的`data/.config.yaml`里这个配置
151+
```
152+
server:
153+
vision_explain: http://你的ip或者域名:端口号/mcp/vision/explain
154+
```
155+
156+
为什么呢?因为视觉解释接口需要下发到设备,如果你的地址是局域网地址,或者是docker内部地址,设备是无法访问的。
157+
158+
假设你的公网地址是`111.111.111.111`,那么`vision_explain`应该这么配
159+
160+
```
161+
server:
162+
vision_explain: http://111.111.111.111:8003/mcp/vision/explain
163+
```
164+
165+
如果你的MCP Vision 接口运行正常,且你也试着用浏览器访问正常打开下发的`视觉解释接口地址`,请继续下一步
166+
167+
### 第四步 设备唤醒开启
168+
169+
对设备说“请打开摄像头,说你你看到了什么”
170+
171+
留意xiaozhi-server的日志输出,看看有没有报错。

0 commit comments

Comments
 (0)