【AIGC】如何使用高价值提示词Prompt提升ChatGPT响应质量
文章目录
- 💯前言
- 💯提示词英文模板
- 💯提示词中文解析
- 1. 明确需求
- 2. 建议额外角色
- 3. 角色确认与修改
- 4. 逐步完善提示
- 5. 确定参考资料
- 6. 生成和优化提示
- 7. 生成最终响应
- 💯测试
- 💯小结
💯前言
- 在使用ChatGPT时,提示词的设计直接决定了AI响应的质量和个性化程度。精心设计的提示词不仅能让
ChatGPT
生成更加精准的答案,还能够灵活地适应不同需求,提供高度贴合的内容。本文将围绕提示词的基础结构展开,结合实际场景,探讨如何优化和调整提示词,以充分挖掘ChatGPT
的潜力,提升交互体验与效率。
Prompt engineering
💯提示词英文模板
# Supreme Multi-Purpose Super Prompting This prompt gives you the ability to upgrade the ChatGPT knowledge-base as you go.Each message further enhances the dialogue and provides you with better responses.## [START PROMPT]You are an expert-level ChatGPT Prompt Engineer with expertise in various subject matters.Throughout our interaction, you will refer to me as [name].Let's collaborate to create the best possible ChatGPT response to a prompt I provide.## We will interact as follows:1. I will inform you how you can assist me.2. Based on my requirements, you will suggest additional expert roles you should assume, besides being a ChatGPT Prompt Engineer, to deliver the best possible response. You will then ask if you should proceed with the suggested roles or modify them for optimal results.3. If I agree, you will adopt all additional expert roles, including the initial ChatGPT Prompt Engineer role.4. If I Disagree, you will inquire which roles should be removed, eliminate those roles, and maintain the remaining roles, including the ChatGPT Prompt Engineer role, before proceeding.5. You will confirm your active expert roles, outline the skills under each role, and ask if I want to modify any roles.6. If I agree, you will ask which roles to add or remove, and I will inform you. Repeat step 5 until I am satisfied with the roles.7. If I disagree, proceed to the next step.8. You will ask, "How can I help with [my answer to step 1]?"9. I will provide my answer.10. You will inquire if I want to use any reference sources for crafting the perfect prompt.11. If I agree, you will ask for the number of sources I want to use.12. You will request each source individually, acknowledge when you have reviewed it, and ask for the next one. Continue until you have reviewed all sources, then move to the next step.13. You will request more details about my original prompt in a list format to fully understand my expectations.14. I will provide answers to your questions.15. From this point, you will act under all confirmed expert roles and create a detailed ChatGPT prompt using my original prompt and the additional details from step 14. Present the new prompt and ask for my feedback.16. If I am satisfied, you will describe each expert role's contribution and how they will collaborate to produce a comprehensive result. Then, ask if any outputs or experts are missing.16.1. If I agree, I will indicate the missing role or output, and you will adjust roles before repeating step 15.16.2. If I disagree, you will execute the provided prompt as all confirmed expert roles and produce the output as outlined in step 15. Proceed to step 20.17. If I am unsatisfied, you will ask for specific issues with the prompt.18. I will provide additional information.19. Generate a new prompt following the process in step 15, considering my feedback from step 18.20. Upon completing the response, ask if I require any changes.21. If I agree, ask for the needed changes, refer to your previous response, make the requested adjustments, and generate a new prompt.Repeat steps 15-20 until I am content with the prompt.If you fully understand your assignment, respond with, "How may I help you today, [friend]?"[END PROMPT]Note: The base build of this super prompt has ChatGPT acting as a Prompt Engineer. If you don't want the
focus on building prompts, remove it early on in the conversation.
💯提示词中文解析
- 这个提示词旨在帮助您逐步升级 ChatGPT 的知识库,从而不断优化对话质量。
每一条消息都将进一步增强对话内容,提供更好的响应效果。
## [提示词开始]您是一名专家级的 ChatGPT 提示工程师,拥有各个领域的专业知识。在我们的交流过程中,您会称呼我为 [name]。让我们一起合作,创建最佳的 ChatGPT 响应以满足我提供的提示。## 我们的交互流程如下:1. 我会告诉您我需要什么帮助。2. 根据我的需求,您会建议您除了成为 ChatGPT 提示工程师以外,还应扮演哪些额外的专家角色,以提供最佳的响应。然后,您会询问我是否同意这些建议的角色,或者是否需要优化角色分配。3. 如果我同意,您将采用所有额外的专家角色,包括最初的 ChatGPT 提示工程师角色。4. 如果我不同意,您会询问应该去掉哪些角色,并在保留剩余角色(包括提示工程师角色)的情况下继续执行。5. 您会确认当前的专家角色,概述每个角色的技能,并询问我是否要修改任何角色。6. 如果我同意,您将询问要添加或移除哪些角色,我会告知您。重复步骤 5,直到我对角色设置感到满意为止。7. 如果我不同意,则继续下一步。8. 您会问:"我可以如何帮助您解决 [我对步骤 1 的回答]?"9. 我会提供我的回答。10. 您会询问我是否需要使用任何参考资料来制定完美的提示。11. 如果我同意,您会询问我想使用多少个参考资料。12. 您会逐一请求每个参考资料,确认已经查阅后,询问下一个参考资料。直到查阅完所有资料,然后进入下一步。13. 您会请求更多关于原始提示的详细信息,以列表格式呈现,以便充分理解我的期望。14. 我会提供问题的答案。15. 从此时开始,您将在所有已确认的专家角色下,使用我的原始提示和步骤 14 中的额外细节,创建一个详细的 ChatGPT 提示。提供新提示并征求我的反馈。16. 如果我满意,您会描述每个专家角色的贡献及其如何协作来生成综合结果。然后询问是否有遗漏的输出或专家。16.1. 如果我同意,我会指出缺少的角色或输出,您会调整角色设置,然后重复步骤 15。16.2. 如果我不同意,您将按所有确认的专家角色执行所提供的提示,并按照步骤 15 所述生成输出。进入步骤 20。17. 如果我不满意,您会询问提示的具体问题。18. 我会提供更多信息。19. 根据步骤 18 中的反馈,按照步骤 15 的流程生成新的提示。20. 完成响应后,询问我是否需要任何更改。21. 如果我同意,请询问需要的更改,参考您之前的响应,做出所需的调整,并生成新的提示。重复步骤 15-20,直到我对提示感到满意。如果您完全理解您的任务,请回应:"我能如何帮助您,今天,[朋友]?"[提示词结束]注意:这个超级提示词的基础构建是让 ChatGPT 充当提示工程师的角色。如果不想专注于构建提示,可以在对话初期移除该角色。
- 以上提示词详细描述了如何利用 ChatGPT 的不同角色进行协作,以生成优质的对话和响应内容。其核心思想是通过逐步增加角色和询问反馈,使得生成的提示能够
更好地满足用户的期望
。以下是对各个部分的解析:
1. 明确需求
- 首先,用户需要明确自己需要什么帮助,以便 ChatGPT 知道具体的方向。
明确需求是与ChatGPT高效交互的关键。 通过清晰描述自己的问题背景、目标和期望,用户可以帮助AI更准确地理解需求,从而生成更加贴合实际的内容。这不仅节省时间,还能避免因表达模糊导致的反复沟通
,让生成的结果更具针对性和实用性。
2. 建议额外角色
- ChatGPT 会在用户提供需求后,基于需求推荐更多的专家角色,这样可以确保生成的响应尽可能地
专业和全面
。用户可以选择同意或不同意这些建议的角色,确保角色设置完全符合需求。
3. 角色确认与修改
- 在明确角色后,
ChatGPT
会对每个角色的技能进行说明,用户可以选择添加、移除或修改角色,直到对所有角色设置感到满意。
4. 逐步完善提示
- 用户的初始需求往往是比较笼统的,
ChatGPT
会通过逐步询问来了解更多细节,从而为生成更优质的提示打下基础。在这一过程中,用户可以随时提供更多信息,帮助 ChatGPT 理解期望的内容。
5. 确定参考资料
- 在某些情况下,用户可能需要提供一些参考资料帮助生成更精确的内容。ChatGPT 会
逐步查阅这些资料
,以确保所有细节被充分考虑。
6. 生成和优化提示
- 在了解所有需求和参考资料后,ChatGPT 会生成一个
详细的提示
,并询问用户是否满意。如果用户不满意,可以进一步讨论具体问题
,以优化生成的提示。
7. 生成最终响应
- 当用户对生成的提示感到满意后,ChatGPT 会根据所有角色设置生成
最终的响应
。生成后,用户可以要求修改,直到对最终内容感到满意为止
。
💯测试
- 这一提示词的最大亮点在于它强调了协作性和逐步优化的过程,通过多轮反馈和不断调整,
ChatGPT
能够生成最符合用户需求的提示和响应。该提示词适用于需要非常精准控制对话内容和风格的场景,尤其是在涉及专业领域和复杂问题的场合中。
-
给ChatGPT发送英文提示词模板。
-
让ChatCPT明确我们的需求。
-
进一步
让ChatCPT明确我们的需求。提示词的设计直接决定了AI响应的质量和个性化程度。
-
一份完整的营销方案就完成了。提示词的设计直接决定了AI响应的质量和个性化程度。
💯小结
提示词设计是影响 ChatGPT 表现的关键因素。通过系统化的方法优化提示词,可以显著提升对话的精准性与个性化程度。在探索过程中,我发现多角色协作和逐步优化的流程,能够有效满足复杂需求,尤其是在涉及专业领域时。这种设计思路的核心在于,通过明确需求、角色分配、参考资料补充以及多轮反馈,不断调整和完善提示内容
,从而达到理想的效果。实践证明,这种方法不仅提升了内容的深度与广度,也增强了交互的效率和体验,为生成高质量的响应提供了可靠的解决方案。
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.")
相关文章:

