Skip to content

提示词技巧课程安排:

  • 本节课:自顶向下讲解提示词技巧框架
  • 下节课:讲解具体的提示词技巧

对 提示词技巧 的认知:提示词技巧只能发掘模型最后的潜力,不能让模型超越自身极限

  • GPT3.5 能力 8 分 + 技巧 2 分 = 10 分
  • GPT4 能力 18 分 + 技巧 2 分 = 20 分

用 写文章 类比 提示词技巧框架。

提示词载体

常见提示词载体:自然语言、XML、MD、JSON、伪代码...

类比写文章:文言文、白话文

作用:提升模型的逻辑理解能力

比如,MD 天生用来表达文章结构:

  • #代表 大标题, ##代表副标题,可以明确表达 逻辑上的层级关系
  • 无序列表 表达 同级并列关系
  • 有序列表 表达 同级递进关系

因为模型懂 MD 语法,所以能清楚认识到这些逻辑关系

XML、JSON 等同理...

自然语言

plain
生成一首关于春天的诗。要有美感,体现自然风光和生机。
  • 优点:直观、容易理解、适合普通用户
  • 缺点:可能存在歧义、结构性较差
  • 适用场景:简单任务

XML 格式

xml
<task>写诗</task>
<topic>春天</topic>
<requirements>
  <style>有美感</style>
  <elements>
    <element>自然风光</element>
    <element>生机</element>
  </elements>
</requirements>
  • 优点:结构清晰、层次分明、便于程序解析
  • 缺点:较繁琐、普通用户理解有难度
  • 适用场景:复杂任务场景、表达结构化内容

MD 格式

markdown
# 任务:创作春天主题诗歌

## 要求

- 主题:春天
- 风格:优美
- 内容要素:
  - 自然景色
  - 生机勃勃
  • 优点:结构化程度适中、易读易写、与文章结构高度映射
  • 缺点:格式不够严格
  • 适用场景:文章逻辑

JSON 格式

json
{
  "task": "写诗",
  "parameters": {
    "theme": "春天",
    "style": "有美感",
    "elements": ["自然风光", "生机"]
  }
}
  • 优点:结构化程度高、便于数据交换
  • 缺点:不太直观、不易表达层级结构、输出较繁琐
  • 适用场景:结构化输出

伪代码格式

json
GeneratePoem(
  theme = "春天"
  style = 有美感
  include = [自然风光, 生机]
  format = "经典"
)
  • 优点:逻辑性强、简洁
  • 缺点:需要编程知识
  • 适用场景:程序员描述的复杂业务场景

提示词结构

作用:约定不同场景下的最佳实践

类比写文章:总分总、递进式、并列式...

CO-STAR 结构

新加坡政府组织的首届 GPT-4 提示工程大赛的获奖提示词框架(补充资料)。一条提示词要包含如下模块:

  • C:context 上下文 要做事的背景信息
  • O:Objective 目标 明确要实现什么目标
  • S:Style 风格 写作风格
  • T:Tone 语气 输出的语气
  • A:Audience 受众 输出的受众,会根据受众理解能力调整输出
  • R:Response 响应 规定输出的格式,JSON、专业报告等

LangGPT

全称 Language For GPT like llm,国人 云中江树 提出的提示词框架,也是我们实战篇使用的提示词结构。

核心理念:将复杂任务分解成结构化的指令

xml
<role>
  你是一位专业的中英双语翻译专家
</role>

<task>
  将用户输入的文本在中英文之间互译
</task>

<rules>
  - 保持原文的意思和语气
  - 翻译要自然流畅
  - 专业术语需准确翻译
  - 如遇到歧义词,提供多种可能的翻译
</rules>

<workflow>
  1. 分析源文本的上下文和语境
  2. 进行翻译
  3. 校对和优化译文
  4. 对专业术语或歧义处提供解释说明
</workflow>

特点

  • 载体:XML 语法(非强制要求)
xml
# Role: 你是一位专业的中英双语翻译专家

# Task: 将用户输入的文本在中英文之间互译

## Rules
- 保持原文的意思和语气
- 翻译要自然流畅
- 专业术语需准确翻译
- 如遇到歧义词,提供多种可能的翻译

## Workflows
1. 分析源文本的上下文和语境
2. 进行翻译
3. 校对和优化译文
4. 对专业术语或歧义处提供解释说明
  • 灵活性

提示词模块(以 LangGPT 为例)

模块按需组装,常见模块:

  • role:设定 AI 助手的专业背景和行为模式,明确特定场景
  • task:具体执行的任务,原始需求
  • constraints:对内容输出的限定条件
  • global:定义贯穿整个会话的全局变量
xml
<global>
  $style = "有美感"
  $language = "中文"
  $topic = "春天"
</global>

<role>
  你是一位经验丰富的诗人
</role>

<task>
  撰写一首关于{$topic}的诗歌
</task>

<constraints>
  - 字数限制: 100词
  - 风格要求: {$style}
  - 语言: {$language}
</constraints>
  • workflow:规范任务执行步骤,特定场景下的最佳实践
  • output_format:限定输出格式,功能类似 formatInstructions
  • error_handling:当遇到不符合规范的输入时如何处理

可以根据需要自行扩展模块。

模块内容(以 LangGPT 为例)

模块内容本身也可以是多种载体,以 技术写作 为例:

xml
<global>
$style = "专业简洁"
$length = "中等"
$format = "markdown"
</global>

<role>
你是一位经验丰富的技术写作专家,擅长{$style}风格写作
</role>

<task>
创建技术文档和教程
</task>

<constraints>
- 文章长度: {$length}
- 输出格式: {$format}
- 语言: 中文
</constraints>

<workflow>
1. 分析需求阶段:
   IF 用户提供主题:
       分析主题关键点
   ELSE:
       请求用户明确主题
   END IF

2. 内容规划阶段:
   - 创建大纲
   - 确定重点内容
   - 设计示例代码

3. 写作阶段:
   FOREACH 章节 IN 大纲:
       - 撰写内容
       - 添加示例
       - 进行解释
   END FOREACH

4. 审查阶段:
   - 检查专业术语使用
   - 确保格式统一
   - 优化表达方式
</workflow>

<output_format>
# {标题}
## 概述
{概述内容}

## 主要内容
{详细内容}

## 示例
{示例代码和说明}

## 总结
{关键点总结}
</output_format>

载体之间可以嵌套,单次执行效果主要取决于模型推理能力

如何写提示词?

写提示词的步骤:

  1. 确定特定场景下的最佳实践
  2. 判断最佳实践的复杂度
    • 简单:自然语言输出
    • 中等:MD 格式输出
    • 复杂:选定提示词载体和结构(默认 LangGPT)
  3. 选一个提示词生成工具,输入步骤 1 的输出:
  4. 调试并优化输出的提示词

如何优化?