这个项目提供了一个基于 Python 的 Minecraft Bedrock Edition (MCBE) 服务器端的 WebSocket 服务,它可以获取玩家的聊天信息,并调用 GPT API 实现在游戏内使用chatGPT,最终将 GPT 回复传回到游戏中。项目使用 aiohttp 和 Websockets 异步。
在这里可以看到函数描述文档:函数描述文档
2024/8/16
- 1.更新完整函数描述文档
2024/8/2 (新增)
- 1.新增 function-call 功能(见 function-call 分支)
- 2.循环获取游戏数据,可能会导致服务器卡顿
- 3.function-call 功能需要服务器端支持,目前仅支持服务器端
- 4.function-call 不支持关闭上下文,请手动保存关闭(断开连接也会关闭)
2024/7/31 (新增)
- 1.添加了身份验证功能
- 2.增加了进程守护功能
2024/7/6
- 1.将 api 调用改为非流式传输
- 2.简化了
gptapi.py
的代码逻辑 - 3.更换过期第三方 apikey
目录
- 捕获玩家消息:实时获取玩家在游戏中的聊天信息。
- GPT 回复生成:通过 GPT API 生成回复内容。
- 游戏显示:将 GPT 生成的回复直接发送至 MCBE 中。
- 支持上下文:通过设置
enable_history
为True
来启用会话历史记录。 - 支持多个连接: 每个连接为一个实例,可以多个实例同时连接。
- 身份验证:支持登录验证,防止 API 被滥用。
- 进程守护:使用 daemon.py 实现进程监控和自动重启。
确保你的环境已安装 Python 3.8+。
-
克隆项目:
git clone https://github.com/rice-awa/MCBE_WebSocket_gpt.git cd MCBE_WebSocket_gpt
-
安装依赖:
pip install -r requirements.txt
-
*配置环境变量
请参考 配置指南。
-
运行 WebSocket 服务器:
-
本地测试 修改
main_server.py
中的api_url
和api_key
默认值,然后运行:python main_server.py
-
服务器运行(如果使用 Linux,自带进程守护(daemon.py)) 使用提供的脚本设置服务:
chmod +x setup_service.sh sudo ./setup_service.sh <API_URL> <API_KEY>
这将设置一个系统服务,自动启动并在重启服务器后也可以使用。
-
-
API 设置:
- 本地测试:设置
api_url
和api_key
。 - 服务器:使用
setup_service.sh
脚本设置环境变量API_URL
和API_KEY
。注意:需要把$
删掉,替换\
后面的值即可 - 这里推荐使用第三方转发 key,推荐使用这个 apikey 当然官方 APIKEY 也可以。
- 本地测试:设置
-
身份验证: 设置环境变量
WEBSOCKET_PASSWORD
和SECRET_KEY
。默认密码为 "123456"。 -
服务器设置: 修改
ip
和port
参数。服务器需保持ip
为 "0.0.0.0"。
-
启动服务器: 按照快速开始中的说明运行服务器。
-
使用聊天命令: 聊天输入
GPT 聊天 {内容}
与 GPT 对话。这里注意每个参数需要空格隔开GPT 回复为绿色字体。
GPT 上下文 <状态/启用/关闭>
: 管理上下文GPT 脚本 <内容>
: 使用脚本事件发送数据运行命令 <命令>
: 执行游戏命令
-
保存对话:
- 输入
GPT 保存
来保存对话。 - 保存和关闭会话后,会在根目录生成对话记录和日志。
- 输入
- 保护 API 密钥和身份验证信息。
- 合法使用 API,遵守相关条款和游戏规则。
- 本项目仅供学习和研究使用。
- Fork 仓库
- 创建特性分支 (
git checkout -b feature/fooBar
) - 提交更改 (
git commit -am 'Add some fooBar'
) - 推送至分支 (
git push origin feature/fooBar
) - 创建新的 Pull Request
有问题?联系我。
- 提供详细的安装和配置教程
- 增加身份验证功能
- 实现进程守护
- 增加更多游戏内交互功能
- 优化 API 密钥的安全存储方法
感谢使用!