建设性批评提示
提示工程 - 设计建设性批评提示
Section titled “提示工程 - 设计建设性批评提示”使用建设性批评提示 (Constructive Critic Prompting) 技术,我们可以指导大语言模型 (LLM),如 ChatGPT,提供富有洞察力、可操作且支持性的批评。这使用户能够获得有价值的输入,以改进或完善他们的工作、想法或内容。
在本章中,我们将探讨建设性批评提示的概念,以及如何使用它来指导 LLM 以既批评又鼓励的方式提供有帮助的反馈、评论或建议。
什么是建设性批评提示?
Section titled “什么是建设性批评提示?”建设性批评提示是指设计提示,专门指示 LLM 评估某件作品(文本、代码、设计理念等),并提供既具分析性又支持性的反馈。目标是引导模型提供侧重于改进领域的批评,同时承认优点,从而促进积极的、面向成长的互动。
这种提示技术提供了多项好处:
- 可操作的反馈: 用户收到详细且有帮助的反馈,这些反馈有助于完善想法、内容、代码或解决方案,而不是泛泛的赞扬或无益的负面评价。
- 技能提升: 建设性批评允许用户识别具体的改进领域,从而促进技能发展和学习。
- 积极的用户体验: 以建设性和支持性语气提供的反馈增强了整体用户体验,鼓励进一步的参与和迭代。
- 客观视角: LLM 可以提供相对客观的批评,不受人类评审员可能无意引入的个人偏见的影响(尽管仍需考虑模型本身的偏见)。
实施建设性批评提示
Section titled “实施建设性批评提示”要实施建设性批评提示,请设计明确指导 LLM 提供所需反馈类型的提示。以下是一个如何提问的示例:
用户:我写了一篇关于可再生能源重要性的短文。你能否扮演一个建设性批评者的角色,提供反馈?我正在寻找文章的优点、需要改进的地方以及具体的建议,使其更具影响力。文章在此:[你的文章文本在此]当 LLM 收到这样的提示时,它应该通过提供平衡的反馈来回应。例如:
LLM:感谢分享你关于可再生能源的文章。以下是一些建设性反馈:
**优点:*** 你对这个主题的热情清晰可见,这很有吸引力。* 你有效地突出了可再生能源的几个关键好处。
**需要改进的地方和建议:*** **具体性:** 虽然你提到了好处,但添加具体的例子或最新的统计数据可以使你的观点更具说服力。例如,在讨论成本节约时,简短的案例研究或数据点会很有影响力。* **结构:** 考虑添加更清晰的副标题来分解文本,引导读者阅读。这可以提高可读性,特别是对于较长的部分。* **行动呼吁:** 文章信息丰富,但如果以一个包含明确行动呼吁的结尾段落结束(例如,建议读者支持可再生能源的方式),可以使其更令人难忘和更具可操作性。
总的来说,这是一个很好的基础。专注于这些方面可以显著增强其影响力!你可以针对不同类型的工作调整请求。例如,在请求对设计理念进行批评时:
用户:我正在为一个可持续咖啡品牌设计一个新标志。它包含 [描述标志]。请提供建设性批评,重点关注其潜在的有效性、清晰度以及与可持续品牌形象的一致性。哪些方面做得好,哪些方面可以改进?建设性批评提示的应用
Section titled “建设性批评提示的应用”这项技术可应用于各种场景:
- 内容评审: 请求对文章、博客文章、营销文案、创意写作或设计草稿提供反馈。
- 代码评审: 获取关于代码片段、算法或编程项目的建设性反馈,重点关注清晰度、效率和最佳实践。
- 想法验证: 对商业想法、项目提案或研究概念获取批评性但支持性的输入。
- 技能提升: 用于语言学习(例如,批评用外语写的文章)或练习论证。
建设性批评提示的最佳实践
Section titled “建设性批评提示的最佳实践”为了最大程度地利用这项技术,请考虑以下最佳实践:
- 明确要评估的内容: 清晰定义要批评的项目以及你希望获得反馈的方面(例如,“论证的清晰度”、“用户界面的直观性”、“代码可读性”)。
- 请求平衡的视角: 明确要求模型同时指出优点和需要改进的方面,以确保反馈全面。
- 要求可操作的建议: 提示 LLM 提供具体的、实际的改进建议,而不仅仅是泛泛的批评。
- 定义“批评者”的人设: 你可以指定批评者的类型,例如,“扮演一位资深编辑”,或“假设你是一位潜在客户,提供反馈”。
- 迭代反馈: 你可以提出后续问题,深入探讨批评中的具体点。
示例应用 - Python 实现
Section titled “示例应用 - Python 实现”让我们通过一个使用 OpenAI API 的 Python 脚本来请求建设性批评。注意:现代 OpenAI 库 (v1.0.0+) 使用稍有不同的客户端初始化方式 (from openai import OpenAI; client = OpenAI())。本示例使用的是与早期版本兼容的聊天模型语法。
import openaiimport os
# Securely set your API key, preferably via an environment variable# openai.api_key = os.getenv("OPENAI_API_KEY") # 安全地设置你的 API 密钥,最好通过环境变量openai.api_key = 'YOUR_API_KEY' # Replace with your actual key (not recommended for production) # 用你的实际密钥替换(不推荐用于生产环境)
def get_constructive_criticism(text_to_critique, critique_focus): prompt_messages = [ {"role": "system", "content": "You are an AI assistant programmed to provide fair, balanced, and constructive criticism. Your goal is to help users improve their work by identifying strengths and offering actionable suggestions for areas that need refinement."}, {"role": "user", "content": f"I would like constructive criticism on the following text. Please focus on: {critique_focus}. Here is the text:\n\n---\n{text_to_critique}\n---\n\nPlease provide your feedback, highlighting both positive aspects and areas for improvement with specific suggestions."} ]
try: response = openai.ChatCompletion.create( model="gpt-3.5-turbo", # Or gpt-4 for potentially more nuanced feedback # 或 gpt-4 以获得更细致的反馈 messages=prompt_messages, max_tokens=800, temperature=0.6, # A moderate temperature for balanced feedback # 适中的 temperature,以获得平衡的反馈 n=1, stop=None ) return response.choices[0].message['content'].strip() except Exception as e: return f"An error occurred: {e}" # 发生错误
# Example usage: # 示例用法:article_snippet = "Climate change is a big problem. We need to do more things to stop it. Using less plastic is good. Also, plant trees." # 文章片段critique_aspects = "clarity of argument, specificity of examples, and overall persuasiveness" # 批评的方面:论点清晰度、示例具体性、整体说服力
feedback = get_constructive_criticism(article_snippet, critique_aspects)print("Constructive Criticism Received:") # 收到的建设性批评:print(feedback)脚本的示例输出
Section titled “脚本的示例输出”基于 article_snippet 和 critique_aspects,LLM 可能提供类似于以下的反馈(实际输出会有差异):
Constructive Criticism Received: # 收到的建设性批评:
Thank you for sharing this snippet. Here's some constructive feedback focusing on clarity of argument, specificity of examples, and overall persuasiveness: # 感谢分享此片段。以下是重点关注论点清晰度、示例具体性和整体说服力的一些建设性反馈:
**Positive Aspects:** # 优点:* **Directness:** The core message about climate change being a significant issue is clear and direct. # **直接性:** 关于气候变化是一个重要问题的核心信息清晰明了。* **Action-Oriented:** You correctly identify the need for action and suggest some positive steps (reducing plastic, planting trees). # **行动导向:** 你正确地指出了行动的必要性,并提出了一些积极的步骤(减少塑料、种植树木)。
**Areas for Improvement & Specific Suggestions:** # 需要改进的地方和具体建议:
1. **Clarity of Argument & Depth:** # **论点清晰度和深度:** * The statement "Climate change is a big problem" is a good start, but could be strengthened. *Suggestion:* Briefly mention *why* it's a big problem (e.g., "Climate change is a significant global challenge, threatening ecosystems and human well-being through rising sea levels, extreme weather events, and biodiversity loss.") # “气候变化是一个大问题”是一个好的开始,但可以加强。*建议:* 简要提及它为何是一个大问题(例如,“气候变化是一个重大的全球挑战,通过海平面上升、极端天气事件和生物多样性丧失,威胁着生态系统和人类福祉。”) * "We need to do more things to stop it" is vague. *Suggestion:* You could hint at the scale or type of actions needed, perhaps leading into your specific examples (e.g., "Addressing this requires concerted efforts at individual, community, and governmental levels.") # “我们需要做更多事情来阻止它”很含糊。*建议:* 你可以暗示所需行动的规模或类型,或许可以引出你的具体示例(例如,“应对这一问题需要个人、社区和政府层面的共同努力。”)
2. **Specificity of Examples:** # **示例具体性:** * "Using less plastic is good" is a valid point. *Suggestion:* To enhance persuasiveness, briefly connect it to climate change. For example: "Reducing plastic consumption is beneficial, as plastic production is energy-intensive and contributes to greenhouse gas emissions." # “少用塑料是好的”是一个有效观点。*建议:* 为了增强说服力,简要将其与气候变化联系起来。例如:“减少塑料消费有益,因为塑料生产是能源密集型的,并会产生温室气体排放。” * "Also, plant trees" is another good action. *Suggestion:* Elaborate slightly on its impact: "Planting trees plays a crucial role in carbon sequestration, helping to absorb CO2 from the atmosphere." # “还要种树”是另一个好行动。*建议:* 对其影响稍作阐述:“植树在碳捕获中起着关键作用,有助于吸收大气中的二氧化碳。”
3. **Overall Persuasiveness:** # **整体说服力:** * The current snippet feels like a list of statements. *Suggestion:* Try to create more of a narrative flow. Connect the ideas with transition words or phrases. For example, after introducing the problem, you could say, "Fortunately, there are actionable steps we can take. For instance..." # 当前的片段感觉像是一系列陈述。*建议:* 尝试创建更多的叙事流程。用过渡词或短语连接想法。例如,在介绍问题后,你可以说,“幸运的是,我们有一些可行的步骤可以采取。例如……” * Consider adding a slightly more impactful concluding thought, even for a short snippet, to leave a stronger impression. # 考虑添加一个稍具影响力的结束语,即使是对于一个短片段,以留下更深刻的印象。
By adding a bit more detail and connecting the ideas more explicitly, the message can become significantly more persuasive and informative. Keep up the good work! # 通过增加更多细节并更明确地连接想法,信息可以显著增强说服力和信息量。继续努力!建设性批评提示是利用 LLM 作为支持性评估者的宝贵技术。它能营造积极的用户体验,鼓励参与和迭代改进。通过精心设计请求平衡且可操作反馈的提示,你可以获得有洞察力的批评,从而改进你的项目、技能和想法。