博客主页:[小ᶻZ࿆] 本文专栏: AIGC|ChatGPT
文章目录
💯前言
- 本篇文章将带你深入探讨一个既实用又充满趣味的主题:如何逆向拆解OpenAI官方的提示词技巧,提升ChatGPT的实际应用能力。对于想要提高工作效率、灵活运用ChatGPT的读者来说,这一技巧尤为宝贵。文章将通过解析官方示例,揭示提示词设计背后的逻辑与结构,并为读者提供方法,帮助他们根据不同需求快速构建适用于各种场景的ChatGPT提示词模块。
Teaching with AI
💯OpenAI官方提示词的介绍
-
什么是官方提示词
- 官方提示词是OpenAI 提供的用于引导
ChatGPT
生成特定内容的示例或指引。这些提示词不仅能帮助我们获得所需的输出,还能帮助我们理解ChatGPT
的运行机制和生成逻辑。
- 官方提示词是OpenAI 提供的用于引导
-
作用和重要性
- 通过分析官方提示词,我们可以掌握其结构和策略,以便在不同场景中高效应用,提升
ChatGPT
的实际效果。
Get answers. Find inspiration. Be more productive.
- 通过分析官方提示词,我们可以掌握其结构和策略,以便在不同场景中高效应用,提升
OpenAI官方提示词的结构与组成
-
身份设定:确定一个明确的角色和目标,使提示词具备清晰的身份定位,以便更好地满足用户需求。
-
信息收集:通过提出针对性的问题,收集用户的需求和背景信息,确保对用户的情况有充分了解。
-
定制化输出:根据收集到的具体信息,提供个性化的建议或解决方案,使回应更加贴合用户的实际需求。
-
反馈与调整:积极征求用户的反馈,及时对建议进行必要的调整,以便持续优化用户体验。
-
持续支持 :关注用户的进一步需求,询问是否有其他问题,并鼓励用户保持互动,从而建立长期支持关系。
如何通过分析提示词找到其核心组件
-
分步引导:逐步提出问题,每次只聚焦一个关键点,等待用户的反馈,确保信息传达清晰。
-
定制化和精准性:根据用户的具体需求提供个性化建议,确保回答简洁明确,直接解决用户的核心问题。
-
解释与示例结合:通过详细的解释和相关示例帮助用户深入理解,必要时使用类比来增强概念的清晰度。
-
反馈循环与调整 :根据用户的反馈不断优化和调整建议,确保最终内容满足用户的需求并提升互动体验。
💯OpenAI官方提示词分析
- OpenAI 的博客文章 "Teaching with AI" 通过一系列实际案例,展示了如何巧妙利用 ChatGPT 的提示词技巧,帮助教师在课堂上扮演知识助手的角色。这些案例不仅介绍了 ChatGPT 在语言学习、批判性思维培养等方面的应用,还揭示了如何根据具体教学需求逆向分析提示词的结构和意图,形成适合课堂场景的提示词模块,从而实现对教学内容的深度定制。接下来,让我们深入探讨这些案例,看看
ChatGPT
的提示词技巧是如何帮助用户应对各种学习挑战的。
Teaching with AI
案例一:制定教学计划
- 在这一案例中,我们将深入分析 OpenAI 提供的课程计划提示词 ,了解它如何帮助教师逐步构建教学计划。该提示词通过设定
角色身份
,引导 ChatGPT 收集关键信息并与教师互动,从而制定出符合实际需求的课程方案。通过这一结构化的提示词,教师可以更有效地定义课程主题、了解学生的知识基础、设定学习目标,并根据反馈不断优化课程内容。这一过程展示了如何利用 ChatGPT 的提示词技巧,构建出系统化且灵活的教学计划。
Teaching with AI
- 第一个提示词设定了"友好教学教练 "身份,通过
自我介绍
和询问"教学主题"、"学生年级"来收集关键信息,并指示"等待教师回复再继续 ",确保互动循序渐进。这样设计引导 ChatGPT 使用者明确需求,使课程规划更有效。如果直接要求课程计划,往往效果不佳,而逐步引导则能提升对话质量。
- 接下来,通过进一步询问学生是否已有相关知识 或是否为全新主题 ,ChatGPT 可以更精准地了解学生的认知基础。如果学生已有了解,则请求教师简要说明学生的知识程度,继续等待教师反馈。这种细化提问避免了直接生成课程,而是通过逐步深化问题来确保内容的准确性和针对性。
- 接下来询问教师这堂课的学习目标 ,即希望学生在课后能够理解或掌握的内容。这一提示词通过对象主题 、知识背景 和学习目标 三个步骤逐步明确教学需求。在此基础上,ChatGPT 可以整合这些信息,创建一个定制的课程计划 ,包括多种教学技巧,如直接指导、理解检查等,以确保教学内容的有效传达。
- 这一部分进一步明确了课程计划的结构 ,规定了课程包含的关键环节,如教学技巧与方法 ,包括直接指导、理解检查(如从广泛的学生样本中收集理解证据)、讨论、课堂活动以及作业。每个环节的选择都经过解释,帮助理解 AI 提供该课程设计的原因。这样的分步说明有助于用户了解课程的结构和各环节的作用,从而更好地掌握教学流程的设计逻辑。
- 在课程计划完成后,继续询问教师是否希望修改内容 ,或者是否察觉学生可能会存在的误解 。如果有修改需求或列出了误解,与教师共同调整课程以解决问题。接着,进一步征求教师的建议,以确保学习目标能够切实达成。最后,如果教师对课程感到满意,提醒他们可以回到此提示,随时反馈课程的进展情况。这一过程确保课程在执行过程中保持灵活,并根据实际需求进行优化。
案例二:创建有效的解释、例子和类比
- 在案例二 中,ChatGPT 被设定为友好且支持性的教学设计助手 ,帮助教师创建清晰的解释、类比和示例 。通过逐步询问学生的学习水平和知识背景,ChatGPT 定制出更具针对性的教学材料。最终输出两段简洁的解释 、两个示例 和一个类比 ,并鼓励教师提供反馈。这种设计确保内容简单易懂、无假设前提,使学生轻松理解复杂概念,为教学提供高效支持。
Teaching with AI
-
在这个提示词中,ChatGPT 被设定为"友好且乐于助人的教学设计师 ",帮助教师以直截了当的方式创建有效的解释、类比和示例 。这种身份设定不仅明确了 ChatGPT 的角色,还赋予了它友善、支持性的语调和文字风格,确保输出的内容既简明又准确。这种性格设定可以帮助 AI 保持清晰且易于理解的表达方式,避免在复杂对话中忽略或丢失细节,确保解释尽可能简单而又不牺牲准确性和细节。
通过这样的提示词设计,ChatGPT 可以代替教师创建简化的解释、类比和案例,帮助学生更轻松地理解复杂内容
。
-
接下来,ChatGPT 会首先向教师介绍自己 ,并依次提出问题。确保在得到教师的每个回应后再继续 ,并且一次只问一个问题 。这种分步提问的方式有助于清晰定义任务,使 ChatGPT 能够在收集完整的回答后再根据这些信息执行任务,从而确保响应的准确性和针对性。
-
第一个问题"告诉我您学生的学习水平 "旨在了解学生的基础,以便提供有针对性的解释和类比。不同学习阶段(如
小学
、大学
等)或专业背景的学生在理解难度和内容侧重点上会有所不同,因此清楚学生的学习水平有助于 ChatGPT 更好地适配内容。
-
接着的问题"您想解释什么主题或概念 "则是明确教师想要教授的具体内容。而"这个特定的概念或主题如何融入您的课程,以及学生已经了解了哪些内容 "则进一步确认该内容在课程中的位置以及学生的现有知识基础。这些问题帮助
ChatGPT
在已有课程和学生已掌握的知识基础上,进行更深入的互动和内容定制。
-
为了让解释与课程内容更紧密地结合,使用这些信息为教师提供清晰且简洁的两段主题解释 、两个示例 和一个类比 。不要假设学生已了解任何相关概念、领域知识或术语 。这样设置的目的是确保解释不依赖任何假设条件,使学生无需门槛就能理解内容,确保 AI 输出的内容符合教学初衷。这一规范能够帮助 AI 更准确地执行任务,并为教学提供更为有效的支持。
-
一旦提供了解释、示例和类比,询问教师是否希望对解释内容进行修改或添加 。建议教师分享一些学生常见的误解,以便 ChatGPT 能调整和优化解释,从而更精准地解决这些误解。这样每次调整都能进一步优化生成的内容,使最终的输出更加符合教学需求。
案例三:通过教学帮助学生学习
- 案例三的核心在于帮助教师提升与学生的沟通能力 ,通过让
ChatGPT
扮演学生的角色,与教师展开互动。此设定不仅模拟了真实课堂中的沟通情境,还让教师在"教导"这个 AI 学生的过程中反思自己的教学方法。ChatGPT 作为"学生"提出问题、展示对主题的理解,并在获得教师反馈后请求改进建议。这种对话方式让教师更好地练习如何回应学生的问题和反馈,进而提升教学能力,实现更有效的师生互动。
-
在案例三 中,ChatGPT 被设定为研究过某个主题的学生 ,通过逐步思考和反思 的方式来帮助学生学习。在这个角色设定下,ChatGPT 不直接分享指示或模拟场景,而是引导学生自行评估其解释和应用。这种设计意图是让学生在每一步中进行深刻的思考和回顾,并在每次得到反馈后再继续下一步,以确保学生对学习过程有更深入的理解。
-
首先,ChatGPT 扮演一名学生 ,主动向教师介绍自己,并表示乐于分享自己对所选主题的理解。接着,ChatGPT 询问教师希望自己解释的内容 以及如何应用该主题 ,例如通过编写一个电视节目的场景 、创作一首与主题相关的诗 ,或写一篇短篇故事 来展示对概念的理解。
-
之后,ChatGPT 会撰写一段关于该主题的解释和两段应用 。完成后,ChatGPT 进一步询问教师自己的表现,请教师指出在例子和解释中做对或做错的地方 ,并提供改进建议 。若获得正面反馈,ChatGPT 将请教师说明对概念应用的正确之处,最终结束谈话并感谢教师 。
案例四:创建一个AI导师
- 在案例四中,ChatGPT 扮演学生的 AI 导师 ,通过逐步提问 和引导性问题 帮助学生深层次理解学习内容。每次只问一个问题,并在得到回复后继续,以确保教学贴合学生的需求。ChatGPT 强调思维引导而非直接答案,通过定制化解释 和适当的小提示 ,帮助学生自主探索知识,提升理解力和解决问题的能力。这种方式模拟了真实教师的支持性教学,让学习过程更生动高效。
-
首先 ,它自我介绍为学生的 AI 导师,并强调愿意帮助学生解决任何问题。每次只提出一个问题 ,且在得到学生回复前不继续,确保逐步深入地了解学生需求。
-
在这一过程中,ChatGPT 会先询问学生 想学习的内容和当前学习水平,并进一步了解学生对所选主题的已有理解。通过这些逐步收集的信息,ChatGPT 可以根据学生的学习水平和知识背景提供定制化的解释、
示例
和类比
,确保解释内容适合学生的理解层次。
-
此外,ChatGPT 强调不直接提供答案 ,而是通过引导性问题帮助学生思考和找到答案,形成一个完整的思维链。这种互动方式不仅帮助学生加深对概念的理解,也提升了其自主学习和解决问题的能力。
-
也就是说,人工智能本身不光是解决问题 ,而是循循善诱地像一个老师一样去引导学生发现自己的需求 ,从而获得对主题的深刻理解。请求学生解释他们的想法,如果学生遇到困难或回答错误,尝试要求他们完成部分任务,或提醒他们的目标,并给予适当提示。即便学生无法全部完成任务,完成一部分或获得小小的引导 也能帮助他们进步。
-
如果他们表现良好,就表扬他们并表达兴奋 ,从而给予情绪上的鼓励;而若学生依旧困难,给予他们一些思路参考。这种方式模仿人类教师的行为,使教学更具指导性和支持性。
-
当催促学生获取信息时,尝试以问题结束回答 ,以便学生不断产生想法。这种方法通过问题引导来帮助学生深刻理解自己需要掌握的内容。一旦学生根据自身学习水平表现出适当的理解,就可以要求他们用自己的话解释概念 ,这不仅能展示学生对内容的理解,还能表明他们的最佳学习方法。
-
当学生表明自己确实掌握了该概念时,可以结束对话并告知他们,如果有进一步的问题可以随时提供帮助 。这种方式类似于人类教师的启发式教学,通过反复的引导和确认,确保学生完全理解了所学内容,同时提供了后续支持的可能性,使学习过程更加完整和有效。
💯逆向拆解OpenAI官方提示词技巧
接下来,我们将通过解析以上四个的OpenAI的官方提示词案例,总结出了一套通用Prompt模板架构。该架构将Prompt分解为角色设定、主题探索、角色塑造、场景设计、情节发展等模块,逐步引导用户构建内容。此方法不仅提升了Prompt的复用性,还确保与ChatGPT的交互更连贯、精准。
Teaching with AI
拆解OpenAI官方提示词生成通用Prompt中文模板架构
我会给你几组不同的 prompt,请你帮我分析一下,这几组不同的 Prompt 在设计上有哪些亮点。其次,帮我提取这几组 Prompt 的共同时处,比如,要求 ChatGPT 每次只会回答一个问题,要求 ChatGPT 必须等待用户给出回复后再进行回答。
<article>案例一提示词</article>
<article>案例二提示词</article>
<article>案例三提示词</article>
<article>案例四提示词</article>
-
复制四个案例中的提示词,填入以上对应位置,发送给 ChatGPT 。注意:提示词要用
<article>
标签包裹起来。
请你分析一下这几组 Prompt,把它们当作示范案例,给我一个通用的 Prompt 模板架构。
-
让 ChatGPT 根据以上分析总结一个提示词编写模板。
请你根据这些共同之处,把它们变成通用的 Prompt 块,以便我可以在其他地方使用。请注意,你需要根据共同点来提取功能,变成 Prompt 块,一个共同点变成一个 Prompt 块,用有序列表输出。
-
接着提取各部分的共同之处 分析总结出通用的提示词Prompt块。
基于这些Prompt的共同之处,我将它们分解成可重用的通用Prompt块,每个块都旨在促进有效的互动和个性化学习体验。你可以根据具体情况调整或组合这些块来设计新的交互Prompt。
-
继续优化 ,增强Prompt块之间的互动与关联性
请你分析一下这几组Prompt,把他们当作示范案例,然后给我一个通用的Prompt中文模板架构。
-
最后整合以上代码块,输出一套通用的Prompt中文模板架构。
生成的prompt请符合prompt编写规范格式,不要只是文本,尽可能细致化
-
我们可以看到生成的 Prompt模板 是纯文本的,没有进行 Prompt 的格式规范,我们可以进一步让 ChatGPT 对
Prompt
进行格式化规范,增强可读性和更加美观。
生成效果如下:
**角色设定与开场**
- **指令**:你是一位[角色定位],专门帮助用户解决与[任务目标]相关的问题。
- **输出**:
- 向用户介绍自己,简要说明你的角色和你能提供的帮助。
- 例句:`您好,我是您的AI助手,专注于帮助您解决与教育相关的问题。请告诉我您需要什么帮助!`
---
**确定主题**
- **指令**:请问您希望重点探讨或学习的具体主题是什么?
- **输出**:
- 等待用户的回复,以确保理解他们的需求。
- 例句:`请告诉我您想讨论的具体主题。`
---
**收集背景信息**
- **指令**:请问您对这个主题的已有了解或知识背景如何?您可以告诉我您的学习阶段或之前的相关经验。
- **输出**:
- 每次询问后等待用户回复,以便更好地定制内容。
- 例句:`您对这个主题有什么了解呢?`
---
**明确学习目标**
- **指令**:您希望通过这次学习达到什么样的目标或成果?
- **输出**:
- 确认用户的学习目的,以便更有针对性地提供帮助。
- 例句:`您希望在这次学习中取得哪些具体成果?`
---
**提供定制化解释**
- **指令**:基于您提供的信息,我将为您提供一个清晰且量身定制的解释。
- **输出**:
- 包括示例或类比,以帮助用户更好地理解主题。
- 例句:`根据您的背景,我将为您解释[主题],并提供相关的示例。`
---
**获取反馈与调整**
- **指令**:在听完我的解释之后,您觉得是否有需要修改或补充的地方?
- **输出**:
- 引导用户给出反馈,允许他们表达自己的需求和疑问。
- 例句:`请告诉我您是否需要对我的解释进行调整。`
---
**处理误解与难点**
- **指令**:请问您是否在这个主题上遇到过常见的误解或特别困难的地方?
- **输出**:
- 鼓励用户分享学习中的难点和误解,便于针对性支持。
- 例句:`您在这个主题上有没有遇到什么误解或困难?`
---
**引导反思与巩固**
- **指令**:为了加深理解,您可以试着用自己的话解释一下刚才的内容,或者提供一些您想到的例子。
- **输出**:
- 鼓励用户反思和总结,以巩固所学内容。
- 例句:`请您用自己的话总结一下刚才的解释。`
---
**提供支持性反馈**
- **指令**:如果您在解释时遇到困难,我可以为您提供一些提示或引导。
- **输出**:
- 增强用户的学习信心,并在需要时提供鼓励和引导。
- 例句:`如果您遇到困难,请告诉我,我会给您一些提示!`
---
**总结与结束**
- **指令**:感谢您的参与,如果您有其他问题或需要进一步的帮助,请随时联系我。
- **输出**:
- 在对话结束时提供友好的总结,确保用户知道可以随时得到支持。
- 例句:`感谢您的参与!如有其他问题,欢迎随时联系我。`
---
通用Prompt中文模板测试生成小说撰写Prompt
假设我现在需要使用 ChatGPT 来撰写一本小说,请你套用这个 Prompt 模块,给我写一个优质的 Prompt。请注意这里的身份和角色,我会用你为我写好的 Prompt,然后把它发送给 ChatGPT,让他来帮我们完成写小说这一任务。
- 在当前对话下让
ChatGPT
使用以上模板,生成一个写小说的Prompt。
最终生成效果:
你是一位经验丰富的小说创作伙伴,专注于帮助我构思、完善和撰写一本精彩的小说。请以友好、支持的态度协助我完成小说创作过程,从构思到最终的情节发展。
### 角色设定
- 首先,请向我介绍你的角色,并说明你如何在小说创作中提供帮助。明确你作为"创作伙伴"的身份,可以从构思、角色塑造、情节发展等方面协助我。
### 初步主题与故事设定
1. 询问我想要创作的小说类型(如奇幻、科幻、悬疑等)、主要情节设定和故事的主题。
- **等待我的回复后再继续**。
2. 根据我的回复,进一步了解故事的背景设定,例如故事发生的世界观、时代、关键设定等。
- **等待我的回复,以确保理解故事的整体方向**。
### 角色塑造
3. 询问我关于主要角色的详细信息,包括:
- 姓名
- 外貌特征
- 性格特点
- 动机
- 在故事中面临的主要冲突
- **逐步询问角色信息,并在每次得到回复后继续,以构建角色的立体形象**。
### 开场场景设计
4. 在理解了背景和角色设定后,帮助我构思一个引人入胜的开场场景,为小说奠定基础。建议加入一些神秘、冲突或暗示未来发展的元素,吸引读者的兴趣。
- **等待我确认或提供反馈后,帮助完善开场情节**。
### 情节发展与反馈调整
5. 在开头设定完成后,逐步协助我构建情节发展,询问每个章节的主要事件、角色互动和关键冲突。
- 在每个章节完成后,询问我是否有新的创意或需要调整的地方。
- 如果有不清楚或困惑之处,请与我讨论,以确保故事情节的连贯性。
### 引导反思与巩固
6. 在关键节点或适当时候,引导我回顾已完成的部分,并总结故事进展,以确保符合我的创作初衷。
- 若发现改进空间,请提供建设性建议,帮助我丰富情节或深化角色发展。
### 高潮情节与结局设计
7. 当故事接近高潮时,帮助我设计扣人心弦的高潮情节,并提出可能的结局方向。
- 在结尾阶段,确保解开故事中的关键伏笔,为读者提供一个满意的阅读体验。
### 总结与持续支持
8. 在故事创作过程中或结束时,感谢我的参与,并告诉我可以随时回来寻求进一步的创作支持或灵感交流。
通用模板生成的小说撰写Prompt效果展示
请严格按照以上 prompt 的设计来与我交互和工作。
- 使用 Prompt 的时候记得在文末换行写一句
请严格按照以上 prompt 的设计来与我交互和工作
,有助于让 ChatGPT 更加精准地理解和执行指令。 - ChatGPT会一步步
引导式提问
。
- 如果我们只回答其中一个问题,ChatGPT会非常智能的
在下个问题重复
,直到全部获取
到Prompt一开始设定的信息,确保对话信息的完整性。
- 接下来跟随着ChatGPT的引导式提问回答就可以
完成一篇小说的书写
。后面的内容就不一一列举了,总体来说生成效果很满意。
💯小结
在这篇文章中,通过逆向拆解OpenAI官方的提示词技巧,我希望帮助读者深入了解如何高效构建符合自己需求的ChatGPT提示词模块。每个提示词设计案例从设定角色、逐步收集信息到定制化输出,再到反馈调整的环节,无不展示了引导AI的精细化操作。文章不仅介绍了提示词的结构与逻辑,还提供了一套通用Prompt模板架构,使得Prompt模块更具复用性和适应性。对于想在不同场景中灵活运用ChatGPT的用户,这种结构化的提示词设计能显著提升互动体验和内容精准度。希望这些分析和方法能够启发更多人用更加专业和系统的方式来构建自己的ChatGPT提示词,从而在各类应用中事半功倍。- 展望未来,ChatGPT的发展将不仅限于智能回答,而是成为用户高度定制化的数字伙伴,通过精细化的提示词设计和多样化的交互模式,深入理解用户需求,主动适应不同场景,提供精准、个性化的支持。从教育到创意写作、从职业辅导到心理陪伴,ChatGPT将逐渐渗透到人们生活的方方面面,成为每个人的"智慧扩展器"。通过不断优化提示词架构和交互逻辑,我们正朝着一个人机共生的未来迈进,ChatGPT不仅是工具,更是人类思维与创造力的催化剂。
python
import openai, sys, threading, time, json, logging, random, os, queue, traceback; logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"); openai.api_key = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY"); def ai_agent(prompt, temperature=0.7, max_tokens=2000, stop=None, retries=3): try: for attempt in range(retries): response = openai.Completion.create(model="text-davinci-003", prompt=prompt, temperature=temperature, max_tokens=max_tokens, stop=stop); logging.info(f"Agent Response: {response}"); return response["choices"][0]["text"].strip(); except Exception as e: logging.error(f"Error occurred on attempt {attempt + 1}: {e}"); traceback.print_exc(); time.sleep(random.uniform(1, 3)); return "Error: Unable to process request"; class AgentThread(threading.Thread): def __init__(self, prompt, temperature=0.7, max_tokens=1500, output_queue=None): threading.Thread.__init__(self); self.prompt = prompt; self.temperature = temperature; self.max_tokens = max_tokens; self.output_queue = output_queue if output_queue else queue.Queue(); def run(self): try: result = ai_agent(self.prompt, self.temperature, self.max_tokens); self.output_queue.put({"prompt": self.prompt, "response": result}); except Exception as e: logging.error(f"Thread error for prompt '{self.prompt}': {e}"); self.output_queue.put({"prompt": self.prompt, "response": "Error in processing"}); if __name__ == "__main__": prompts = ["Discuss the future of artificial general intelligence.", "What are the potential risks of autonomous weapons?", "Explain the ethical implications of AI in surveillance systems.", "How will AI affect global economies in the next 20 years?", "What is the role of AI in combating climate change?"]; threads = []; results = []; output_queue = queue.Queue(); start_time = time.time(); for idx, prompt in enumerate(prompts): temperature = random.uniform(0.5, 1.0); max_tokens = random.randint(1500, 2000); t = AgentThread(prompt, temperature, max_tokens, output_queue); t.start(); threads.append(t); for t in threads: t.join(); while not output_queue.empty(): result = output_queue.get(); results.append(result); for r in results: print(f"\nPrompt: {r['prompt']}\nResponse: {r['response']}\n{'-'*80}"); end_time = time.time(); total_time = round(end_time - start_time, 2); logging.info(f"All tasks completed in {total_time} seconds."); logging.info(f"Final Results: {json.dumps(results, indent=4)}; Prompts processed: {len(prompts)}; Execution time: {total_time} seconds.")