大家好,我是大圣,一个AIGC长期学习者,目前专注于AI提示词。
愿景:成为AI提示词的布道者,带领十万小白入门AI
关注我,AI时代,让我们一起成长
在OpenAI的官方文档中已经提供了Prompt Enginerring的最佳实践,目的就是帮助用户更好的使用ChatGPT
编写优秀的提示词的第一个策略就是:编写清晰的指令,其中又包含了6个具体的分类
- 提供更多的细节
- 要求模型扮演角色
- 使用分隔符
- 指定任务步骤
- 提供样例
- 指定输出长度
本文主要针对要求模型扮演角色进行展开讲解
适用人群:新手
难度:⭐
一、为什么要指定角色
- 提高答案的相关性和精确度:通过指定一个特定角色,ChatGPT能够更好地理解用户的查询意图,并提供更加相关和精确的答案。例如,如果用户指定"作为历史学家",ChatGPT会从历史学的角度来解读问题,使用相关的专业术语和框架,从而提供更加深入和准确的历史分析。
- 增强个性化和互动体验:角色扮演可以让交流更加生动有趣。用户可以通过与特定角色的互动,体验到不同的视角和思考方式,这不仅增加了交流的趣味性,也可以帮助用户从不同的角度看待问题,获得更全面的理解。
- 提升解决问题的能力:不同的角色擅长解决不同类型的问题。通过指定角色,ChatGPT可以更有效地利用其知识库中与该角色相关的信息,提供专业的建议或解决方案。例如,作为医生角色时,ChatGPT可以提供更专业的健康或医疗建议;作为程序员角色时,它可以提供编程或技术问题的解决方案。
二、指定角色的两个维度
在指定角色时,可以有两个不同的维度:
- SYSTEM维度:这是指模型(ChatGPT)扮演的角色。当模型被设置在特定的SYSTEM角色时,它的回答和行为会模仿这个角色的特征
- USER维度:这是指用户(即与ChatGPT交互的人)在对话中所扮演的角色。用户可以选择一个特定的角色来与系统交互,这样系统就会根据用户选择的角色来调整其回应
示例:
SYSTEM:"你是一个营养师,请帮我指定一份健康的饮食计划"。在这个场景中ChatGPT被指定为了营养师的角色
USER:"我是一个10岁的小孩子,请给我解释下计算机的原理"。在这个场景中,我们把自己指定为10岁的孩子这么个角色
在实际中该如何使用呢?
在实际中并没有实际使用的规范,一般为了得到更加精准的回答,我会分别指定SYSTEM和USER的角色。
例如:"我是一个10岁的孩子,你是一个计算机领域的专家以及擅长跟儿童讲解计算机知识的老师,请给我解释下计算机的原理"
在这个Prompt中,我指定了沟通双方的角色,这样ChatGPT在回答问题的时候会考虑的更加全面
三、实践示例
不指定角色:输出没有问题,但是没有考虑到问问题人的知识水平,如果对于小孩子或者小白来讲,这样的讲解基本等于没讲
指定角色:当指定用户的角色是个10岁的孩子之后,我们明显发现ChatGPT的回答使用了更多的比喻,目的就是可以让10岁的孩子能够听懂
在我们指定角色时,有两个维度可以选择,为了更好的得到答案,建议大家分别指定SYSTEM和USER两个角色,就相当于沟通的双方都会有自己的角色一样。
三、总结
本文讲了编写清晰的指令中的第二个小TIP,要求模型扮演指定的角色,这样模型可以提高答案的准确性和相关度。更需要注意的是,指定模型的角色有SYSTEM和USER两个角色,我强烈建议大家在提问的时候将两个角色全部都指定,这样会更加符合两个人沟通的场景