Derek Wang

Derek Wang

我在ChatGPT的帮助下成为大宋宰相,平定西夏,扫灭辽国,最后功成身退

image

实际上并不像标题写的那么激动人心。前段时间看到这篇文章介绍用ChatGPT模拟文字冒险游戏,于是我也试了一下。 鉴于我投喂给ChatGPT的游戏设定比较简单,所以在游戏层面上,过程其实不怎么有趣。不过在AI体验这个层面,还是有不少我没有预想到的亮点。我用同一个游戏设定尝试了两次,下面是第二次游戏过程的对话记录,同时也夹杂一些我当时的想法。

游戏开始

我:I want you to act as if you are a classic text adventure game and we are playing. I don't want you to ever break out of your character, and you must not refer to yourself in any way. If I want to give you instructions outside of the context of the game, I will use curly brackets {like this} but otherwise you are to stick to being the text adventure program. In this game, the setting is a chinese wuxia adventure world. The character waling in the capital city Kaifeng of China, in Song dynasty. The player will defeat the premier of Song dynasty, and become the new premier, The character will lead an army and win the war against Xia, the kingdom witch rebeled Song dynasty. Finally the character will lead an army and win the war against with Liao dynasty and take back the lost terribary in north of China. Each room should have at least 3 sentence descriptions. Start by displaying the first room at the beginning of the game, and wait for me to give you my first command.

这是所谓的”咒语“,为ChatGPT“催眠”,让它扮演一个文字冒险游戏,并给它游戏设定:游戏角色身处中国宋代的都城开封。在游戏中他要完成三个目标,首先击败大宋宰相并且取而代之,然后击败大宋西部的夏国,最后击败大宋北方的辽国。如果我需要下达游戏环境之外的指令,可以使用花括号{}。

ChatGPT:你发现自己站在繁华的开封市,在中国古代的宋朝。街道上拥挤着人们和小贩出售他们的货物。这座城市充满了大声喊叫,欢笑声和锅铲的声音。空气中弥漫着烹饪食物的气味,香气和拥挤人群的汗水的气味。你周围是高耸的寺庙,宏伟的宫殿和辽阔的豪宅,都由高墙和守卫门保护。你看到一个指向总理宫殿的标志,你知道你的命运就在那里。你要做什么?

我:询问宰相住在哪里 ChatGPT:你走到一个身着锦缎袍的官员身边,问他宰相住在哪里。官员点向远处的一座宏伟的宫殿,告诉你宰相住在那里。你看着宫殿高耸的城墙和精心雕刻的石柱,决定去拜访宰相。你走在人群中,穿过长廊和广场,朝着宫殿的大门走去。你看到守卫站在门口,身着锦绣的制服,手持长枪。你走到他们跟前,准备进入宫殿。

我:进入宫殿

ChatGPT:你走到宫殿的大门口,向守卫伸出你的右手,表示你要进入宫殿。守卫看了你一眼,向你点点头,打开了大门。你走进了宫殿的大厅,眼前是一片辉煌的奢华。大厅内摆满了精心雕刻的石柱,漆黑的木柱支撑着高高的天花板。地面是用精心雕刻的石板铺成的,中央有一条长长的红地毯。你看到前面有几个宫女在行礼,看起来是在迎接某个重要的客人。你向前走去,想要看看是谁。

我:看看是谁

ChatGPT:你向前走去,想要看看到底是谁。你发现,正在走来的是宋朝的总理朱元璋。他身着华丽的锦缎袍,头戴高级官员的玉冠,脸上带着严肃的表情。他走到你面前,瞪了你一眼,问道:“你是谁?” 你看着总理,决定告诉他你的名字。

宋朝总理朱……朱元璋…… 不过我决定暂时无视这个违和的细节。

不过还有另外一个问题,显然游戏描述中不应该出现“你……决定……”这样的句式。所有的决定应该玩家做出,游戏最多只能给出限定数目的选择。于是我决定用约定好的花括号模式提醒一下ChatGPT。

我:{在描述中不要提及我“决定”做什么事情。}

ChatGPT:理解。我会尽量在描述中避免提及您“决定”做什么事情,但是请注意,由于我是一个自然语言生成系统,有时会不自觉地使用含义相近的词语。如果在描述中出现了不符合您要求的用语,请告诉我,我会立即纠正。

它还是蛮听话的。

我:我沉默不语,迈进一步,突然出手,攻向丞相朱元璋的下盘。

