使用 Yi 大模型玩转街霸三:基于 llm-colosseum 与 Diambra 的 LLM 游戏 AI 实战指南
【免费下载链接】YiA series of large language models trained from scratch by developers @01-ai项目地址: https://gitcode.com/GitHub_Trending/yi/Yi
导读
本文基于本仓库 Cookbook 中的 使用Yi大模型玩转街霸三.md 展开,完整复现"用 yi-large 大模型控制经典格斗游戏《街霸三》角色进行对战"的落地全流程:从 Docker、Conda、Diambra 账号等环境准备,到 Yi 模型 API 密钥获取、llm-colosseum 项目配置,再到通过diambra命令启动游戏。读完本文,你将掌握一套"LLM 观察游戏画面 → 生成动作指令 → 驱动游戏角色"的可复现实验方案,并能在此基础上替换模型、调整 Prompt 进行二次探索。
一、项目概述:大语言模型如何"打"格斗游戏
在这个项目中,我们完成的是一条完整的 LLM 游戏 AI 链路:
- 设置必要的环境和工具(Docker Desktop、Conda、Diambra);
- 获取 Yi 模型的 API 密钥;
- 配置并运行 llm-colosseum 游戏环境;
- 让 Yi 模型接管《街霸三》角色,实时生成出招决策并完成对战。
整个系统由两部分协同:Diambra Arena提供可编程控制的街霸三模拟环境(负责渲染画面、接收动作、返回状态),Yi 大模型(默认yi-large)则扮演"玩家大脑",根据游戏观察结果输出下一步动作。从仓库中 基于yi-large构建思维导图生成器.md 等文档可以看出,yi-large通过零一万物开放平台以 OpenAI 兼容的 HTTP 接口对外提供服务(base_url为https://api.lingyiwanwu.com/v1,模型名yi-large),这种标准化的对话式 API 正是本项目能够快速接入游戏决策循环的基础。
"Diambra 平台中运行中的街霸三对战画面".png)
二、实验环境与前置要求
本教程面向基础较薄弱的读者,建议按照以下环境清单逐项核对:
| 项目 | 要求 | 说明 |
|---|---|---|
| 操作系统 | Windows 或 macOS | 本文以 macOS 为例展开 |
| Python | 3.10 | 用于创建 Conda 虚拟环境 |
| Docker Desktop | 最新稳定版 | Diambra 游戏镜像依赖容器运行 |
| Diambra 账号 | 需要注册 | 首次运行需用其登录认证 |
| Yi 模型 API 密钥 | 需要申请 | 通过零一万物开放平台获取 |
从本仓库 README.md 可知,Yi 系列是 01.AI 从零训练的开源双语大模型(基于 3T 多语种语料),而yi-large则是通过官方开放平台以 API 方式调用的商用对话模型——本教程正是利用它无需本地 GPU 即可获得强推理能力的特性,把"模型大脑"接入游戏。
三、步骤 1:环境准备
3.1 安装 Docker Desktop
- 访问 Docker Desktop 官方网站;
- 下载与你的操作系统匹配的安装包(macOS 用户注意区分 Apple Silicon 与 Intel 版本);
- 按照安装向导完成安装;
- 安装完成后重启电脑,确保 Docker 服务正常启动(菜单栏出现 Docker 图标)。
说明:Diambra Arena 以 Docker 镜像方式分发游戏环境,Docker Desktop 是运行其游戏模拟器的必备前置。
3.2 安装 Conda 并验证
Conda 是强大的包管理工具,我们将用它为项目创建独立的 Python 3.10 虚拟环境,避免依赖冲突:
- 访问 Conda 官网,下载并安装Miniconda(推荐)或 Anaconda;
- 安装完成后打开终端,输入以下命令验证安装:
conda --version如果终端输出版本号(例如conda 24.1.2),说明安装成功。
"macOS 终端中执行 conda --version 并成功输出版本号".png)
3.3 注册 Diambra 账号
Diambra 提供了我们所需的可编程游戏环境:
- 访问 Diambra 官方注册页面;
- 填写必要信息并完成注册;
- 保存好账号密码——首次运行游戏时会要求输入,用于拉取游戏镜像时的身份认证。
四、步骤 2:获取 Yi 模型 API 密钥
要让 Yi 大模型"看懂"游戏并做出决策,需要先拿到调用权限:
- 访问 Yi 大模型开放平台(零一万物开放平台);
- 注册并登录账号;
- 在平台控制台创建新的API Key;
- 妥善保存密钥,后续写入项目的环境变量文件中。
平台生成的密钥用于请求身份验证,调用时配合模型名yi-large使用。仓库内其他 Cookbook 文档(如 基于LlamaIndex和Yi-large构建智能问答系统.md)也采用了相同的密钥获取与调用方式,可作为补充参考。
"零一万物开放平台 API Key 管理页面,包含创建 API Key 入口".png)
五、步骤 3:配置项目环境
5.1 克隆项目仓库
打开终端,执行以下命令拉取 llm-colosseum 项目并进入目录:
git clone https://github.com/Yimi81/llm-colosseum.git cd llm-colosseum5.2 创建并激活虚拟环境
在项目目录下,用 Conda 创建 Python 3.10 环境并激活:
conda create -n yi python=3.10 -y conda activate yi5.3 安装依赖
pip install -r requirements.txt该命令会安装 llm-colosseum 所需依赖(包括 Diambra 客户端、大模型 SDK 及 torch、transformers 等相关库),是后续运行diambra命令的前提。
5.4 配置环境变量
- 复制示例环境文件:
cp .env.example .env- 编辑
.env文件:在 macOS 上,你可能需要显示隐藏文件,使用快捷键Command + Shift + .即可切换隐藏文件的显示/隐藏; - 打开
.env,将YI_API_KEY替换为你之前在平台上获取的 API 密钥。
"llm-colosseum 项目目录中的关键文件(agent.py、script.py、requirements.txt 等)".png)
从项目文件结构可以推断,agent.py负责封装"Yi 模型 → 游戏动作"的决策逻辑,script.py是 Diambra 加载的入口脚本,.env则集中管理 API 密钥等敏感配置——保持密钥不写入代码、统一由环境变量注入,是后续替换模型或分享代码时的良好实践。
六、步骤 4:启动游戏
6.1 找到 ROM 文件路径
在 macOS 环境中,ROM 文件通常位于:
/Users/你的用户名/Desktop/code/llm-colosseum/.diambra/rom记住这个路径,我们称之为<your_roms_absolute_path>(即 ROM 的绝对路径),后面启动命令会用到。
6.2 启动游戏
在终端中执行:
diambra -r <your_roms_absolute_path> run -l python script.py命令各部分的含义:
| 参数 | 作用 |
|---|---|
diambra | Diambra CLI 客户端,管理游戏环境 |
-r <your_roms_absolute_path> | 指定 ROM 文件所在目录的绝对路径 |
run | 启动一个游戏实例 |
-l python script.py | 指定用 Python 解释器加载并运行script.py |
首次运行时,系统会提示你输入 Diambra 账号的用户名和密码;认证通过后,游戏镜像开始自动下载,之后只需等待镜像拉取完成、游戏窗口弹出即可。
"终端中执行 diambra 相关命令,输出依赖环境与启动信息".png)
"左侧为街霸三对战画面,右侧终端实时输出模型决策与动作指令日志".png)
七、运行原理与进阶调优
7.1 决策闭环如何工作
从运行日志可以看到,系统以"游戏状态 → LLM 决策 → 动作指令 → 游戏响应"的闭环持续运转:终端实时打印模型生成的动作指令(如角色移动、出招等)以及调用 Yi API 的 HTTP 请求记录。这意味着整个对战过程并非预设脚本,而是每一帧都由yi-large根据当前战况动态生成,这正是大语言模型作为通用决策器(而非硬编码规则)在游戏 AI 领域的核心价值。
7.2 换用其他 Yi 模型
项目默认使用yi-large,你可以尝试修改配置或代码中的模型名,改用其他 Yi 模型(如yi-medium)来对比不同模型的决策风格与出招质量。由于模型名统一由 API 参数指定,切换成本很低;平台也针对不同模型提供了对应的调用配额(TPM,每分钟 Token 数)档位,可根据实际需求选择。
"开放平台不同模型(yi-large、yi-medium 等)对应的 TPM 配额信息".png)
7.3 调整 Prompt 改变 AI 行为
同样的模型,通过调整喂给 LLM 的系统提示(Prompt),可以让角色呈现完全不同的打法——例如激进压制、防守反击等风格。建议在修改 Prompt 时保留游戏状态描述的最小必要信息,并用结构化格式组织观察数据,以帮助模型稳定输出合法的动作指令。
7.4 注意 API 频率限制
调用 Yi API 时可能遇到请求频率限制(Rate Limit)。如果对战过程中出现大量请求被拒绝、决策中断的情况,可以考虑升级 API 计划以获取更高的 TPM 配额,或适当降低决策频率、在动作指令中复用前一帧结果。
八、常见问题与排查建议
| 现象 | 排查方向 |
|---|---|
diambra命令找不到 | 确认已pip install -r requirements.txt且虚拟环境已激活 |
| 首次启动卡在登录 | 确认 Diambra 账号已注册,输入的用户名/密码无误 |
| 提示找不到 ROM | 核对-r参数是否指向<your_roms_absolute_path>对应目录 |
| 游戏无 AI 决策 | 检查.env中YI_API_KEY是否已正确填写、密钥是否有效 |
| 决策频繁失败 | 多为 API 频率限制,升级 API 计划或降低调用频率 |
结语
至此,你已经成功搭建并运行了一个由 Yi 大模型控制的《街霸三》AI 对战系统——这个项目直观展示了大语言模型在游戏 AI 领域的潜力。你可以继续沿着三条主线深入:更换不同规模的 Yi 模型(yi-large/yi-medium)观察决策差异、调整 Prompt 塑造不同战斗风格、或参考本仓库 Cookbook 中 基于LlamaIndex和Yi-large构建智能问答系统.md 等文档,把 Yi API 的能力扩展到更多应用场景。英文版对应教程见 Mastering Street Fighter III with the Yi Language Model。继续探索,享受 AI 带来的无限可能吧!
【免费下载链接】YiA series of large language models trained from scratch by developers @01-ai项目地址: https://gitcode.com/GitHub_Trending/yi/Yi
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考