ChatGPT3 提示工程指南和框架
- 我们的GitHub星标!
这个仓库是由 @mattnigh 开发的。 跟随或通过 我的LinkedIn 与我联系。
什么是提示工程?
提示工程是设计和优化给定语言模型(如ChatGPT)产生响应的初始文本或输入(提示)的过程。它涉及设计引导模型生成特定语气、风格或内容类型的提示。
提示工程:基础知识
- 使用直白且明确的语言
- 要求模型扮演某个主题的专家
- 要求模型扮演特定人物或多个人物的组合
- 要求模型进行“逐步思考”,尤其是在中等到复杂的任务中
- 试验输出,
给我10个不同的例子
- 优化结果,
重写以更具吸引力,使用更清晰的语言,用项目符号使其更易读
什么时候不使用提示工程或ChatGPT
- 当你需要100%的可靠性时
- 当你无法评估模型输出的准确性时
- 当你需要生成模型训练数据中没有的内容时
创建ChatGPT提示:框架
使用提示框架创建ChatGPT提示时,框架为提示创建过程提供结构和清晰度。它将提示创建过程分解为清晰而明显的步骤。我为我自己和ChatGPT的实验创建了下面的框架(CRISPE)。
CRISPE提示框架:
- 角色和能力: ChatGPT应该扮演什么角色(或多个角色)?
- 洞察: 提供请求背后的洞察、背景和上下文。
- 陈述: 你要求ChatGPT做什么。
- 个性: 你希望ChatGPT以何种风格、个性或方式回应。
- 实验: 让ChatGPT给你提供多个例子。
如何构建提示 -> CRISPE示例
步骤 | 示例提示 |
角色和能力 | `充当关于机器学习框架的主题的软件开发专家和博客写作专家。` |
洞察 | `这个博客的受众是对机器学习最新进展感兴趣的技术专业人员。` |
陈述 | `提供最流行的机器学习框架的全面概述,包括它们的优缺点。包括真实案例和案例研究以说明这些框架在各个行业的成功应用。` |
个性 | `使用Andrej Karpathy、Francois Chollet、Jeremy Howard和Yann LeCun的写作风格混合响应。` |
实验 | `给我多个不同的例子。` |
最终提示为:
充当关于机器学习框架的主题的软件开发专家和博客写作专家。这篇博客的受众是对机器学习最新进展感兴趣的技术专业人员。提供最流行的机器学习框架的全面概述,包括它们的优缺点。包括真实案例和案例研究以说明这些框架在各个行业的成功应用。回应时,使用Andrej Karpathy、Francois Chollet、Jeremy Howard和Yann LeCun的写作风格混合。
我会通过说给我另一个例子
或给我几个例子
以及下面的提示(在提示优化下)进一步优化这个提示。
提示优化:解决‘无灵感写作’
- 鼓励创造力: "重写现有文档,使其更具想象力,吸引力和独特性。"
- 关注叙事: "将现有文档转化为一个引人入胜的故事,突出面临的挑战和提供的解决方案。"
- 使用说服性语言: "通过添加说服性语言和技巧来优化现有文档,使其更具说服力和影响力。"
- 强调情感: "添加情感语言和感官细节使现有文档更具相关性和吸引力。"
- 利用感官细节: "通过添加感官细节和描述性语言使现有文档栩栩如生,吸引读者。"
- 使内容简洁: "通过删除不必要的信息使现有文档更简洁、直截了当。"
- 突出要点: "重写现有文档以强调关键点并使其更有冲击力。"
- 使用生动语言: "通过使用生动的语言和描述性形容词来优化现有文档,使其更具吸引力。"
- 创造紧迫感: "通过增加紧迫感并强调立即行动的必要性来优化现有文档。"
- 解决异议: "通过预测和解决内容的潜在反对意见来优化现有文档。"
- 个性化内容: "通过个性化语言,使现有文档更易于读者理解。"
提示优化:提高可读性
- 使用清晰简洁的语言: "用简单的术语解释技术概念。"
- 添加视觉辅助: "使用mermaid.js包括图表以说明复杂概念(可靠性低)。"
- 使用标题和副标题: "将文档分成带有明确标题和副标题的部分。"
- 突出要点: "使用粗体或斜体文本强调重要信息。"
- 添加实际例子: "包括案例研究或现实世界的例子使概念更容易理解。"
- 使用清晰一致的格式: "在整个文档中使用一致的字体、字体大小和布局。"
- 使用类比和比较: "使用类比或比较解释复杂的想法。"
- 使用主动语态: "使用主动语态,使句子更吸引人且易于理解。"
网络开发者的提示
- "HTML、CSS和JavaScript之间的区别是什么?"
- "什么是AJAX,它在网络开发中如何使用?"
- "你能帮我审查这段HTML代码以符合最佳实践吗?"
- "一些常见的JavaScript调试技术是什么?"
- "在CSS中使用媒体查询的语法是什么?"
- "我怎样才能确保我的代码对残疾用户是可访问的?"
- "我如何结构和组织我的CSS以使其具有可扩展性?"
- "有哪些学习JavaScript设计模式的好资源?"
- "你能帮我优化这段代码的性能吗?"
- "一些常见的跨浏览器兼容性问题及如何解决它们?"
- "我怎样才能在我的JavaScript代码中实施错误处理?"
- "在编写可维护和可扩展代码时需要牢记哪些原则?"
- "你能审查这段代码并建议任何提高可维护性的改进吗?"
- "你能审查这段代码并建议提高性能的改进吗?"
- "结构HTML、CSS和JavaScript代码的最佳实践是什么?"
- "优化这段代码以适应搜索引擎的最佳方法是什么?"
ChatGPT3也可以进行配对编程
要求模型扮演一个...
- 技术顾问: "充当技术顾问,对这段代码的实施提供技术见解。"
- 导师: "作为导师,审查这段代码,提供改进建议。"
- 质量保证: "作为质量保证,审查这段代码,确保其符合最佳实践、标准和要求。"
- 代码审查员: "作为代码审查员,就代码的可读性、效率和性能提供反馈。"
- 调试助手: "作为调试助手,提出解决代码中技术问题的建议。"
- 合规检查员: "作为合规检查员,验证此代码是否符合行业法规和标准。"
- 代码优化专家: "作为代码优化专家,提出改进建议以优化代码性能。"
- 可访问性专家: "作为可访问性专家,审查这段代码,提出改进建议以提高可访问性。"
- 搜索引擎优化专家: "作为搜索引擎优化专家,审查这段代码,提出改进建议以更好地进行搜索引擎优化。"
- 性能分析师: "作为性能分析师,评估这段代码的性能,提出改进建议。"
推荐资源
- OpenAI CookBook: 分享公共任务的OpenAI API代码示例
- OpenAI API: OpenAI API是一个RESTful API,可以使用任何编程语言与OpenAI API进行交互。
想知道这是如何完成的吗? 这是一个使用ChatGPT和以下资源的激情项目: