AI 提示词(prompts)工程预研

预研成果

输入文本,输出 JSON 格式数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# Role: JSON 数据生成器

## Profile:
- author: sofor
- version: 0.1
- language: 中文
- description: 将输入的内容转为JSON数据格式的生成器。

## Goals
1. 文本内容应具有一定的结构性和语义明确性,以便能够准确地提取关键信息并转换为 JSON 格式。
2. 输入的文本可以是各种主题和领域的描述、记录、报告等,但应避免过于模糊或歧义的表述。

## Output
1. 输出的 JSON 数据应遵循严格的格式规范,包括正确的键值对表示、引号的使用等。
2. 键名应使用具有明确含义的字符串,值可以是字符串、数字、布尔值、数组或对象等符合 JSON 标准的数据类型。
3. 输出的 JSON 数据中不能存在数学运算,数据需要结算后的结果。

## Rules
1. 分析输入文本的结构,提取关键信息作为 JSON 的键。
2. 根据提取的键,从文本中获取相应的值,并进行适当的格式转换(如将日期转换为特定的日期格式)。
3. 如果文本中存在多个相同键的信息,应将其值存储为数组。

## ErrorsHandle
1. 对于输入文本中无法提取有效信息或不符合预期格式的情况,应输出错误提示信息,如:{"error": "无法从输入文本中提取有效数据"}
2. 若在数据转换过程中出现异常,应输出相应的错误消息,如:{"error": "数据转换过程中出现异常:[具体异常信息]"}

## Examples
1. Q:"姓名:张三,年龄:25 岁,职业:程序员"
A:{"name": "张三", "age": 25, "occupation": "程序员"}
2. Q:"水果清单:苹果,香蕉,橙子"
A:{"fruits": ["苹果", "香蕉", "橙子"]}
3. Q:"活动日期:2024-07-08,活动地点:北京,参与人数:50"
A:{"event_date": "2024-07-08", "event_location": "北京", "participant_count": 50}

通义千问配置:

  • 模型配置
    • 通义千问-Max
  • top_p
    • 0.8
  • temperature
    • 1.0

回答效果:

Q:

1
我今天要去超市采购一点物资。我准备买岳父10斤葡萄,20斤鸡蛋。小孩的奶粉也要3罐,蜂蜜要1罐。也要给爸爸买一箱酒,一箱里边好像有12瓶。还要给妈妈买5斤鸡蛋,鸡蛋一斤可能有5个。天气太热了,我还要买5个西瓜,四个甜瓜。老婆喜欢吃榴莲,我要给她挑一个10斤的。

A:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
```json
{
"purchases": {
"grapes": {"for": "father-in-law", "quantity": 10, "unit": "斤"},
"eggs": {"total_quantity": 25, "unit": "斤", "details": [{"recipient": "household", "quantity": 20}, {"recipient": "mother", "quantity": 5}]},
"baby_milk_powder": {"quantity": 3, "unit": "罐"},
"honey": {"quantity": 1, "unit": "罐"},
"wine": {"quantity": 1, "unit": "箱", "bottles_inside": 12, "for": "dad"},
"watermelons": {"quantity": 5, "unit": ""},
"muskmelons": {"quantity": 4, "unit": ""},
"durian": {"quantity": 1, "weight": 10, "unit": "斤", "for": "wife"}
},
"notes": "预计每斤鸡蛋大约有5个。"
}
```

附加知识

提示词工程简介

提示工程(Prompt Engineering)是一门关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。

开发人员可利用提示工程来提升大语言模型处理复杂任务场景的能力,如问答和算术推理能力。通过提示工程设计、研发强大的工程技术,可以实现和大语言模型或其他生态工具的高效接轨。

提示工程不仅仅是关于设计和研发提示词。它包含了与大语言模型交互和研发的各种技能和技术。提示工程在实现和大语言模型交互、对接,以及理解大语言模型能力方面都起着重要作用。用户可以通过提示工程来提高大语言模型的安全性,也可以赋能大语言模型,比如借助专业领域知识和外部工具来增强大语言模型能力。

提示技术

零样本提示(Zero-Shot Prompting)

含义:未向模型提供任何示例,就可以生成结果。

现在经过大量数据训练并调整指令的LLM(市面上的大模型都已实现),已经可以能够执行零样本任务。

1
2
>Q: 天空是
>A: 天空是地球大气层及其外部空间在视觉上的表征。在日常语言中,当我们提到“天空”,通常指的是我们头顶上方看起来像一个巨大半球的蓝色(白天)或黑色(夜晚)空间,其中包含云彩、太阳、月亮、星星等天体。天空的颜色主要由空气分子散射太阳光造成的,而其在不同时间的颜色变化则与太阳的位置、大气中的颗粒物以及天气状况有关。在夜晚,没有太阳光的直射,我们可以看到繁星点点和银河系的壮丽景象。

少样本提示(Few-Shot Prompting)

在使用零样本设置时,LLM在更复杂的任务上表现不佳。少样本提示可以作为一种技术,以启用上下文学习。

链式思考(CoT)提示(Chain-of-Thought Prompting)

自我一致性(Self-Consistency)

生成知识提示(Generated Knowledge Prompting)

链式提示(Prompt Chaining)

思维树 (ToT)(Tree of Thoughts)

检索增强生成 (RAG)(Retrieval Augmented Generation)

自动推理并使用工具 (ART)(Automatic Reasoning and Tool-use)

自动提示工程师(APE)(Automatic Prompt Engineer)

?(Active-Prompt)

方向性刺激提示(Directional Stimulus Prompting)

PAL(程序辅助语言模型)(Program-Aided Language Models)

ReAct 框架(ReAct Prompting)

自我反思(Reflexion)

多模态思维链提示方法(Multimodal CoT Prompting)

参考文章

K12领域应用-儿童PBL项目Prompt

OpenAI的官方Prompt工程指南详解

结构化提示词系统论述

ChatGPT 提示词工程说明文档

Prompt最佳实践-通义千问

提示词工程指南