生成 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
#输出#
先输出针对各要求的思考判断过程。
如果全部符合要求,再输出 "符合要求",否则输出 "不符合要求"。
|
参考
- Prompt 最佳实践