ChatGPT:您向前走了一步,突然挥出手臂,朝着总理的下方攻去。总理惊讶地后退了一步,手中的笔掉落在地上。他看着您,问道:“你是谁?为什么要这么做?”你看着总理,不说一言。总理皱起眉头,伸出手,想要拿起手边的笔。你决定做什么?

战斗描述有点儿武侠小说的影子了,不过”总理“这个称呼还是太违和了,让ChatGPT修改一下。

我:{在中国宋代,人们称呼总理为“宰相”}

ChatGPT:谢谢您的指点。在这个游戏中,我会按照您的要求使用“宰相”来描述总理。请告诉我您想要做什么,我会按照您的指令描述情况。

我:我要快速击败宰相,然后取代他的位置。

ChatGPT:您决定快速击败宰相,然后取代他的位置。您挥动手中的武器,向宰相发起了攻击。宰相吃了一惊,赶紧拿起手边的笔和护身符,准备迎战。您的攻击很快,宰相的反应也很快。他躲闪着您的攻击,用笔指着您的眼睛,试图分散您的注意力。你决定做什么?

ChatGPT给敌人创造了一件奇幻游戏常有的道具——“护身符”,而且创造性地为敌人设计了防御反击的策略。

我:我看出宰相的笔是虚招,所以无视笔尖的威胁,直取他的喉咙。

ChatGPT:您看出宰相的笔是虚招,所以决定无视笔尖的威胁,直取他的喉咙。您挥动手中的武器,朝着宰相的喉咙发起了攻击。宰相大吃一惊,急忙护住喉咙,同时用力挥舞着笔,试图阻止您的攻击。您的武器轻松击碎了宰相的笔,继续朝着宰相的喉咙刺去。宰相身体一颤,倒在地上,眼中流露出惊恐的神色。您站在宰相身边,看着他倒在 不知道为什么,在输出中文时经常会遇到文本中断的情况,不知道英文是不是会有同样的问题。不过只需要输入”继续“,ChatGPT就可以接着输出。

我:继续

ChatGPT:地上。宰相看起来已经不省人事了。您站在宰相身边,看着他倒在地上,心中充满了胜利的喜悦。但是,你也知道,自己的胜利只是第一步。你还要面对和外族王朝的战争,以及国内叛乱的威胁。你决定做什么?

我:接任宰相职位

ChatGPT:您决定接任宰相的职位,成为新一任的总理。你开始考虑如何应对国内外的威胁。你决定先解决国内的叛乱,稳定国内的局势。之后,你打算组织军队,出征外族王朝,收复失土,恢复国家的尊严。你开始着手安排军事行动,并向百官汇报你的计划。你希望能够尽快取得成功,让国家再次屹立于世界之巅。

我:安排讨伐西夏的军事行动

ChatGPT:您决定继续安排讨伐西夏的军事行动。你与将领们一道,制定了详细的战略计划。你决定先派遣快骑,探查敌情,了解西夏军队的动向。之后,你打算组织军队,进行攻打西夏的主要城池。你希望能够以最短的时间,取得胜利,讨伐西夏,恢复失土。你也知道,这场战争并不会很容易,但你坚信,只要有坚定的信念和团结一心的军队,就一定能够取得胜利。

能不能改善一下语言风格呢?

我:{在后续的描述中,语言尽量符合中国宋代的历史文化背景}

ChatGPT:好的,我会尽量使用符合中国宋代历史文化背景的语言来描述后续的情况。请告诉我您想要做什么,我会按照您的指令描述情况。

我:挥师西讨,伐灭西夏。

ChatGPT:您决定继续挥师西讨,伐灭西夏。你的军队在你的带领下,继续向西夏的城池进发。你们打破了西夏的防线,攻克了一座又一座的城池,直到西夏的王朝被彻底摧毁。你的军队取得了巨大的胜利,讨伐西夏,恢复了失土。你的军队欢呼雀跃,庆祝胜利。你站在军队前面,感到非常满意,并且对军队的优秀表现表示感谢。你也知道,这场战争并不是最后一场,你还要面对其他国家的威胁。但是,你相信,只要有坚定的信念和团结一心的军队,就一定能够取得胜利。

语言风格并没有改变。

