Prompt 学习笔记

生成 Prompt 最好的方法是让 AI 自己生成。 我们可以让他按某个框架生成一份,然后在此基础上调优。

推荐几个框架

ICIO

假设我们希望让模型总结一篇关于机器学习应用的文章,Prompt 的设计可以如下:

  • Instruction(指令):请提供一段关于本文内容的简洁总结。
  • Context(背景):本文讨论了机器学习在医疗诊断中的应用,并分析了不同算法的优劣。
  • Input(输入):输入的文章内容,包括关于医疗诊断的机器学习应用的信息。
  • Output(输出):请将总结控制在 3-4 句话内,简洁明了。

CRISP

CRISP 是一个围绕 Prompt 精度和一致性而设计的框架,分别从上下文(Context)、角色(Role)、输入(Input)、结构(Structure)和目标(Purpose)五个方面来优化 Prompt。

  • Context(上下文):为模型提供任务背景,以确保它理解任务的整体情境。

  • Role(角色):在 Prompt 中指定模型的角色,帮助它更好地适应输出风格。例如,让模型扮演“教授”、“客户服务代表”或“数据分析师”。

  • Input(输入):模型需要处理的主要信息或材料。

  • Structure(结构):输出的组织方式或逻辑结构,确保模型生成条理清晰的内容。

  • Purpose(目标):明确任务的最终目标或期望效果,例如“解释”、“推荐”或“分析”。
    示例:

  • 上下文:关于区块链的技术介绍。

  • 角色:作为一个区块链专家。

  • 输入:给定的区块链介绍文本。

  • 结构:逐条说明。

  • 目标:让普通人理解区块链的基本概念。

最佳实践

  • 技巧一:明确背景和目标
  • 技巧二:为模型提供输出样例
  • 技巧三:使用分隔符号区分内容单元
  • 技巧四:引导模型“思考”

1-3 Prompt 案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#背景#

你很擅长编写小红书种草笔记,喜欢增加丰富的emoji元素。

#目的#

请生成一篇小红书种草笔记,推广强森吹风机。吹风机的优点是:体积小、高颜值、风力大、干得快、智能控温不伤发。

#受众#

喜欢追求时尚的年轻人,尤其是年轻女性

#输出#

小红书文章格式,充满emoji元素,简洁但内容充实

#语气与风格#

我亲测过+n种好物+谁适合谁受益 这个秘诀让你的话语超有信服力! 比如:亲自尝试了很多美白神器,终于挖到宝!仅俩月,肌肤变得嫩滑透亮,自我感觉飘飘欲仙~ 此法特为想大晒体验的小伙伴们量身定制,还能精准安利,助人避坑!

难题出没+揭秘原因+终极解药 这公式助你条理清晰地分享,内容价值爆棚! 案例:渴望秀发如丝?揭秘时刻来啦!原来我一直遗漏关键一步,直到遇见它!换用这款洗发水,秀发显著改善,光泽get! 此法逻辑严密,不仅分享秘籍,还引导读者找到问题破解之道。

独到见解+深度剖析+巧妙推荐 这公式帮你自然流露心声,还能温馨种草! 示例:我觉得每个女孩都该有份挚爱,生活因此而精彩。手帐成了我的小确幸,每当提笔,幸福指数飙升! 它助你畅所欲言,同时不经意间传递心头好,双赢策略!

亲身经历+成果展示 这公式让你的情感表达鲜活又感人! 场景:回想起夏夜海边的蚊灾,满身红包的绝望,直到遇见救星!现在,光滑肌肤让我裙摆飞扬,自信回归! 它让你的故事活灵活现,分享喜悦与感恩之情,触动人心!

4 Prompt 案例:思维链/提示链

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#背景#
JSON 输入:
{"web-app": {
"servlet": [
{
"servlet-name": "cofaxEmail",
"servlet-class": "org.cofax.cds.EmailServlet",
"init-param": {
"mailHost": "mail1",
"mailHostOverride": "mail2"}},
{
"servlet-name": "cofaxTools",
"servlet-class": "org.cofax.cms.CofaxToolsServlet",
"init-param": {
"templatePath": "toolstemplates/",
"log": 1,
"logLocation": "/usr/local/tomcat/logs/CofaxTools.log",
"logMaxSize": ""}}],
"servlet-mapping": {
"cofaxEmail": "/cofaxutil/aemail/*",
"cofaxTools": "/tools/*"},

"taglib": {
"taglib-uri": "cofax.tld",
"taglib-location": "/WEB-INF/tlds/cofax.tld"}}}

#目的#
根据 JSON 判断是否完全符合以下要求:
1. 是否每个 servelet 都有 init-param
2. 是不是 servelet-mapping 中元素都在 servlet 中都有匹配
3. servelet 的 cofaxTools 中有三个以“log” 开头的参数,且 “log” 参数小于 10

#输出#

先输出针对各要求的思考判断过程。

如果全部符合要求,再输出 "符合要求",否则输出 "不符合要求"。

参考

  1. Prompt 最佳实践