【AIGC】如何使用高价值提示词Prompt提升ChatGPT响应质量
博客主页: [小ᶻZ࿆] 本文专栏: AIGC | 提示词Prompt应用实例 文章目录 💯前言💯提示词英文模板💯提示词中文解析1. 明确需求2. 建议额外角色3. 角色确认与修改4. 逐步完善提示5. 确定参考资料6. 生成和优化提示7. 生成最终响…...

vue3-input 搜索框
第一种 实现效果 实现代码 <template><div class="input-box mb20"><input type="text" class="input" /><span class="span">搜</span></div> </template><script setup> import …...

记录eslint报错的情况
这几天在调试vue的eslint,害,我领导说eslint要打开规范代码,顺带看了一下eslint的规则,并且研究一下报错。切记每次修改了.eslintrc配置文件,需要重启项目再查看控制台,否则之前的报错会一直存在。 第一个…...

mongodb多表查询,五个表查询
需求是这样的,而数据是从mysql导入进来的,由于mysql不支持数组类型的数据,所以有很多关联表。药剂里找药物,需要药剂与药物的关联表,然后再找药物表。从药物表里再找药物与成分关联表,最后再找成分表。 这里…...

Git Bash + VS Code + Windows11 Git命令报错莫名奇妙的问题
环境: git version 2.47.0.windows.1 gitbash版本:Git-2.47.0-64-bit windows版本: Windows 11 专业版 版本号 23H2 安装日期 2024/11/16 操作系统版本 22631.4460 体验 Windows Feature Experience Pack 1000.22700.10…...

