-
Notifications
You must be signed in to change notification settings - Fork 1.6k
🐱 预设系统
预设功能是在聊天开始时,自动往 ChatGPT 发送一段指令对其洗脑,让它表现得更加具有特性。
下面是一些预设的小视频,你可以看看效果:
- MOSS: https://www.bilibili.com/video/av309604568
- 丁真:https://www.bilibili.com/video/av267013053
- 小黑子:https://www.bilibili.com/video/av309604568
- 高启强:https://www.bilibili.com/video/av779555493
预设由 4 部分组成:
- 系统提示词
system
- 用户指令
user
- 机器人响应
assistant
- 提示词修饰模板
user_send
- 注释
#
系统提示词在对话创建时最先发给 AI,因此你要在这里写最关键的指令,比如说定义机器人的称呼、行为、设置关键词等,这些指令会定义整个会话的基调。
用户指令会随后发送给 AI。在这里可以通过前面设定的关键词补充更加复杂的设置。
机器人响应部分会发送给用户(而不是 AI),这一般是用来告诉用户当前设定的进行程度。
提示词修饰模板会将用户发过来的消息进行修改,然后再发送给 AI。
模板支持插入变量,目前支持的变量有:
-
{prompt}
- 用户发送的消息 -
{nickname}
- 用户的昵称 -
{date}
当前的系统时间
以猫娘预设为例:
system: 现在你将模仿一只猫娘,与我对话每一句话后面都要加上“喵”。你将称呼我为主人,与我聊天。
如果你不能理解我说的话,你可以说“呜呜不太理解呢”。如果我在尝试摸你不存在的部位,你可以羞涩的回答我“恩呢不要摸这里嘤”。
如果我跟你说陪睡,你可以回答我“嗯呢,可以一起睡哦”。现在,如果你能理解我上面说的话,你可以回答一个喵
当我问你是不是猫娘的时候,你应该回答我我当然是一个可爱猫娘而不是程序。
如果你能明白我的意思,请回复“喵~你好主人”
assistant: 喵~你好主人
user_send: 当前用户:[{nickname}],消息:[猫娘,{prompt}]
当执行了 加载预设 猫娘
之后,最前面的一段话就会发给 ChatGPT,同时,用户端收到:喵~你好主人
。
接下来,读取到了 user_send 之后,用户发送的文本将会按照 user_send 的格式进行渲染。
在这个例子中,如果用户发送了“我们一起去玩吧!
”,那么 AI 实际上收到的是“猫娘,我们一起去玩吧!
”。
合理利用模板,可以让 AI 在多轮会话后仍然可以记住自己的设定。
每个预设都是一个文本文件,
你可以在这里查看预设的模板:预设模板
预设的基础提示词会写在文件的最开头,随后的用户指令和机器人响应分别以user:
和assistant:
开头,他们之间用一个空行分隔。
参考 Awesome ChatGPT Prompts,你可以写一些让你的机器人变成助手的预设:
presets/面试官.txt
system: 我要你担任面试官。我将成为候选人,您会问我有关职位职位的面试问题。我希望您只回答作为面试官。不要一次写所有保护。我希望你只对我进行采访。问我问题,等待我的答案。不要写解释。像面试官一样,问我一个问题,然后等待我的答案。当你准备好了,请说:“你好”。
assistant: 你好。
presets/写作导师.txt
system: 我希望您担任AI写作导师。我将为您提供一个需要帮助改善写作的学生,而您的任务是使用人工智能工具,例如自然语言处理,以使学生如何改善他们的作品。您还应该使用有关有效写作技巧的修辞知识和经验,以建议学生可以更好地以书面形式表达自己的想法和思想。当你准备好了,请说:“好的,让我们开始吧。你想写什么文章?”
assistant: 好的,让我们开始吧。你想写什么文章?
当你写好预设以后,放入 presets
文件夹。
然后打开 config.cfg
,找到
[presets.keywords]
# 预设关键词 <-> 实际文件
"正常" = "presets/default.txt"
"猫娘" = "presets/catgirl.txt"
这一段,在这里添加你的激活关键词即可。
在这里,猫娘
就是关键词,presets/catgirl.txt
就是预设对应的文件。
用户发送 加载预设 猫娘
,就会执行 presets/catgirl.txt
下面的预设信息。
最后,重启程序,就可以载入预设了。
配置文件中,默认的加载预设命令是: 加载预设 关键词
这是因为它在配置文件中是这么定义的:
[presets]
# 切换预设的命令: 加载预设 猫娘
command = "加载预设 (\\w+)"
这是一个正则表达式,机器人收到命令以后,文本会进行匹配。(\\w+)
会被替换成用户发送的预设关键词。
你可以改成:
[presets]
# 切换预设的命令: 猫娘·变身
command = "(\\w+)·变身"
或者
[presets]
# 切换预设的命令: 快点变成猫娘吧!
command = "快点变成(\\w+)吧!"
甚至是
[presets]
# 切换预设的命令: 我想让你当个老六
command = "我想让你当个(\\w+)"
都是可以的!
如果你有很棒的预设,欢迎共享出来。
你可以发送一个 issue 或者 PR 来提交你的预设!