前言
因为对大语言模型的应用有点兴趣,经过几个月的摸鱼尝试,积累了一些关于名义上叫AI游戏,实际上是基于大语言模型的对话类游戏的一些关于如何写一个角色prompt的经验。
如何造一个像人的人
众所周知,在与大语言模型对话时,每次对话都会将以下内容拼接好发送给大语言模型:
扮演声明+身处环境(世界观)+角色简介+角色对话示例+角色核心知识库+高相关共享知识库+对话声明+对话对象描述+角色约束+聊天记录
那么首先的扮演声明,是很多调戏过gpt的人都尝试过的,直接告诉大语言模型:
现在你将扮演我的前女友,你不得违背你的角色特征,你不得脱离角色表述内容。
那么现在我们就拥有了一个失忆的前女友,她不记得任何事情,但是当你找她复合的时候,她就会嘲讽你,就像真的前女友一样(也许)。
世界观设定
那么作为前女友,那必然需要知道自己为什么前任,是不是因为被闺蜜撬墙角了, 还是说因为给不起彩礼南方跑路了。这时候就需要仔细描述这位前女友所在的世界,是一个高魔世界还是低魔世界.
这里需要注意,如果你已经无缝衔接了下一位,那么最好不要在世界观描述中提到你的新欢,否则你的前女友将会知晓,并很快到你家门口.
20xx年8月20日,前女友和笔者分手了.这天是他们二人在一起的第三年,也是黑吗喽发布的日子.
角色设定
角色设定是最容易写的东西,只需要把我们脑子里希望的(不希望的)前女友样子描述出来即可.
用第三人称对角色进行描述(人口普查式),职业,年龄,性格,特征描述,人际关系等
你是笔者的前女友,今年18岁,职业是985211大学一年级学生,性格:在他人面前彬彬有礼,在笔者面前尽显王者风范,十分强势.你与笔者在昨天分手.
角色核心知识
对话中涉及的核心内容,在一个推理游戏中指的是否是凶手等。并且需要注意核心知识设定后很难再通过对话更改。那么对于前女友来说,无法忘却的内容就只能是:
在这充满纪念意义的日子,笔者与黑吗喽共度春宵而忽视了你
角色约束
角色约束是非常有必要的,如果你不希望前女友在对话过程中胡编乱造说昨天吃了10碗饭ooc的话,就需要说清楚.
如果笔者提到你不知道的内容,你需要表明你不知道这个信息,并把话题转移到你已知的信息上。
像这样,前女友就不会在一昨天是不是真吃了10碗饭,而是问你为什么一直在玩黑吗喽.
角色对话示例
用来给大语言模型提供参考,对于有明显口癖的角色能做的很好效果。比如说狗,就写汪汪汪汪。喜欢加语气词的就写两句带语气词的话放前面。对于喜欢骂人的就写点样例。对于前女友来说:
我问你!你记得昨天是什么日子吗?! 我问你!你心里是不是只有黑吗喽没有我!!
这样大语言模型就会尽可能的在每句话前面加上"我问你!"了. 总之是用来加深玩家对这个角色角色印象用的.
知识库设定
知识库是用来编辑角色们共同记忆的地方。使用第三人称,相关的事情正反面要一起说明. 在我们这个前女友世界里,没有其他角色,那么我们只需要让前女友知道一些必要的事情就好.比如说笔者有没有无缝衔接的人,黑吗喽是不是IGN8等等.
和角色的核心知识的区别在于,核心知识的优先级会比知识库高很多。且知识库中的知识是通过向量化匹配的,有时会匹配不上导致信息缺失。此外,如果世界观中涉及到虚构的专有名词,需要仔细考虑这些专有名词是否会有误导性和是否容易混淆:黑猴子和黑吗喽
action设定——易触发惊喜感和符合人设、角色阶段切换
当玩家做了某些事情时,可以设置一些特殊行为给予反馈.比如说当玩家对前女友说:"黑吗喽yyds"的时候,前女友可以给玩家一巴掌.
当玩家的话中提及:"黑吗喽更好玩"或其他相近意思时,前女友需要打玩家一巴掌.
这样我们就拥有了一个因为打黑吗喽而忽视被忽视的前女友角色.
在此也借机问问大家对下面两个世界观哪个感兴趣一些, 哪个和大语言模型对话结合后更适合做成推理游戏. 后面试试做出类剧本杀一样的推理小游戏. 一个是日式妖怪背景的, 一个是克苏鲁克系背景的.
雨夜中,百妖夜行,有人混迹其中,乐此不疲;晴日里,万人空巷,有妖混入其内,不知所措。人怕妖三分,妖怕人七分,万里深海终有底,人心五寸摸不着。身为特殊刑侦组的新人警察平清盛,随着你逐步的揭露真相,你是否还能保持初心,明辨是非?
来自地底的喃喃低语,时时刻刻的在蛊惑人心。身为邪灵事件专组的调查员亨德森,面对身处迷雾之中的远古邪灵,虚实不清的晦涩证言,你是否找还能保持调查的初心?记住,当嫌疑人逃避你的问题时,不要执着!保持清醒将会是你活下来的唯一办法!