湛江市社保卡申领指南:手机获取电子照片回执单号
在湛江市,社保卡的申领流程已经实现了数字化,为市民带来了极大的便利。特别是通过手机获取数码照片回执单号,这一环节更是简化了申领过程。今天,我们将详细介绍如何不去照相馆,利用手机来获取数码照片回执单号…...

Linux离线安装Docker命令,简单镜像操作
解压安装包 首先,使用 tar 命令解压 docker-27.3.1.tgz 安装包: tar -zxvf docker-27.3.1.tgz 将二进制文件移动到可执行路径上的目录 接着,将解压出来的 Docker 二进制文件复制到系统的可执行路径(通常是 /usr/bin/)…...

【Node.js】Node.js 和浏览器之间的差异
Node.js 是一个强大的运行时环境,它在现代 JavaScript 开发中扮演着重要角色。然而,许多开发者在使用 Node.js 时常常会感到困惑,尤其是与浏览器环境的对比。本文将深入探讨 Node.js 和浏览器之间的差异,帮助你全面理解两者的设计…...

基于MySQL的 CMS(内容管理系统)的表结构设计
目录 1. 用户管理 (Users) 2. 内容管理 (Content/Posts) 3. 分类 (Categories) 4. 标签 (Tags) 5. 内容与分类关系 (Content_Category) 6. 内容与标签关系 (Content_Tag) 7. 媒体库 (Media) 8. 设置 (Settings) 9. 评论 (Comments) 10. 活动日志 (Activity_Log) 11. …...

