TextWorld

TextWorld

文本游戏生成与强化学习训练的开源环境

TextWorld是一个开源的文本游戏生成器和可扩展学习环境,专门用于训练和测试强化学习智能体。该项目支持自定义游戏世界、对象和任务,提供类Gym的API接口,便于AI开发。TextWorld集成了可视化工具,兼容Python 3.9至3.12版本,适用于Linux和macOS系统。作为自然语言处理和强化学习的交叉平台,TextWorld为研究人员和开发者提供了独特的实验环境。

TextWorld强化学习文本游戏Python库游戏生成器Github开源项目

TextWorld

PyPI 版本 PyPI - Python 版本 构建状态 文档状态 加入 Gitter 聊天

一个基于文本的游戏生成器和可扩展的沙盒学习环境,用于训练和测试强化学习(RL)代理。更多关于 TextWorld 及其创建者的信息,请访问 aka.ms/textworld。如有问题或反馈,请发送至 textworld@microsoft.com 或使用上面列出的 Gitter 频道。

安装

TextWorld 目前仅支持 LinuxmacOS 系统上的 Python 3.9/3.10/3.11/3.12。对于 Windows 用户,可以使用 Docker 作为临时解决方案(请参阅下方的 Docker 部分)。

要求

TextWorld 需要一些系统库来支持其原生组件。 在基于 Debian/Ubuntu 的系统上,可以通过以下命令安装:

sudo apt update && sudo apt install build-essential libffi-dev python3-dev curl git

在 macOS 上,可以使用:

brew install libffi curl git

注意: 我们建议用户使用虚拟环境,以避免不同项目的 Python 包相互干扰。常见的选择包括 Conda 环境Virtualenv

安装 TextWorld

安装 TextWorld 最简单的方法是通过 pip

pip install textworld

或者,克隆仓库后,进入项目根目录(即 setup.py 所在的目录),运行:

pip install .

可视化

TextWorld 附带了一些用于可视化游戏状态的工具。确保通过运行以下命令安装所有依赖:

pip install textworld[vis]

然后,您需要安装 ChromeFirefox 网页驱动程序(取决于您当前安装的浏览器)。 如果您已经安装了 Chrome,可以使用以下命令安装 chromedriver:

pip install chromedriver_installer

当前的可视化工具包括:textworld.render 中的 take_screenshotvisualizeshow_graph

Docker

DockerHub 上提供了一个包含最新 TextWorld 发布版的 Docker 容器。

docker pull marccote19/textworld
docker run -p 8888:8888 -it --rm marccote19/textworld

然后,在浏览器中导航到终端中显示的 Jupyter notebook 链接。链接应该类似于:

http://127.0.0.1:8888/?token=8d7aaa...e95

注意: 有关故障排除信息,请参阅 docker 文件夹中的 README.md

使用方法

生成游戏

TextWorld 通过 tw-make 脚本提供了一种简单的方法来生成基于文本的游戏。例如:

tw-make custom --world-size 5 --nb-objects 10 --quest-length 5 --seed 1234 --output tw_games/custom_game.z8

其中 custom 表示我们想要使用以下选项自定义游戏:--world-size 控制世界中的房间数量,--nb-objects 控制可以交互的物体数量(不包括门),--quest-length 控制获胜所需输入的最少命令数。完成后,游戏 custom_game.z8 将保存在 tw_games/ 文件夹中。

玩游戏(终端)

要玩游戏,可以使用 tw-play 脚本。例如,玩上一节生成的游戏的命令是:

tw-play tw_games/custom_game.z8

注意: 仅支持 Z-machine 游戏(*.z1 到 .z8)和 Glulx 游戏(.ulx)。

要在游戏过程中可视化游戏状态,请使用 --viewer [port] 选项。

tw-play tw_games/custom_game.z8 --viewer

一个新的浏览器标签页应该会打开并跟踪您在游戏中的进度。

玩游戏(Python + Gym 风格的 API)

以下是如何在 Python 中使用类似 Gym 的 API 与基于文本的游戏进行交互。

import textworld.gym # 将文本游戏注册为新环境 env_id = textworld.gym.register_game("tw_games/custom_game.z8", max_episode_steps=50) env = textworld.gym.make(env_id) # 启动环境 obs, infos = env.reset() # 开始新一轮 env.render() score, moves, done = 0, 0, False while not done: command = input("> ") obs, score, done, infos = env.step(command) env.render() moves += 1 env.close() print("移动次数: {}; 得分: {}".format(moves, score))

注意: 要在没有Gym类API的情况下玩文本游戏,请参阅 使用TextWorld玩文本游戏.ipynb

文档

有关TextWorld的更多信息,请查看文档

Visual Studio Code

你可以安装textworld-vscode扩展,它可以为编辑.twl.twg TextWorld文件启用语法高亮。

笔记本

查看框架提供的笔记本,了解你可以用它做什么。你需要Jupyter Notebook来运行它们。你可以通过以下命令安装:

pip install jupyter

引用TextWorld

如果你使用TextWorld,请引用以下BibTex:

@Article{cote18textworld, author = {Marc-Alexandre C\^ot\'e and \'Akos K\'ad\'ar and Xingdi Yuan and Ben Kybartas and Tavian Barnes and Emery Fine and James Moore and Ruo Yu Tao and Matthew Hausknecht and Layla El Asri and Mahmoud Adada and Wendy Tay and Adam Trischler}, title = {TextWorld: A Learning Environment for Text-based Games}, journal = {CoRR}, volume = {abs/1806.11532}, year = {2018} }

贡献

本项目欢迎贡献和建议。大多数贡献需要你同意贡献者许可协议(CLA),声明你有权利,并且实际上授予我们使用你的贡献的权利。详情请访问 https://cla.microsoft.com

当你提交拉取请求时,CLA-bot将自动确定你是否需要提供CLA,并适当地修饰PR(例如,标签、评论)。只需按照机器人提供的说明操作即可。你只需在所有使用我们CLA的仓库中执行一次此操作。

本项目已采用Microsoft开源行为准则。 有关更多信息,请参阅行为准则常见问题或联系opencode@microsoft.com以获取任何其他问题或意见。

许可证

编辑推荐精选

音述AI

音述AI

全球首个AI音乐社区

音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。

QoderWork

QoderWork

阿里Qoder团队推出的桌面端AI智能体

QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。

lynote.ai

lynote.ai

一站式搞定所有学习需求

不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。

AniShort

AniShort

为AI短剧协作而生

专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。

seedancetwo2.0

seedancetwo2.0

能听懂你表达的视频模型

Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。

nano-banana纳米香蕉中文站

nano-banana纳米香蕉中文站

国内直接访问,限时3折

输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成热门AI工具AI图像AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

下拉加载更多