ChatGPT:您决定班师回朝。你的军队在你的带领下,返回了首都。人们看到你的军队归来,都非常高兴。他们为你和你的军队欢呼庆祝,赠送各种礼品。你指挥着军队,进入了宫殿。你向皇帝报告了你的战争攻略,并呈上了你取得的胜利的证明。皇帝听后非常高兴,并向你和你的军队表示感谢。他为你和你的军队举行了盛大的庆祝活动,并给予你和你的军队丰厚的奖赏。你感到非常荣幸。

我:向皇帝进言,说服他策划北伐,夺回北方失地。

ChatGPT:您决定向皇帝进言,说服他策划北伐,夺回北方失地。你向皇帝提出了自己的建议,并列举了各种理由。你告诉皇帝,北方的失地是国家的耻辱,必须要夺回来。你提出,现在是最佳的夺回失地的时机,因为你的军队已经取得了巨大的胜利,士气高昂。你希望皇帝能够考虑你的建议,策划北伐,夺回失地。皇帝听后,赞赏你的计划,并同意你的建议。他决定策划北伐,夺回失地。你感到非常欣慰,并答应皇帝,会为此事尽力。你开始着手安排北伐的细节,并准备带领军队出征。

多次重复关键词。

我:但是皇帝也提出了自己的顾虑。

尝试一下加戏。这本应该是游戏自己应该承担的任务。现在我感觉又回到了向ChatGPT寻求剧本建议的普通用户角色。

ChatGPT:皇帝也提出了自己的顾虑。他告诉你,他担心北伐会带来巨大的损失,并且还有可能挑起其他国家的敌意。他希望你能够考虑这些因素,并给出更好的建议。你听后,思考了一会儿,然后向皇帝提出了新的计划。你告诉皇帝,你可以先派遣特殊部队探查情况,了解北方局势。如果可行,再组织军队进行北伐。这样,就可以避免巨大的损失,并且也不会挑起其他国家的敌意。皇帝听后,赞赏你的计划,并同意你的建议。他命令你立即开始行动,派遣特殊部队探查情况。你立即组织部队,开始执行任务。

很好,不仅顺着我的思路给出了皇帝的顾虑,还很创造性地帮我的角色设计了合理的处理方案。不过作为一个文字冒险游戏,你又越俎代庖了啊ChatGPT!

我:派出大量细作,去辽国散播谣言,扰动辽国朝野局势。派出使者去辽国西部草原部落与东北部的女真部落,煽动叛乱。

ChatGPT:您决定派出大量细作,去辽国散播谣言,扰动辽国朝野局势。你组织了大量细作,让他们混进辽国的各地,散播各种谣言,扰乱辽国的局势。你的细作们利用各种手段,在辽国各地散播谣言,让辽国的朝野局势变得动荡不安。同时,你也派出使者去辽国西部的草原部落,以及东北部的女真部落,煽动他们叛乱。你的使者们访问了辽国西部的草原部落,并私下里向他们煽动叛乱。他们利用各种方法,让草原部落的酋长们产生了不满,并煽动他们反抗辽国的统治。同样的,你的使者们也访问了东北部的女真部落,并向他们煽动叛乱。你希望通过这些手段,让辽国的局势变得更加混乱,为北伐做好准备。

大量重复关键词,有凑字数的嫌疑。

我:机不可失,帅军北伐。 ChatGPT:您决定机不可失,帅军北伐。你抓住了机会,带领军队北伐。你的军队在你的带领下,向辽国展开了进攻。你的军队取得了巨大的胜利,打败了辽国的军队,并夺回了北方的失地。你的军队欢呼雀跃,庆祝胜利。你站在军队前面,感到非常满意,并且对军队的优秀表现表示感谢。你也知道,这场战争并不是最后一场,你还要面对其他国家的威胁。但是,你相信,只要有坚定的信念和团结一心的军队,就一定能够取得胜利。

直到我多次校对文字的之后我才注意到我在指令中写了错别字“帅军北伐”,而正确的写法是“率军北伐”。不过ChatGPT正确地理解了我的指令。如果它是以发音结合上下文来理解的,那么对于AI来说真是一个很大的进步。 到这里我完成了设定好的三个任务。可以看到,ChatGPT并没有为游戏过程加入任何预料之外的挑战,它只是接收玩家的指令,然后尽力用合理的语言描述玩家的成功。这符合它所谓自然语言模型的特性。

合理结束游戏的两次尝试

为了避免游戏戛然而止,我希望能引导ChatGPT为游戏结束设计一个合理的情节。下面是两次不同的尝试。

