ChatGPT Prompt的框架和方法

经过基础篇的多个场景介绍,你应该对构建有效的 Prompt 有了更深的理解。在基础篇中,我们更多地关注了“术”的应用。而在高级篇中,除了介绍更高级的应用之外,我们还将探讨更多关于Prompt 构建的“道”。

基础 Prompt 框架

在众多关于 ChatGPT prompt 的框架中,Elavis Saravia 的总结提供了一个清晰的框架,认为有效的 Prompt 应包含以下元素:

  • Instruction(指令,必须):你希望模型执行的具体任务。
  • Context(背景信息,选填):可以引导模型做出更合适的反应。
  • Input Data(输入数据,选填):告知模型需要处理的数据。
  • Output Indicator(输出指示器,选填):告知模型我们期望的输出类型或格式。

根据这个框架写出的 Prompt,模型返回的结果通常会更准确。

例如,对于前面的场景:

  • 推理:Instruction + Context + Input Data
  • 信息提取:Instruction + Context + Input Data + Output Indicator

CRISPE Prompt 框架

另一个非常有用的框架是 Matt Nigh 提出的 CRISPE Framework,这个框架更加复杂但全面,适合编写复杂的 prompt 模板。CRISPE的每个字母代表:

  • CR:Capacity and Role(能力与角色):你希望 ChatGPT 扮演的角色。
  • I:Insight(洞察力):背景信息和上下文。
  • S:Statement(指令):你期望 ChatGPT 执行的任务。
  • P:Personality(个性):期望 ChatGPT 回答的风格或方式。
  • E:Experiment(尝试):要求 ChatGPT 提供多个答案。

以下是 CRISPE 各参数的例子:

步骤

示例

Capacity and Role

扮演机器学习框架领域的软件开发专家和专业博客作者的角色。

Insight

针对对机器学习最新进展感兴趣的技术专业人士撰写的博客。

Statement

提供最流行的机器学习框架的全面概述,包括优缺点和实际应用案例。

Personality

使用 Andrej Karpathy、Francois Chollet 等人的写作风格。

Experiment

提供多个不同的例子。

结合所有元素,构成的 Prompt 可以生成与基础 Prompt 截然不同的结果。

使用 CRISPE Framework 的实际应用

使用 CRISPE Framework 可以生成更结构化的输出。例如,在进行问答时,不仅要求答案,还要求 ChatGPT 的答案符合特定的格式,以便进行后续的自动化处理。

比如,针对一个问题 "这里的债券 duration 是多少?",标准的 GPT 模型可能会回答 "债券 duration 是 4 年" 或 "duration 4 年"。而使用CRISPE Framework,可以让模型输出特定的结构化答案,比如 JSON/Markdown 格式,并可以集成更多的额外要求,比如增加"confidencelevel",并通过 prompt 指定这些数值的格式甚至区间。

例如:

{context}
Question: What is bond duration mentioned here.
Answer template (Valid JSON format):
{{
"duration": $duration_numeric_value_in_year,
"confidence_level": $answer_confidence_level_high_moderate_or_low,
}}
Answer:

通过这种方式,可以使 AI 生成的内容更加符合特定的应用场景,提高数据的可用性和后续处理的效率。

chatgpt_tutorial_advanced_prompt_framework_1

AI工具教程
免费领取AI学习资料 进AI副业交流群
礼物
AI工具教程
免费领取AI学习资料 进AI副业交流群