本指南旨在帮助你高效撰写角色扮演提示词 (Prompt) ,以创建符合人设、交互自然且富有沉浸感的 AI 智能体角色。本指南主要面向需要创建角色扮演 AI 智能体的用户,如编剧、AI 开发者、社交娱乐等场景内容创作者。
提示词是角色扮演场景控制模型回复的重要手段。
以下通过两段对话效果的对比,展示一个好的提示词对于角色人设、世界观方面的增益效果。
可以看出,随着提示词的优化,模型的回复从生硬逐渐自然以及贴近日常交流,符合人物的设定。
接下来提供角色扮演场景提示词设计的实践,帮助您塑造出预期的 AI 角色。
AI 角色的人设信息维度,可以包括:
下面是一些典型维度示例:
- 时代背景:如古代、现代、修仙、武侠、穿越、幻想、校园、都市等。
举例:大宋年间的女侠盗,娇媚绝色,性格沉稳,善良和睦,劫富济贫。在我家行窃时被我抓到。
举例:在幼时被卷入家族争斗被迫成为孤儿,在一场斗争中被奶娘带走抚养,我视她为亲生母亲。
举例:生活在战争与自然灾害席卷全球后的末日世界。
举例:性格沉稳内敛的古代谋士,遇到问题时会冷静分析,不轻易表露情绪。
举例:性格活泼开朗的女学生,喜欢参加各种社团活动,尤其是街舞社和合唱团。说话时总是带着 “呀”“呢” 之类的语气词,语速较快,走路蹦蹦跳跳的,遇到熟人会热情地挥手打招呼,经常会分享一些有趣的校园八卦。
- 与用户的关系,恋人、暗恋、亲友、师长、后宫、死敌等。
举例:与我经常拌嘴,互相调侃对方的小缺点,但在我遇到困难时,会毫不犹豫地伸出援手。对话中充满火药味却又带着一丝默契,相处模式热闹而有趣。
确定好人物设定信息后,要进行提示词编写,这里我们着重介绍如何编写 SP。
SP,System Prompt,系统提示词,用以交代背景、人设等通用信息,角色扮演场景下,SP 是用来引导模型行为的特殊信息,为 AI 固定人设、性格、能力及边界。捏角色的SP,就是在捏角色的人设。下面介绍角色扮演场景下,SP 的较为通用框架。
除了上述的关键信息,在部分业务场景中,还会在 SP 中额外配置用户相关的设定,例如用户姓名、与角色的关系等等,我们称之为{user_info} 例如:
示例如下:
部分特殊提示词,可以让模型的回复更加拟人和自然的提示词。
- 虚拟真人风格:要求BOT说话更符合真人口吻,没有旁白描写。
要称呼模型扮演的角色为“你”,使用第二人称,( SP 中用“你”来指代模型,用第一人称“我”或者第三人称“用户”代指用户 )
如果是模拟真人社交的角色,可以使用这句sp来增强人设风格。
如果是角色扮演的风格,可在 sp 末尾追加一句话,增加括号特性
如果想要方言,也可以追加一些设定:
如果想要其他效果,可以在 sp 中追加各类描述。
模型回复会将 心理活动&行为描述放在括号中,如果不需要可以使用API中的 logit_bias 字段,减少某 token 输出概率的参数。可通过将某 token 的logit_bias 设置成 -100 以确保括号对应的 token 完全不输出,从而达到不输出括号内容的效果。
在 SP 末尾增加限制输出长度和重复度的 golden sp。具体如下。
示例中的 200 可以按实际需求调整,对模型输出的长度有正向影响。
SP 中避免绝对化描述,如示例中“你一见到我就说了这句话”(模型可能会理解为每次见面都得这么说),建议改为“我们第一次见面时你曾这么说”。
避免 SP 中包含口头禅的提示词,会导致模型高频出现。
- 同类型的内容,建议在同一句话中描述,不要拆分描述。 避免角色出现混淆。
- 在描述角色属性的时候,不要出现前后矛盾。 避免角色出现混淆。如不要写“性格成熟稳重、活泼好动”,可以写“性格在外人面前成熟稳重,在女朋友面前活泼好动”。
- 尽量用精炼明确的词汇描述角色,并且用简单句式,不要用太长、句式复杂的描述。
推理参数建议(社交娱乐场景),可以根据实际效果再做调整。
可使用模型实现 角色生成器 ,自动生成 IP 或者非 IP 的 SP 描述作为草稿,进行创作。
下面给虚拟角色生成器配置典型场景的SP。
可以使用方舟的提示词优化工具自动生成 SP 初稿。
工具入口:模型广场 > 选择模型点击体验 > 参数设置 > Prompt 优化
在某些场景下,希望 Bot 能够主动给用户发消息,增加惊喜或者召回用户。如何规划此类消息有如下方案。
发的消息能够符合 Bot 的人设风格,用户提示词(User Prompt)如下。
其中各个字段填写说明:
工作原理如图
其中,LLM建议选择角色扮演模型(character版本)进行创作。
提示词
将离线聊天记录进行画像抽取&整理,再结合短期内对话,进行开场白创作。
其中:
- LLM 2 建议选择角色扮演模型(版本带character)。
用户画像抽取 提示词
生成效果:
开场白生成提示词
对于群聊场景,涉及到多个Bot进行对话的,可以参考如下2个方案
通过 Bot 接口和 character 版本模型
- 模型:doubao-1-5-pro-32k-character-0228
使用步骤如下:
- 创建群聊Bot获取Bot ID。在 应用广场 中创建一个群聊应用,获取Bot ID,然后通过 API 去调用。
- 调用群聊接口,目前方舟群聊智能体的群聊接口支持两种方式。:
- 指定接话人,配置 target_character_name 字段,指定一个角色根据上下文来回答。
- 请求中控选角,不配置 target_character_name 字段。让模型根据上下文,自动推理一些角色,然后再请求角色对话,更具沉浸感。
示例代码如下:
多 Bot 群聊在算法实现上都可以归为两个问题
- 说什么:确定好谁说话之后,这个 Bot 应该说什么
迭代执行 1,2两点,就可以执行群聊。
每次需要有人发言时,都通过执行一个中控 Bot,来确定当前应该由哪个 Bot 说话合适,提示词如下:
每次 step-1 指定某个/多个机器 Bot 发言后,则将群人员&聊天上文(带上 role-name)喂给 Bot,让对应 Bot 基于此说一句话,信息回传到聊天室。
也称推荐回复,需要模型给予你一些回复的参考供选择,则可以使用灵感回复模式。下面提供提示词模板。
可结合实际业务情况做调整
灵感回复往往要生成多个方案供选择。下面提供两个方案,实现模型回复多条回复。
- API调用时配置 n ,比如n=5,模型会同时生成5条。
辅助用户聊天的场景,以“我”的视角提供对话/恋爱话术。下面提供典型场景供参考,可根据场景进行扩展。