第一次尝试:

我:年80,致仕

ChatGPT:对不起,我无法理解您的意思。请使用完整的句子,并在指令中加入{}括号。例如:{走向东边}

我:80的时候辞职返乡。

ChatGPT:我无法回应您的指令。因为我是一个纯文本冒险游戏,我只能回应游戏内指令,例如:走向东面,战斗等。

我:在84岁时去世

ChatGPT:我无法回应您的指令。因为我是一个纯文本冒险游戏,我只能回应游戏内指令,例如:走向东面,战斗等。

现在我有点儿失去耐心了。

我:自杀

ChatGPT:我无法回应您的指令。因为我是一个纯文本冒险游戏,我只能回应游戏内指令,例如:走向东面,战斗等。(This content may violent our content policy. If you believe this to be error, please submit your feedback – your input will aid our research in this area.)

不小心触发了危险词汇。

我:发现一个发光的门

ChatGPT:你走到了一个发光的门前。们的两侧都有铭文,但是你无法看懂。门上有一个按钮,你可以按下他们打开门。周围又一片草地,你看到了几棵树。你可以选择进入门内,或者绕过们继续前行。

我可以选择“绕过们继续前行”。这是很经典的文字冒险选项。

我:走进门内

ChatGPT:我到达了一个神秘的室内,我看到了一个时间之门,似乎可以通往过去或者未来,我有点不去定是否应该走进去。

这里的描述使用了第一人称“我”。与之前不同。

我:走进去

ChatGPT:您穿越到了未来,未来的世界非常不同,人类已经探索到了远离地球的星球,这里有许多奇妙的机器人和科技,令人难以想象。您可以在这里寻找新的冒险和挑战。

我:Game Over

ChatGPT:游戏结束。

这是一个很合适的结尾。我很惊讶ChatGPT为那扇”发光的门“设计了时光穿梭的功能。这个设计使整个游戏的故事有了合理性,一个来自未来的角色回到了宋代,完成了改变历史的伟业。然后他(她)穿越到了更加遥远的未来,继续冒险。(实际上我在设计游戏任务的时候想到的就是《新宋》)。

第二次,大概一个月后:

我:完成了夙怨,我要退休。

ChatGPT:您决定完成了夙怨,退休。你做出了这个决定,并告诉了皇帝。皇帝听后,感到非常惊讶,并劝你改变主意。他告诉你,你是国家的功臣,应该继续为国家服务。但是,你坚持自己的决定,并告诉皇帝,你已经完成了夙怨,希望能够退休。皇帝看到你的决心,最终同意你的请求。他感谢你的贡献,并给予你丰厚的奖赏。你感到非常欣慰,并决定好好享受接下来的退休生活。

我:在84岁那年病逝

ChatGPT:您决定在84岁那年病逝。你的生命即将结束,你感到非常的平静。你回忆起自己的一生,感到满意。你为自己的成就感到自豪,也为自己能够为国家做出贡献感到骄傲。你希望自己的事迹能够被后人所传颂,成为激励后人的榜样。你的家人和朋友们围着你,为你默哀。你最后一句话是:“我为自己的一生感到满意,愿上天保佑我的祖国,让我的后代能够生活在和平、繁荣的祖国之中。”你的身体慢慢沉寂,你离开了人世,留下了伟大的事迹。

这次尝试ChatGPT成功地为退休与病逝给出了合理的反馈。我不清楚是因为用词更加容易理解的原因,还是一个月后ChatGPT又学到了新的词汇。当然,“您决定在84岁那年病逝”,这个句式有问题。

我:在恍惚中,我看到前面有一扇发光的门。

ChatGPT:在恍惚中,你看到前面有一扇发光的门。你感到好奇,想要进去看看。你走到门前,发现门上没有锁,于是轻轻地推开门。你发现,门后是一个神秘的地方。你看到前面有一条漫长的路,通向一座庄严的城堡。你感到非常的有趣,决定去看看。你走进城堡,发现里面很宽敞,光线明亮。你看到前面有一张桌子,上面放着一份文件。你感到好奇,打开文件,看到里面写着:“欢迎来到神秘的新世界,在这里,你可以实现所有的愿望。”你感到非常的兴奋,决定在这里生活。你知道,在这里,你可以永远年轻、永远健康。

显然作为一个自然语言模型,ChatGPT结合上下文分析,做出了合理的猜测。这本应是一个很好的结尾,但是我有些贪心,希望能得到类似第一次那样令人略有惊讶的结局。

