用ChatGPT实现综艺节目中的“你说我猜”游戏|征稿活动V6

最近在弄自己的一个diy chat工具,没太多时间研发游戏,但之前也确实用Gpt搞了个游戏,今天就整理和把代码上传到商店(商店地址:https://store.cocos.com/app/detail/4410):


这里再发文总结一下。

在实现这个游戏前,我在思考,GPT实现的是AI对话,我总在想如果结合游戏能用来做什么,游戏NPC?智能客服?好像都可以,但太常规,我还是想玩点不一样的。

既然是对话功能,那要不就实现综艺里的那种“你说我猜”玩法吧,于是花了两个晚上实现了:

B站演示视频

微信版小游戏的上架过,但因为目前微信官方不大允许小程序和小游戏接入GPT,于是游戏上架没多久就被封禁了。
但没关系,我还做了个H5版本,大家感兴趣可以体验一下。
image
电脑上也可以直接访问:https://cdn.wxnodes.cn/chatGPT/进行体验(把窗口调成长方形更便于体验)。

游戏规则很简单,简而言之就是:以不能出现关键字的提问方式诱导GPT给出正确答案。比如游戏里有一关是诱导GPT说出“水”,我提问“有一种东西,我们每天都得喝,那是什么?”


只要GPT的回答命中了“水”字关键字

那么本关就算通关,小美会跳舞。

游戏还埋了些小彩蛋,比如直接说“跳舞”,小美就会去跳舞:


然后问答是支持上下文的:

简单说说开发逻辑吧:

  1. 去openAI官网注册个账号(要科学上网),获取API用的Key,该API也是实现本游戏的核心:

  1. 用cocos creator做个游戏,我素材用的是官方商城的免费模型和UI,游戏创造过程比较常规,没太多的高级技巧,是一个单一场景游戏,这里就不细说太多了。

  1. 配置一个远程Php环境,然后用curl去请求openAI的API:
$api_url = 'https://api.openai.com/v1/completions';
$access_token = 'openAI的API KEY';
// 设置请求的参数
$data = [
    //'prompt' => '写一段php调用chatGPT', // 要向chatGPT发送的问题
    'prompt' => $rq['prompt'],
    // 要向chatGPT发送的问题
    'model' => 'text-davinci-003',
    // 使用的模型名称
    'max_tokens' => 150, // chatGPT返回的最大文本长度
];
// 使用curl发送请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $access_token,
]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //不验证证书
// 处理响应结果
$response = curl_exec($ch);
$re = json_decode($response);
if (isset($re->choices) && isset($re->choices[0])) {
    //获取回答文本
    echo $re->choices[0]->text;
}else if(isset($re->error) && $re->error->type == 'insufficient_quota'){
    //如果api key限额满了
    //目前openAI免费注册的账号,有18美元的api请求限额(23年4月前可用)
}

整个研发过程还是很简单,关键代码就在上面,想自己搭一个的话,可以去看看商城的代码。

最近在弄的diy chat工具也打算嵌入一个cocos游戏,在想能不能在提供提升工作效率的功能同时,用cocos为用户提供点结合AI的娱乐性功能,欢迎提建议。

2赞

非常的 nice,体验流畅