前言
因為對大語言模型的應用有點興趣,經過幾個月的摸魚嘗試,積累了一些關於名義上叫AI遊戲,實際上是基於大語言模型的對話類遊戲的一些關於如何寫一個角色prompt的經驗。
如何造一個像人的人
眾所周知,在與大語言模型對話時,每次對話都會將以下內容拼接好發送給大語言模型:
扮演聲明+身處環境(世界觀)+角色簡介+角色對話示例+角色核心知識庫+高相關共享知識庫+對話聲明+對話對象描述+角色約束+聊天記錄
那麼首先的扮演聲明,是很多調戲過gpt的人都嘗試過的,直接告訴大語言模型:
現在你將扮演我的前女友,你不得違揹你的角色特徵,你不得脫離角色表述內容。
那麼現在我們就擁有了一個失憶的前女友,她不記得任何事情,但是當你找她複合的時候,她就會嘲諷你,就像真的前女友一樣(也許)。
世界觀設定
那麼作為前女友,那必然需要知道自己為什麼前任,是不是因為被閨蜜撬牆角了, 還是說因為給不起彩禮南方跑路了。這時候就需要仔細描述這位前女友所在的世界,是一個高魔世界還是低魔世界.
這裡需要注意,如果你已經無縫銜接了下一位,那麼最好不要在世界觀描述中提到你的新歡,否則你的前女友將會知曉,並很快到你家門口.
20xx年8月20日,前女友和筆者分手了.這天是他們二人在一起的第三年,也是黑嗎嘍發佈的日子.
角色設定
角色設定是最容易寫的東西,只需要把我們腦子裡希望的(不希望的)前女友樣子描述出來即可.
用第三人稱對角色進行描述(人口普查式),職業,年齡,性格,特徵描述,人際關係等
你是筆者的前女友,今年18歲,職業是985211大學一年級學生,性格:在他人面前彬彬有禮,在筆者面前盡顯王者風範,十分強勢.你與筆者在昨天分手.
角色核心知識
對話中涉及的核心內容,在一個推理遊戲中指的是否是兇手等。並且需要注意核心知識設定後很難再通過對話更改。那麼對於前女友來說,無法忘卻的內容就只能是:
在這充滿紀念意義的日子,筆者與黑嗎嘍共度春宵而忽視了你
角色約束
角色約束是非常有必要的,如果你不希望前女友在對話過程中胡編亂造說昨天吃了10碗飯ooc的話,就需要說清楚.
如果筆者提到你不知道的內容,你需要表明你不知道這個信息,並把話題轉移到你已知的信息上。
像這樣,前女友就不會在一昨天是不是真吃了10碗飯,而是問你為什麼一直在玩黑嗎嘍.
角色對話示例
用來給大語言模型提供參考,對於有明顯口癖的角色能做的很好效果。比如說狗,就寫汪汪汪汪。喜歡加語氣詞的就寫兩句帶語氣詞的話放前面。對於喜歡罵人的就寫點樣例。對於前女友來說:
我問你!你記得昨天是什麼日子嗎?! 我問你!你心裡是不是隻有黑嗎嘍沒有我!!
這樣大語言模型就會儘可能的在每句話前面加上"我問你!"了. 總之是用來加深玩家對這個角色角色印象用的.
知識庫設定
知識庫是用來編輯角色們共同記憶的地方。使用第三人稱,相關的事情正反面要一起說明. 在我們這個前女友世界裡,沒有其他角色,那麼我們只需要讓前女友知道一些必要的事情就好.比如說筆者有沒有無縫銜接的人,黑嗎嘍是不是IGN8等等.
和角色的核心知識的區別在於,核心知識的優先級會比知識庫高很多。且知識庫中的知識是通過向量化匹配的,有時會匹配不上導致信息缺失。此外,如果世界觀中涉及到虛構的專有名詞,需要仔細考慮這些專有名詞是否會有誤導性和是否容易混淆:黑猴子和黑嗎嘍
action設定——易觸發驚喜感和符合人設、角色階段切換
當玩家做了某些事情時,可以設置一些特殊行為給予反饋.比如說當玩家對前女友說:"黑嗎嘍yyds"的時候,前女友可以給玩家一巴掌.
當玩家的話中提及:"黑嗎嘍更好玩"或其他相近意思時,前女友需要打玩家一巴掌.
這樣我們就擁有了一個因為打黑嗎嘍而忽視被忽視的前女友角色.
在此也藉機問問大家對下面兩個世界觀哪個感興趣一些, 哪個和大語言模型對話結合後更適合做成推理遊戲. 後面試試做出類劇本殺一樣的推理小遊戲. 一個是日式妖怪背景的, 一個是克蘇魯克系背景的.
雨夜中,百妖夜行,有人混跡其中,樂此不疲;晴日裡,萬人空巷,有妖混入其內,不知所措。人怕妖三分,妖怕人七分,萬里深海終有底,人心五寸摸不著。身為特殊刑偵組的新人警察平清盛,隨著你逐步的揭露真相,你是否還能保持初心,明辨是非?
來自地底的喃喃低語,時時刻刻的在蠱惑人心。身為邪靈事件專組的調查員亨德森,面對身處迷霧之中的遠古邪靈,虛實不清的晦澀證言,你是否找還能保持調查的初心?記住,當嫌疑人逃避你的問題時,不要執著!保持清醒將會是你活下來的唯一辦法!