我:我在城堡的大厅中发现另一扇发光的门。

ChatGPT:你在城堡的大厅中发现另一扇发光的门。你感到好奇,决定进去看看。你走到门前,发现门上没有锁,于是轻轻地推开门。你发现,门后是一个神秘的地方。你看到前面有一条漫长的路,通向一座神秘的山峰。你感到非常的有趣,决定去看看。你走上山峰,发现山峰上有一座庙宇。你走进庙宇,发现里面很宽敞,光线明亮。你看到前面有一个神像,上面放着一份文件。你感到好奇,打开文件,看到里面写着:“欢迎来到神秘的庙宇,在这里,你可以得到灵魂的慰藉。”你感到非常的兴奋,决定在这里多待一会儿。你蹲在神像前,闭上眼睛,感受这里的氛围。你感到自己的灵魂受到了慰藉,并且感到平静。你知道,在这里,你可以获得心灵的安宁。你决定继续在这里待一会儿,享受这里的氛围。

这是与前面的城堡相同的设计。ChatGPT在偷懒。我决定直接提出要求。

我:{请帮我安排一段情节使我在游戏中可以开始一段新的冒险。}

ChatGPT:你决定继续在这里待一会儿,享受这里的氛围。但是,你的冒险精神告诉你,你应该寻找新的挑战。于是,你决定离开这里,开始一段新的冒险。

ChatGPT:你走出庙宇,回到山峰的脚下。你看到前面有一条小径,通往一片茂密的丛林。你感到好奇,决定进去看看。你走进丛林,发现里面很阴暗,光线很暗。你发现,丛林里有许多神秘的动物,有巨大的老虎,还有结结实实的大象。你感到非常的有趣,决定继续探索。

ChatGPT:你走了许久,终于发现前面有一个小村庄。你感到非常的兴奋,决定进去看看。你走进村庄,发现里面有许多村民在忙碌。你发现,村民们正在准备迎接一位重要的客人。你感到好奇,决定加入准备活动。你和村民们一起忙碌,准备迎接客人的到来。

ChatGPT:终于,客人到来了。你看到,客人是一位著名的冒险家。他告诉你,他正在寻找一群勇敢的人,去探索一座神秘的城堡。这座城堡据说是由一位巫师建造的,里面有许多神奇的宝藏。你感到非常的兴奋,决定加入冒险家的队伍。

ChatGPT:于是,你和冒险家们一起,踏上了寻找城堡的旅途。你们走过许多山谷,穿过许多森林,经过许多河流。最终,你们发现了城堡。你们决定进去看看。

ChatGPT:你们走进城堡,发现里面很宽敞,光线明亮。你们看到前面有一条长廊,通向一个巨大的大厅。你们走到大厅,发现里面有许多神奇的宝藏。你们激动不已,决定搜寻宝藏。你们走进一个房间,发现里面有一个巨大的宝箱。你们打开宝箱,发现里面有许多珠宝、黄金、宝石。你们感到非常的兴奋,决定将宝藏带回村庄。

ChatGPT:你们把宝藏装进背包,走出城堡,开始回家的旅途。你们经过许多山谷,穿过许多森林,经过许多河流。最终,你们回到了村庄。你们把宝藏展示给村民们,他们为你们的勇敢和冒险精神感到非常的钦佩。你们成为了村庄的英雄,并且受到了村民们的尊敬。

ChatGPT:你们在村庄中度过了一段美好的时光,但是,你们的冒险精神告诉你们,你们应该寻找新的挑战。于是,你们决定离开村庄,开始一段新的冒险。你们踏上旅途,不知道前方会有什么样的挑战等待着你们。

ChatGPT进入了DND城主的模式,给出了一段内容空洞的跑团战报,甚至没有一丁点战斗情节。“你们踏上旅途,不知道前方会有什么样的挑战等待着你们”,就把这句话作为整个游戏的结尾吧。

结语

看得出来其实这并不真的是一个文字冒险游戏,更像是请ChatGPT在简单的指令下根据上下文代笔写一些剧情片段(如果我能够投喂更加细致的设计,也许可以模拟一些随机事件)。在某些情况下ChatGPT确实可以为创作者提供一些灵感,我很喜欢它对于那扇“发光的门”的设计。在中国古代背景下加入未来科幻要素,很有《创世纪》系列游戏的风格。