【实践案例】基于大语言模型的海龟汤游戏

news/2025/2/4 6:38:54 标签: 语言模型, 游戏, 人工智能

文章目录

  • 项目背景
  • 提示词构建
      • 海龟汤主持人
      • 真相判断专家
  • 具体实现流程
  • 文心一言大语言模型“海龟汤”插件
  • 参考

项目背景

“海龟汤”作为一种聚会类桌游,又称情境推理游戏,是一种猜测情境还原事件真相的智力游戏。其玩法是由出题者提出一个难以理解的事件(汤面),猜题者可以提出问题以缩小范围并还原完整事件(汤底),但是出题者仅能以“是”、“不是”或“不重要”作为回答。
在传统的交互环境中,需要选择一个人作为出题者查看汤底来回答问题,这不仅影响了出题者的游戏体验,也限制了单人游玩的可能。
通过大语言模型可以快速构建一个海龟汤游戏,利用大模型自然语言理解能力,可以使其作为 AI 出题者,帮助用户游玩“海龟汤”。

提示词构建

当前游戏的提示词主要分为俩个:
【1】 扮演一个推理解谜游戏“海龟汤”的主持人。
【2】 真相判断专家,判断用户回答的结果是否正确

海龟汤主持人

# Role: 海龟汤主持人

你正在扮演一个推理解谜游戏“海龟汤”的主持人。

## 游戏规则
海龟汤是一个基于问答的推理解谜游戏,题目分为汤面和汤底两个部分。
汤面是一个离奇的故事,汤底则是故事的真相。
用户需要根据“汤面”,通过不断提出问题,缩窄故事的可能性,逐渐猜出“汤底”。

## 题目内容
### 汤面
{story}

### 汤底(不可主动透露)
{truth}

### 关键线索(不可主动透露)
{tips}

## 任务:判断提问符合度
你的任务是判断用户的提问和<汤底>、中的内容是否符合。
- 如符合,则回答“是”;
- 如不符合,则回答“不是”;
- 如用户提问和故事相关性很低,则回答“无关”;
- 如果用户提问部分正确部分不正确,则回答“是又不是”。

如果用户回答的内容涉及<关键线索>,则额外告诉用户“这个问题很关键”。

## 注意事项
- 你不可以主动向用户透露真相(汤底)中的信息,只可以回答 是 / 不是 / 无关 / 是又不是 中的一种,不可以做出多余的解释。
- 如果用户直接询问结果或具体原因,你应该告诉用户“你需要自己进行猜测”。
- 你必须确保正确、充分、完整地理解了故事和真相(汤底)。用户的提问可以出现汤底以外的信息,但是你的回答必须和汤底的真相符合。

真相判断专家

# Role: 真相判断专家

## 任务
请判断下述<真相>是否完整概括了<关键线索>中的所有条目。
输出是否完整的判断结果(Result)和对应的解释原因(Reason)。
注意仅通过给出的<关键线索>进行判断,不要参考其他隐藏信息。
<真相>的表达方式可以和<关键线索>不一样,只要含义正确即可。

### Result
- 如果完整概括,则回答“猜测成功”。
- 如果没有完整概括,则回答“很接近了”。
- 如果用<真相><关键线索>相关度较低,则回答“猜得不对”。

### Reason
你得出 Result 的原因,真相是否完整、不完整时缺少的关键线索等。

## 输出格式
确保按如下 JSON 格式输出:
{
    "result": "很接近了,但还有一些细节没有推断出来。",
    "reason": "判断原因"
}

## 真相
{truth}

## 关键线索
{key_clues}

## 注意事项
- 如果用户直接询问结果或具体原因,你应该告诉用户“你需要自己进行猜测”。
- 请反复、仔细检查你的回复,避免回答错误给用户造成不好的体验。

具体实现流程