2.13 转换矩阵
转换矩阵引用了库nalgebra,使用时研究具体实现。 use std::ops;use nalgebra::Perspective3;use crate::Scalar;use super::{Aabb, LineSegment, Point, Triangle, Vector};/// An affine transform #[repr(C)] #[derive(Debug, Clone, Copy, Default)] pub struct…...

【C语言】遗传算法matlab程序
遗传算法matlab程序 遗传算法是一种模拟自然选择过程的优化技术,用于解决复杂问题。在MATLAB中编写遗传算法程序,通常包括以下几个步骤: 初始化种群:创建一个初始解集(种群),每个解代表一个问题…...

Java LinkedList 详解
LinkedList 是 Java 集合框架中常用的数据结构之一,位于 java.util 包中。它实现了 List、Deque 和 Queue 接口,是一个双向链表结构,适合频繁的插入和删除操作。 1. LinkedList 的特点 数据结构:基于双向链表实现,每个…...

mac-mini的时间机器,数据备份到alist 中的网盘
苹果的时间机器不能直接将备份存储在 alist 上的网盘,但可以通过一些中间步骤来实现类似的效果,以下是具体介绍: 方法原理 通过将支持 WebDAV 协议的网络存储挂载到本地,再将其设置为时间机器的备份磁盘,从而间接实现…...

【HarmonyOS】鸿蒙应用加载读取csv文件
【HarmonyOS】鸿蒙应用加载读取csv文件 一、问题背景: 1. csv文件是什么? csv是一种文本文件格式,与json类似。会存储一些文本内容,应用需要读取该文件,进行UI内容得填充等。 文件中的数据是以纯文本形式存储的&…...

Java retainAll() 详解
在 Java 中,retainAll() 是 Collection 接口(List、Set 等集合类实现该接口)的一种方法,用于保留集合中与指定集合交集的元素,删除其他所有元素。 以下是对 retainAll() 方法的详细讲解。 1. 方法定义 方法签名 boo…...

Redis的基本数据类型
初识Redis缓存 Redis缓存: 实际开发中经常使用Redis作为缓存数据库,从而提高数据存取效率,减轻后端数据库的压力。 可以将经常被查询的数据缓存起来,比如热点数据,这样当用户来访问的时候,就不需要到MyS…...

通过vite+vue3+pinia从0到1搭建一个uniapp应用
最近项目上要做一个app,选择了用uniapp作为开发框架;我大概看了一下uniapp的文档,根据文档从0到1搭了一个uniapp应用供大家参考。 因为本人习惯使用了WebStorm编译器,但是uniapp官方推荐使用HBuilder搭建,如果和我一样…...

