ChatArena简介
ChatArena是一个为大型语言模型(LLMs)设计的多智能体语言游戏环境库。它旨在促进自主LLM代理及其社交互动的研究,提供以下主要功能:
- 抽象化: 基于马尔可夫决策过程,提供灵活的框架来定义多个玩家、环境及其之间的交互。
- 语言游戏环境: 提供一系列环境来帮助理解、基准测试或训练代理LLMs。
- 用户友好界面: 提供Web UI和CLI来开发/提示工程您的LLM代理以在环境中行动。
快速入门
安装
ChatArena的安装非常简单,只需要通过pip进行安装即可:
pip install chatarena
如果想使用最新版本,可以从源代码安装:
pip install git+https://github.com/chatarena/chatarena
在线演示
想要快速体验ChatArena的功能,可以尝试以下在线演示:
本地启动演示
如果想在本地运行演示,可以按照以下步骤操作:
-
安装带有gradio依赖的ChatArena:
pip install chatarena[gradio]
-
克隆仓库并进入目录:
git clone https://github.com/chatarena/chatarena.git cd chatarena
-
运行演示应用:
gradio app.py
这将在本地启动一个ChatArena演示服务器,您可以通过浏览器访问(端口8080)。
核心概念
要深入了解ChatArena,以下是一些关键概念:
-
Arena: 封装了一个环境和一组玩家。它驱动游戏的主循环,并提供如webUI、CLI、配置加载和数据存储等HCI实用工具。
-
Environment: 存储游戏状态并执行游戏逻辑以在游戏状态之间进行转换。它还为玩家呈现自然语言的观察结果。
-
Language Backend: 语言智能的来源。它接受文本(或文本集合)作为输入,并返回响应文本。
-
Player: 玩游戏的代理。在RL术语中,它是一个策略,是从观察到行动的无状态函数映射。
环境列表
ChatArena提供了多种预定义的环境,包括:
- Conversation: 模拟多人对话的语言游戏环境。
- Moderator Conversation: 基于对话,但有一个控制游戏动态的主持人。
- Chameleon: 多人社交推理游戏。
- PettingZooChess: 使用PettingZoo国际象棋环境的双人国际象棋游戏环境。
- PettingZoo TicTacToe: 使用PettingZoo井字游戏环境的双人井字游戏环境。
进阶学习资源
贡献指南
ChatArena欢迎社区贡献以改进和扩展项目。如果你想为ChatArena做出贡献,请遵循以下步骤:
- Fork仓库。
- 为你的功能或错误修复创建一个新分支。
- 将你的更改提交到新分支。
- 创建一个描述你的更改的拉取请求。
- 我们将审查你的拉取请求并提供反馈或合并你的更改。
请确保你的代码遵循现有的风格和结构。
联系方式
如果你有任何问题或建议,欢迎在GitHub上提出问题或提交拉取请求。你也可以在Farama Discord服务器上联系我们: https://discord.gg/Vrtdmu9Y8Q
祝你使用ChatArena愉快! 🚀🤖💬