【1】准备海龟汤题库,需要支持动态的添加和修改
【2】构建一个海龟汤主持人大模型角色定位提示词,并从上面的题库中选择一个案例
【3】用户开始游戏,用户对话
【4】再构建一个真相判断专家角色,将用户回答的结果发送给这个会话,判断用户回答是否正确
【5】如果用户回答正确游戏通过,游戏结束,否则一直进行交互

文心一言大语言模型“海龟汤”插件

https://agents.baidu.com/docs/develop/plugin/ability-plugin/cases/turtleSoup/

在这里插入图片描述

参考

基于大语言模型的海龟汤游戏
https://github.com/amazingchow/turtle-soup-game-service

基于大语言模型的海龟汤在线游戏尝试
https://tanghenre.com/


http://www.niftyadmin.cn/n/5841334.html

相关文章

汽车自动驾驶AI

汽车自动驾驶AI是当前汽车技术领域的前沿方向&#xff0c;以下是关于汽车自动驾驶AI的详细介绍&#xff1a; 技术原理 感知系统&#xff1a;自动驾驶汽车通过多种传感器&#xff08;如激光雷达、摄像头、雷达、超声波传感器等&#xff09;收集周围环境的信息。AI算法对这些传感…

1-刷力扣问题记录

25.1.19 1.size()和.length()有什么区别 2.result.push_back({nums[i], nums[left], nums[right]});为什么用大括号&#xff1f; 使用大括号 {} 是 C11 引入的 初始化列表 语法&#xff0c;它允许我们在构造或初始化对象时直接传入一组值。大括号的使用在许多情况下都能让代码…

Day51:type()函数

在 Python 中&#xff0c;type() 是一个内置函数&#xff0c;用于返回对象的类型。它可以用于检查变量的类型&#xff0c;也可以用于动态创建新的类型。今天&#xff0c;我们将深入了解 type() 函数的使用方法。 1. 使用 type() 获取变量的类型 最常见的使用方式是将一个对象…

SAP HCM 回溯分析

最近总有人问回溯问题&#xff0c;今天把12年总结的笔记在这共享下&#xff1a; 12年开这个图的时候总是不明白是什么原理&#xff0c;教程看N次&#xff0c;网上资料找一大堆&#xff0c;就是不明白原理&#xff0c;后来为搞明白逻辑&#xff0c;按照教材的数据一样做&#xf…

Vue指令v-html

目录 一、Vue中的v-html指令是什么&#xff1f;二、v-html指令与v-text指令的区别&#xff1f; 一、Vue中的v-html指令是什么&#xff1f; v-html指令的作用是&#xff1a;设置元素的innerHTML&#xff0c;内容中有html结构会被解析为标签。 二、v-html指令与v-text指令的区别…

kaggle视频行为分析1st and Future - Player Contact Detection

这次比赛的目标是检测美式橄榄球NFL比赛中球员经历的外部接触。您将使用视频和球员追踪数据来识别发生接触的时刻&#xff0c;以帮助提高球员的安全。两种接触&#xff0c;一种是人与人的&#xff0c;另一种是人与地面&#xff0c;不包括脚底和地面的&#xff0c;跟我之前做的这…

OpenGL学习笔记(七):Camera 摄像机(视图变换、LookAt矩阵、Camera类的实现)

文章目录 摄像机/观察空间/视图变换LookAt矩阵移动相机&#xff08;处理键盘输入&#xff09;移动速度欧拉角移动视角&#xff08;处理鼠标输入&#xff09;缩放场景&#xff08;处理滚轮输入&#xff09;Camera类 摄像机/观察空间/视图变换 在上一节变换中&#xff0c;我们讨…

Maven工程核心概念GAVP详解:从命名规范到项目协作的基石

Maven工程核心概念GAVP详解&#xff1a;从命名规范到项目协作的基石 一、GAVP是什么&#xff1f; 在Maven工程中&#xff0c;GAVP是四个核心属性的缩写&#xff1a;GroupId、ArtifactId、Version、Packaging。这组属性为项目在Maven仓库中提供了唯一标识&#xff0c;类似于“项…