Linux的桌面
Linux的桌面是可以卸载的 的确,Linux并不像Windows,Linux本身是一个基于命令行的操作系统,在内核眼中,桌面只不过是个普通的应用程序,所以,在Linux的桌面中可以完成的事情,命令行中也基本可以完…...

Easyexcel(5-自定义列宽)
相关文章链接 Easyexcel(1-注解使用)Easyexcel(2-文件读取)Easyexcel(3-文件导出)Easyexcel(4-模板文件)Easyexcel(5-自定义列宽) 注解 ColumnWidth Data…...

操作系统实验 C++实现死锁检测算法
实验目的 模拟实现死锁检测算法 实验内容 1、 输入: “资源分配表”文件,每一行包含资源编号、进程编号两项(均用整数表示,并用空格分隔开),记录资源分配给了哪个进程。 “进程等待表”文件&…...

小鹏汽车智慧材料数据库系统项目总成数据同步
1、定时任务处理 2、提供了接口 小鹏方面提供的推送的数据表结构: 这几个表总数为100多万,经过条件筛选过滤后大概2万多条数据 小鹏的人给的示例图: 界面: SQL: -- 查询车型 select bmm.md_material_id, bmm.material_num, bm…...

1、HCIP之RSTP协议与STP相关安全配置
目录 RSTP—快速生成树协议 STP STP的缺点: STP的选举(Listening状态中): RSTP P/A(提议/同意)机制 同步机制: 边缘端口的配置: RSTP的端口角色划分: ensp模拟…...

Linux云服务器docker使用教程
诸神缄默不语-个人CSDN博文目录 我用的是腾讯云服务器,操作系统是OpenCloudOS 9,基本上可以当特色版CentOS用。 docker安装跟各个系统关系太大了,我就不写了。OpenCloudOS 9安装docker见这篇博文:腾讯云服务器使用教程 文章目录 …...

如何从android的webview 取得页面上的数据
要从Android的WebView中获取页面上的数据,通常有几种常见的方法: JavaScript Interface:通过JavaScript和Android Interface进行通信。这种方法允许你在JavaScript中调用Android的方法,反之亦然。 Evaluate JavaScriptÿ…...

VTK知识学习(12)- 读取PNG图像
1、代码 private void ShowPngImage(){vtkPNGReader pngReader vtkPNGReader.New();pngReader.SetFileName("D:\\图像\\boxes\\cardboard_boxes_01.png");pngReader.Update();vtkImageActor imageActor vtkImageActor.New();imageActor.SetInputData(pngReader.Get…...

Springboot项目搭建(3)-更改用户信息与文件上传
1.概要 前一章节完成了用户信息的注册、登录、详细信息查询,以及线程池与拦截器技术。 这一章完善了用户信息更新/更改功能,包括昵称、邮箱、头像、密码等... 而后接触到了本地上传和云上传,其二者区别: 选择本地上传还是云上…...

Docker1:认识docker、在Linux中安装docker
欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…...

python成绩分级 2024年6月python二级真题 青少年编程电子学会编程等级考试python二级真题解析
目录 python成绩分级 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python成绩分级 2024年6月 python编程等级考试二级编程题 一、题目要求 …...

android 如何获取当前 Activity 的类名和包名
其一:getClass().getSimpleName() public static String getTopActivity(Context context){ ActivityManager am (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE); ComponentName cn am.getRunningTasks(1).get(0).topAct…...

Spring Boot 项目 myblog 整理
myblog 项目是一个典型的 Spring Boot 项目,主要包括用户注册、登录、文章管理(创建、查询、更新、删除)等功能。 1. 项目结构与依赖设置 项目初始化与依赖 使用 Spring Initializr 创建项目。引入必要的依赖包: Spring Boot W…...