用大语言模型玩德州扑克,这个开源项目太酷辣!
今天要给大家介绍一个超有趣的开源项目——Poker LLM,这是一个由大语言模型驱动的AI版德州扑克对战框架。
项目简介
Poker LLM 是一个德州扑克 AI 对战框架,借助大语言模型作为 AI 玩家,模拟了完整的德州扑克游戏流程。游戏涵盖发牌、下注、翻牌、转牌、河牌和摊牌等环节,支持多个 大模型 玩家同时参与,一起来观察大模型与大模型之间的斗智斗勇。
核心亮点
大语言模型驱动决策
每个 AI 玩家都由大语言模型驱动,能够根据当前游戏状态做出决策。在游戏过程中,AI 玩家会结合自身手牌、公共牌、底池金额、其他玩家的行动历史等信息,运用大语言模型进行推理和判断,从而决定是跟注、加注、弃牌还是全押。这不仅增加了游戏的趣味性,还让我们看到了大语言模型在复杂决策场景中的应用潜力。
支持反思学习
游戏结束后,AI 玩家还能进行反思学习。通过对本局游戏的复盘,分析自己的决策是否合理,总结经验教训,以便在后续的游戏中做出更优化的决策。这种学习机制使得 AI 玩家能够不断进化,提升自己的游戏水平。
自定义与扩展性强
该项目支持自定义不同的大语言模型作为 AI 玩家,你可以根据自己的需求选择合适的模型,如 GPT - 3、文心一言等。同时,还可以调整游戏参数,如盲注大小、初始筹码等,满足不同的游戏需求。此外,项目还支持游戏日志记录和回放,方便你回顾游戏过程,分析 AI 玩家的表现。
项目结构
主要文件及功能
main.py:主程序入口,用于配置和启动游戏。你可以在这里设置玩家信息、游戏参数等。game_controller.py:游戏控制器,负责管理多个 AI 玩家之间的对战,协调游戏流程。poker_engine.py:德州扑克游戏引擎,实现了游戏的规则和逻辑,包括发牌、下注、摊牌等操作。ai_player.py:AI 玩家接口和实现,包含基于大语言模型的玩家实现。在这里,你可以看到 AI 玩家如何根据游戏状态进行决策。engine_info.py:游戏基础数据结构,定义了牌、花色、行动类型等基本信息。 -game_info.py:游戏状态信息结构,用于 AI 决策和游戏记录,方便 AI 玩家获取和处理游戏信息。
提示词目录
prompt/目录下包含了用于 AI 决策和反思的提示词模板:decision_prompt.txt:用于 AI 决策的提示词模板,为 AI 玩家提供决策依据。reflect_prompt.txt:用于 AI 反思的提示词模板,帮助 AI 玩家总结游戏经验。reflect_all_prompt.txt:用于 AI 对所有玩家进行反思的提示词模板,促进 AI 玩家对其他玩家的行为分析。
运行步骤
环境要求
- Python 3.10+
- 安装依赖:
pip install -r requirements.txt
配置 API 密钥
在运行前,需要在 main.py 中配置大语言模型的 API 密钥和基础 URL:
players.append(LLMPlayer(name="玩家名称", model_name="模型名称", api_key='YOUR_API_KEY', base_url="YOUR_BASE_URL"))
开始游戏
直接运行 main.py 文件即可开始游戏:
python main.py
你还可以通过修改 main.py 中的参数来调整游戏设置:
start_game(players, hands=10, chips=1000, small_blind=5, big_blind=10)
hands:要进行的手牌数量chips:初始每位玩家筹码数量small_blind:小盲注金额big_blind:大盲注金额
游戏回放
可以使用以下命令可以回访游戏:
python replay_game.py
已知问题与展望
目前项目存在一些已知问题,例如内容输出不够完善,游戏过程中的部分关键信息可能未显示。不过,项目的开发者一直在努力改进和优化,相信在未来这些问题会得到解决。 这个项目为我们展示了大语言模型在游戏领域的创新应用,无论是对于 AI 爱好者还是德州扑克玩家来说,都具有很高的探索价值。如果你对这个项目感兴趣,不妨动手试一试,体验一下大语言模型带来的独特游戏乐趣!
项目链接:poker_LLM
希望大家在探索这个项目的过程中有所收获,也期待更多开发者加入到项目的开发和优化中来!
如果觉得这个项目有趣,欢迎给个 star ⭐️ 支持一下~
运行截图