Skip to content

Commit 4166eff

Browse files
authored
Merge branch 'main' into chore/format-and-lint
2 parents 9ba0b09 + 4a23187 commit 4166eff

File tree

18 files changed

+1781
-20
lines changed

18 files changed

+1781
-20
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
MOSS_LLM_API_KEY=
2+
MOSS_LLM_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
3+
MOSS_LLM_MODEL=volcengine/doubao-seed-1-6-251015
4+
5+
VOLCENGINE_STREAM_TTS_APP=
6+
VOLCENGINE_STREAM_TTS_ACCESS_TOKEN=
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*
2+
!.gitignore

examples/miku/README.md

Lines changed: 42 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,45 @@ Miku 是一个 live2d 数字人躯体, 用来测试 MOSS 架构对躯体的多
55
# 设计思路
66

77
- Body(身体:全身运动)
8-
- Expression(表情)
9-
- Head(头)
10-
- Hair(头发)
11-
- pigtail_L(左辫子)
12-
- pigtail_R(右辫子)
13-
- Face(脸)
14-
- BROW_L(左眉毛)
15-
- BROW_R(右眉毛)
16-
- Eye_L(左眼睛)
17-
- Eye_R(右眼睛)
18-
- Nose(鼻子)
19-
- Mouth(嘴巴)
20-
- Arm_L(左臂)
21-
- Elbow_L(左肘)
22-
- Arm_R(右臂)
23-
- Elbow_R(右肘)
24-
- Tie(领带)
25-
- Leg_L(左腿)
26-
- Leg_R(右腿)
8+
- Expression(表情)
9+
- Head(头)
10+
- Hair(头发)
11+
- pigtail_L(左辫子)
12+
- pigtail_R(右辫子)
13+
- Face(脸)
14+
- BROW_L(左眉毛)
15+
- BROW_R(右眉毛)
16+
- Eye_L(左眼睛)
17+
- Eye_R(右眼睛)
18+
- Nose(鼻子)
19+
- Mouth(嘴巴)
20+
- Arm_L(左臂)
21+
- Elbow_L(左肘)
22+
- Arm_R(右臂)
23+
- Elbow_R(右肘)
24+
- Tie(领带)
25+
- Leg_L(左腿)
26+
- Leg_R(右腿)
27+
28+
# 运行
29+
## 配置环境变量
30+
在项目根目录下创建 `.workspace/.env` 文件,配置环境变量:
31+
32+
```bash
33+
cp .workspace/.env.example .workspace/.env
34+
```
35+
36+
编辑 `.workspace/.env` 文件,填写您的 模型 API 密钥等信息:
37+
38+
```bash
39+
MOSS_LLM_API_KEY=your_api_key_here
40+
MOSS_LLM_BASE_URL=your_llm_base_url_here
41+
MOSS_LLM_MODEL=your_llm_model_here
42+
43+
VOLCENGINE_STREAM_TTS_APP=your_volcengine_stream_tts_app_id_here
44+
VOLCENGINE_STREAM_TTS_ACCESS_TOKEN=your_volcengine_stream_tts_access_token_here
45+
```
46+
## 启动
47+
```bash
48+
python main.py
49+
```

examples/miku/main.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import os
22
import sys
33

4-
from ghoshell_common.contracts import LocalWorkspaceProvider
4+
import dotenv
5+
from ghoshell_common.contracts import LocalWorkspaceProvider, Workspace, WorkspaceConfigs
56

67
from ghoshell_moss.speech import make_baseline_tts_speech
78
from ghoshell_moss.speech.player.pyaudio_player import PyAudioStreamPlayer
@@ -35,6 +36,9 @@
3536
WIDTH = 600
3637
HEIGHT = 800
3738

39+
WORKSPACE_DIR = ".workspace"
40+
dotenv.load_dotenv(f"{WORKSPACE_DIR}/.env")
41+
3842

3943
# 初始化Pygame和Live2D
4044
def init_pygame():

examples/minecraft_bot/.gitignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Python-generated files
2+
__pycache__/
3+
*.py[oc]
4+
build/
5+
dist/
6+
wheels/
7+
*.egg-info
8+
9+
# Virtual environments
10+
.venv
11+
12+
node_modules/
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
MOSS_LLM_API_KEY=
2+
MOSS_LLM_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
3+
MOSS_LLM_MODEL=volcengine/doubao-seed-1-6-251015
4+
5+
VOLCENGINE_STREAM_TTS_APP=
6+
VOLCENGINE_STREAM_TTS_ACCESS_TOKEN=
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*
2+
!.gitignore

