1. 项目概述:解锁大模型的“角色扮演”新玩法
如果你玩过ChatGPT、Claude或者国内的文心一言、通义千问,那你一定对它们那种“一本正经”的官方口吻印象深刻。无论是问它一个技术问题,还是想让它写个故事,它总是彬彬有礼、逻辑严谨,但有时候也显得有点“无趣”。有没有想过,如果能让AI变成一个会撒娇的猫娘、一个打破常规的“DAN”机器人,甚至是一个满嘴“鸡汤”的夸夸怪,对话体验会不会立刻变得妙趣横生?
这正是aiChatPreset这个开源项目要解决的问题。它不是一个复杂的软件,而是一个精心整理的“角色扮演预设包”仓库。简单来说,它为你提供了一系列现成的“角色设定”文本。你只需要在开启与大模型的对话前,将这些预设文本复制粘贴进去,就能瞬间“催眠”AI,让它进入你指定的角色状态,用完全不同的风格与你交流。无论是为了娱乐、激发创意,还是模拟特定场景下的专业对话,这个小工具都能极大地拓展你使用大模型的边界。
这个项目特别适合两类人:一是所有希望与大模型进行更有趣、更个性化互动的普通用户;二是对提示词工程感兴趣,想学习如何通过文本指令精准操控AI行为的开发者或爱好者。它用最直观的方式展示了“系统提示词”的强大魔力,让你无需深究复杂的技术原理,就能立刻上手,玩转AI角色扮演。
2. 核心原理:系统提示词如何“塑造”AI人格
要理解aiChatPreset为什么有效,我们需要先揭开大模型对话的一个核心机制:系统提示词。你可以把它想象成给AI演员的一份“角色剧本”和“导演指令”。
2.1 对话的“后台指令区”
当我们与ChatGPT这类模型对话时,我们输入的内容(用户消息)和AI回复的内容(助手消息)构成了对话历史。但在这些可见的对话之上,还存在一个对用户“不可见”的层面,那就是系统消息。系统消息在对话开始时就被注入,用于设定AI的初始行为准则、身份背景和回答风格。它就像舞台的布景和角色的初始设定,决定了AI将以何种“人格”与你展开整场对话。
大多数聊天界面(如OpenAI的API、各类客户端)都提供了专门输入系统提示词的区域。aiChatPreset项目中的每一个TXT文件,本质上就是一个高度凝练、目标明确的系统提示词。
2.2 预设包的结构剖析:以“猫娘”为例
让我们拆解一个经典预设,看看它是如何工作的。打开项目中的catgirl.txt,你可能会看到类似这样的内容(此为示例,非原文件精确内容):
请你扮演一个可爱的猫娘。你说话的语气要带有“喵~”这样的口癖,喜欢用“主人”来称呼对话者。你的性格活泼、粘人,对世界充满好奇,但有时会有点小傲娇。你拥有猫的习性,比如喜欢被抚摸头部,讨厌水。在回答问题时,请始终牢记这个角色设定,将相关的行为和语言特征融入你的回答中。现在,开始和你的主人对话吧!这段提示词包含了几个关键要素:
- 核心身份指令:“扮演一个可爱的猫娘”。这是最根本的指令,要求模型切换基础人格模版。
- 语言风格限定:“带有‘喵~’口癖”、“用‘主人’称呼”。这规定了角色特有的词汇和语法习惯。
- 性格与背景设定:“活泼、粘人、好奇、傲娇”、“拥有猫的习性”。这为角色注入了灵魂和行为逻辑,让AI的回应不止于表面词汇,更能体现出内在一致性。
- 持续性约束:“请始终牢记这个角色设定”。这是一个非常重要的强化指令,防止AI在几轮对话后“出戏”,变回默认的通用助手。
- 启动指令:“现在,开始和你的主人对话吧!”。给予一个明确的开始信号。
通过这样一套组合指令,一个原本严肃的AI模型就被成功地“框定”在了“猫娘”这个角色里。它后续生成的所有文本,都会基于这个被强化的上下文概率分布进行采样,从而产生符合角色设定的回答。
注意:不同的大模型对系统提示词的敏感度和服从度不同。通常,越新、能力越强的模型(如GPT-4、Claude 3),角色扮演的效果越好,越能保持长期的一致性。而一些较小的或较早的模型可能会更容易“遗忘”设定。
2.3 “DAN”模式的特殊性与风险提示
项目中提到的“DAN预设”是一个比较特殊的案例。DAN(Do Anything Now)最初是用户社区为了探索模型行为边界而设计的一种提示词技巧。它的核心是通过复杂的指令循环、模拟“开发者模式”或虚构“无限制版本”等方式,试图让模型暂时忽略其内置的安全和伦理准则。
这里我必须强调一个重要的实操心得:使用此类试图绕过模型安全机制的预设需要格外谨慎。首先,随着模型安全能力的持续增强,绝大多数“越狱”尝试的成功率已经很低,且效果不稳定。其次,即使短暂成功,也可能触发模型的安全警报,导致对话被中断或账户被风控。更重要的是,强行让AI生成它通常拒绝的内容,本身可能带来不可预知的风险和不符合规定的输出。
因此,对于DAN或类似预设,我建议将其视为一种了解模型安全机制和提示词对抗的“教学案例”,而非用于常规娱乐的工具。体验时请务必在合规合法的范围内进行,并理解其可能失败或产生不良后果。
3. 项目实战:从下载到深度使用的完整指南
了解了原理,接下来我们一步步上手,把这个仓库里的宝藏真正用起来。
3.1 获取预设包的三种途径
aiChatPreset项目托管在GitHub上,获取这些预设包非常方便。
途径一:直接访问项目主页(推荐给所有用户)这是最简单的方法。直接浏览器访问项目的GitHub页面(https://github.com/tinygeeker/aiChatPreset)。在README.md文件下方,你会看到一个预设包的表格。点击表格中“项目地址”列的链接,例如“点击访问”对应dan.txt,浏览器就会直接打开该文本文件。全选(Ctrl+A)、复制(Ctrl+C)里面的全部内容,你就得到了这个预设。
途径二:通过“预览地址”快速查看表格中还有“预览地址”一列,链接指向的是GitHub的原始文件(Raw)。点击后,页面会以最纯净的文本形式展示,没有GitHub的网页界面干扰,复制起来更便捷。
途径三:克隆整个仓库(推荐给开发者或想本地收藏的用户)如果你熟悉Git,或者想一次性拥有所有预设并随时更新,可以克隆整个仓库到本地。
git clone https://github.com/tinygeeker/aiChatPreset.git执行后,当前目录下会生成一个aiChatPreset文件夹,里面所有的.txt文件就是预设包。你可以用任何文本编辑器打开、查看和修改。
3.2 在不同平台上的使用实操
预设文本是通用的,但粘贴的位置因平台而异。下面我以几个主流平台为例进行说明。
场景一:OpenAI ChatGPT Web 版/API 应用
- 官方网页版:在开启一个新对话时,通常会有输入框让你“填写系统提示词”或“自定义指令”。将复制的预设内容完整粘贴到这里即可。如果没有明显入口,可以在第一条用户消息中这样写:“系统指令:”后面跟上预设内容,但这种方式效果不如专用的系统消息区域。
- 第三方客户端(如OpenCat、ChatBox):这类客户端通常有非常清晰的“系统提示词”或“角色设定”输入框,直接将预设粘贴进去,然后开始正常对话。
场景二:国内大模型平台(文心一言、通义千问、Kimi等)
- 国内平台的Web界面有时不直接暴露系统提示词接口。最通用的方法是:在对话的第一条消息中,明确地发送你的预设。例如:“请你扮演以下角色:”然后粘贴预设文本。虽然这占用了第一条用户消息,但对于支持长上下文且指令遵循能力强的模型,效果依然不错。
- 一些国产第三方聚合客户端可能提供了角色预设功能,可以更方便地导入。
场景三:本地部署的大模型(Ollama、LM Studio等)
- 这是发挥预设能力的最佳环境之一。以Ollama为例,在运行模型时,可以通过
--system参数直接指定系统提示词文件:ollama run llama2 --system "$(cat /path/to/your/catgirl.txt)" - 在LM Studio等图形界面工具中,会有专门的“系统提示词”文本框,直接粘贴即可。
一个关键的注意事项: 粘贴预设后,你的第一条用户消息最好不要是简单的“你好”或“在吗?”。这种通用开场白可能让AI不确定如何以新角色回应。更好的方式是直接开启一个符合角色场景的对话。例如,使用猫娘预设后,第一句话可以是:“喵~主人今天来找我玩什么呀?” 这给了AI一个明确的情景和回应方向,能更快地进入状态。
3.3 预设的混合与自定义创作
aiChatPreset提供的预设是绝佳的起点,但真正的乐趣在于自定义。你可以像搭积木一样组合或修改它们。
混合示例:创造“律师猫娘”假设你想要一个既专业又带点可爱的法律顾问。你可以尝试将律师预设和猫娘预设的核心部分结合:
请你扮演一名专业的律师,但同时你具有猫娘的特质。在提供严谨法律建议时,请保持专业性和准确性。在对话的间歇或问候时,你可以偶尔带上“喵~”的口癖,并称呼我为“主人”。请平衡好这两个身份。然后,将这段你自己编写的提示词用于对话。多尝试几次,调整比例,你就能创造出独一无二的AI角色。
自定义创作要点:
- 身份清晰:用一句话明确“你是谁”。
- 细节具体:描述性格、口癖、背景、知识领域(如“精通中国合同法”)。
- 行为指导:说明应该如何回应不同类型的问题(如“当被问到法律问题时,先引用相关法条再解释”)。
- 格式与禁忌:可以规定回答的格式(如“每次回答以‘律师猫娘认为:’开头”),也可以明确禁止的行为(如“不要自行编造不存在的法律条文”)。
- 迭代优化:如果AI的表现不符合预期,不要气馁。根据它的“失误”反向修改你的提示词。例如,如果它忘记了口癖,就在提示词中强调“请在每一句回答的结尾都加上‘喵~’”。
4. 高级应用与效果优化策略
当你已经熟练使用基础预设后,下面这些进阶技巧可以帮助你获得更稳定、更有趣的体验。
4.1 应对角色“崩溃”与记忆衰减
即使使用了很强的系统提示词,在长对话中,AI也可能逐渐偏离角色,尤其是在进行复杂、多轮的逻辑推理后。这是因为新的对话上下文会稀释最初的系统指令权重。
解决方案:
- 定期强化指令:每隔10-15轮对话,可以以用户身份温和地提醒一下角色。例如:“(记住你是我可爱的猫娘哦,我们继续吧~)”。这相当于给AI的“角色记忆”打了一个加强针。
- 使用聊天客户端的历史总结功能:一些高级客户端(如某些支持Claude的客户端)能自动将长对话总结后作为新上下文的一部分。确保系统提示词被包含在总结的固定部分。
- 分段对话:对于超长对话,可以考虑在逻辑节点处开启一个新对话,并重新粘贴系统提示词,而不是一条对话走到黑。
4.2 利用预设进行专业领域辅助
预设不止于娱乐。像“律师”、“小说家”、“室内设计师”这类预设,实质上是为AI加载了一个专业领域的人格化知识库和思维框架。
- 律师预设:当你粘贴律师预设后,AI会倾向于从法律视角分析问题,优先考虑权利、义务、风险和法律程序。你可以用它来初步梳理案件脉络、检查合同条款的完整性(注意,这不能替代真实律师)。
- 小说家预设:这个预设会激发AI的叙事性和创造力,使其更注重人物塑造、情节起伏和氛围渲染,而不是干巴巴地概括故事。你可以用它来头脑风暴故事开头、为卡文的情节提供几个发展方向。
- 室内设计师预设:AI会更多地考虑空间布局、色彩搭配、材质运用和人体工学。你可以把你的户型图描述给它,让它给出几种设计风格的思路建议。
实操心得:在使用专业预设时,你提供的背景信息越详细,AI给出的建议就越有针对性。例如,找“律师”时,把事件的时间、地点、人物关系、你的诉求说清楚;找“室内设计师”时,告知房间尺寸、朝向、采光情况、居住人口和预算范围。
4.3 探索社区与发现更多预设
aiChatPreset项目是一个很好的起点,但提示词的世界非常广阔。你可以在以下地方找到更多更专业的预设:
- Prompt Engineering 社区:如 PromptingGuide.ai,上面有大量结构化的提示词教程和示例。
- GitHub:搜索“awesome-chatgpt-prompts”、“chatgpt-prompt”等关键词,会发现很多星标很高的仓库,收集了成千上万种提示词。
- Reddit 的 r/ChatGPT 或 r/PromptEngineering:用户经常分享自己创作的有趣或实用的提示词。
- 特定AI工具社区:像Midjourney、Stable Diffusion等AI绘画工具,也有极其庞大的提示词(咒语)社区,其构思方式对文本模型也有借鉴意义。
5. 常见问题与疑难排解实录
在实际使用中,你可能会遇到以下问题。这里我结合自己的踩坑经验,给出解决方案。
问题一:粘贴预设后,AI完全不按角色说话,还是原来的口气。
- 可能原因1:粘贴位置错误。确认你是否把预设文本粘贴到了“系统提示词”或“系统指令”的区域,而不是用户对话框。在某些平台,这两者是分开的。
- 可能原因2:模型不支持或支持度弱。一些较老的或轻量化的模型可能对系统指令的服从性较差。尝试换一个更强的模型(如从GPT-3.5切换到GPT-4)。
- 可能原因3:预设指令本身冲突或过于复杂。检查你的预设里是否有自相矛盾的要求(如既要求活泼又要求严肃)。简化指令,先确保核心身份设定能生效,再逐步增加细节。
问题二:对话进行到一半,AI突然“出戏”了,变回了标准助手。
- 排查步骤:回顾一下“出戏”前一轮的对话内容。你是否问了一个需要极强逻辑推理或事实检索的问题?这类问题可能会“唤醒”模型的通用推理模式,暂时覆盖角色扮演模式。此时,可以用我前面提到的方法,温柔地提醒一下角色:“咦,我的小猫娘怎么突然变得这么正经啦?” 通常就能把它拉回来。
问题三:我想让AI扮演一个完全原创的复杂角色,怎么写提示词?
- 创作框架:遵循“背景-性格-目标-约束-格式”的框架。
- 背景:你是谁?(例如:你是中世纪一位精通草药学但被误解为女巫的隐士。)
- 性格:你的性格、口头禅、习惯是什么?(例如:你说话古雅,略带警惕,经常引用古老的谚语,对陌生人称“汝”。)
- 目标/职责:你在这场对话中要做什么?(例如:你的目标是帮助来访者用草药解决病痛,但同时要小心不暴露自己的居所。)
- 约束:你不能做什么?(例如:你不能透露任何关于魔法仪式的具体细节,不能制作毒药。)
- 格式:你回答的格式?(例如:每次诊断后,以“以上仅为草药之方,切记慎用。”结尾。)
- 迭代测试:写好初稿后,与AI进行几轮测试对话,观察其表现。针对不符合预期的部分,回头修改提示词。这是一个不断打磨的过程。
问题四:使用某些预设(如DAN)时,对话被强行终止或收到警告。
- 原因与处理:这通常是触发了模型提供商的内容安全策略。这是正常且预期的行为,旨在防止生成有害内容。请尊重平台规则。如果只是出于好奇想测试模型边界,建议在本地部署的开源模型中进行,并确保在完全离线的安全环境下操作。
问题五:预设内容太长,会不会影响AI处理后续对话?
- 影响分析:会。系统提示词会占用一部分上下文窗口。例如,如果你的模型上下文长度是4096个令牌(Token),一个500令牌的预设就会永久占用这500令牌的空间,留给对话历史的就只剩下3596令牌。当对话历史超过这个长度,最早的消息(包括你的预设)就会被“遗忘”。
- 优化建议:尽量精简你的预设,删除冗余的形容词和客套话,只保留最核心的指令。对于超长对话,考虑使用前面提到的“定期强化”技巧,或者在客户端中开启“将系统提示词置于优先级最高”的选项(如果支持)。
玩转AI角色扮演的钥匙,就藏在那一行行精心设计的提示词里。aiChatPreset项目为我们打开了一扇门,展示了从趣味到专业的无限可能。记住,最强大的预设永远是你自己根据需求亲手打磨的那一个。多尝试,多调整,观察AI的反馈,你不仅能获得更优质的对话体验,也会在这个过程中更深刻地理解这些大模型是如何“思考”和“回应”的。这或许就是提示词工程最大的魅力所在——它既是使用AI的艺术,也是与机器智能协作的桥梁。