examples/minecraft_bot/README.md

Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
# Minecraft Bot 示例
2+
3+
## 项目概述
4+
5+
minecraft_bot 示例提供了一个可对话、可交互的 Minecraft 机器人,用于展示 MOSS 架构在游戏 NPC 应用的前景。
6+
7+
机器人基于开源项目 [mineflayer](https://github.com/PrismarineJS/mineflayer) 构建,这是一个用于控制 Minecraft 机器人的 Node.js 库。通过 Python 的 javascript 库进行桥接,实现了在 Python 中调用 JavaScript 库的功能。
8+
9+
## 功能特性
10+
11+
当前已集成的机器人行为能力包括:
12+
- 🚶‍♂️ **移动控制** - 在游戏世界中自由移动
13+
- 👥 **跟随玩家** - 自动跟随指定玩家
14+
- 🔍 **物品查找** - 寻找游戏中的特定物品
15+
- ⛏️ **资源采集** - 自动采集指定物品
16+
- 💬 **智能对话** - 通过 MOSS 架构实现自然语言交互
17+
18+
## 项目结构
19+
20+
```
21+
minecraft_bot/
22+
├── main.py # 主程序文件
23+
├── package.json # Node.js 依赖配置
24+
├── package-lock.json # 依赖锁定文件
25+
├── server/ # Minecraft 服务器配置
26+
│ └── docker-compose.yml
27+
└── README.md # 项目说明文档
28+
```
29+
30+
# 环境准备
31+
## Minecraft 客户端安装
32+
33+
### 下载 HMCL 启动器
34+
访问 [HMCL 官网](https://hmcl.huangyuhui.net/download/) 下载启动器。
35+
36+
### 安装 Minecraft 1.21.8 版本
37+
1. 启动 HMCL 启动器
38+
2. 点击"安装游戏"
39+
3. 选择 "Minecraft 1.21.8" 版本
40+
4. 点击"安装"完成客户端安装
41+
42+
## 安装 Minecraft Server
43+
44+
### 使用 Docker 启动服务器
45+
```bash
46+
cd server
47+
docker-compose up -d
48+
```
49+
第一次启动容器时会自动下载 Minecraft 1.21.8 版本的服务器文件。
50+
51+
### 检查服务状态
52+
等待服务启动完成,检查端口是否正常监听:
53+
```bash
54+
docker-compose logs -f
55+
```
56+
57+
出现以下日志表示服务启动成功:
58+
```
59+
[03:30:22] [Server thread/INFO]: Done (5.274s)! For help, type "help"
60+
[03:30:22] [Server thread/INFO]: Starting remote control listener
61+
[03:30:22] [Server thread/INFO]: Thread RCON Listener started
62+
[03:30:22] [Server thread/INFO]: RCON running on 0.0.0.0:25575
63+
```
64+
65+
### 配置服务器
66+
服务器启动后,在 `server/data` 目录下会生成配置文件:
67+
- `server.properties` - 服务器主配置文件
68+
- `whitelist.json` - 白名单配置
69+
- ...
70+
71+
**重要配置修改:**
72+
编辑 `server.properties`,将 `online-mode` 设置为 `false`
73+
```properties
74+
online-mode=false
75+
```
76+
77+
编辑 `server.properties`,将 `gamemode` 设置为 `creative`(防止被小怪攻击):
78+
```properties
79+
gamemode=creative
80+
```
81+
82+
修改后重启容器使配置生效:
83+
```bash
84+
docker-compose restart
85+
```
86+
87+
**注意:** 如果不修改此配置,将无法加入本地服务器。
88+
89+
# 使用指南
90+
91+
## 加入服务器
92+
93+
1. **启动 Minecraft 游戏**
94+
2. **选择"多人游戏"**
95+
3. **添加服务器**,地址设置为 `127.0.0.1`
96+
4. **加入服务器**
97+
98+
## 启动机器人
99+
100+
配置环境变量
101+
在项目根目录下创建 `.workspace/.env` 文件,配置环境变量:
102+
103+
```bash
104+
cp .workspace/.env.example .workspace/.env
105+
```
106+
107+
编辑 `.workspace/.env` 文件,填写您的 模型 API 密钥等信息:
108+
109+
```bash
110+
MOSS_LLM_API_KEY=your_api_key_here
111+
MOSS_LLM_BASE_URL=your_llm_base_url_here
112+
MOSS_LLM_MODEL=your_llm_model_here
113+
114+
VOLCENGINE_STREAM_TTS_APP=your_volcengine_stream_tts_app_id_here
115+
VOLCENGINE_STREAM_TTS_ACCESS_TOKEN=your_volcengine_stream_tts_access_token_here
116+
```
117+
118+
在项目根目录下运行以下命令启动机器人:
119+
```bash
120+
python main.py [--speech]
121+
```
122+
第一次执行会自动安装 Node.js 依赖
123+
124+
机器人将自动连接到服务器并出现在游戏中。默认机器人用户名为 `Jarvis`
125+
添加`--speech`会开启语音,需要运行前配置.workspace/.env文件中的tts相关变量
126+
127+
## 交互方式
128+
129+
机器人启动后,您可以通过游戏内的聊天功能(按t)与机器人交互:
130+
- 发送消息给机器人
131+
- 使用指令控制机器人行为
132+
- 机器人会根据 MOSS 架构进行智能响应
133+
134+
# 配置说明
135+
136+
## 修改机器人设置
137+
138+
`main.py` 中可以修改以下配置:
139+
140+
```python
141+
# 服务器配置
142+
BOT_USERNAME = 'Jarvis' # 机器人用户名
143+
HOST = '127.0.0.1' # 服务器地址
144+
PORT = 25565 # 服务器端口
145+
```
146+
147+
## 自定义行为
148+
149+
可以通过修改 `main.py` 中的事件处理函数来自定义机器人行为,例如添加新的移动模式或交互逻辑。
150+
151+
# 故障排除
152+
153+
## 常见问题
154+
155+
1. **无法连接服务器**
156+
- 检查 Docker 容器是否正常运行:`docker-compose ps`
157+
- 确认服务器端口 25565 是否被占用
158+
- 验证 `online-mode=false` 配置是否正确
159+
160+
2. **机器人无法启动**
161+
- 检查 Python 和 Node.js 依赖是否安装完整
162+
- 确认 Minecraft 服务器已启动并运行正常
163+
- 查看控制台错误日志进行排查
164+
165+
3. **机器人无响应**
166+
- 检查网络连接状态
167+
- 确认机器人是否成功连接到服务器
168+
- 验证游戏内聊天功能是否正常
169+
170+
# 技术架构
171+
172+
本项目基于以下技术栈:
173+
- **MOSS 架构** - 提供智能对话和决策能力
174+
- **Mineflayer** - Minecraft 机器人控制库
175+
- **Python-JavaScript 桥接** - 实现跨语言调用
176+
- **Docker** - 容器化部署 Minecraft 服务器

examples/minecraft_bot/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)