结构化提示模板

Posted by Xiaoyan(Sharon) Mu on 2023-07-24
Estimated Reading Time 4 Minutes
Words 1k In Total
Viewed Times

前两篇是出于好奇心的一些比较日常的ChatGPT聊天场景,距离驱动Ta为自己打工还有一段距离。

为了不断缩短这个距离,那就来创建 Prompt Template /提示模板,尽可能地使 ChatGPT 稳定地进行结构化输出和程序化表达。

所谓模板,也就是给自己的预期输出内容来“打个样儿”, 利用大语言模型的理解力来模拟和预测。如下是最近的一些尝试,篇幅有限,取一瓢来了解。

1 格式化文档

总有一些时候,需要快速生成一些格式化的文档。问题可能是多样的,但回答的方式可能大同小异。用传统的方式,人工输入或体力劳动就不太可取。

举个例子,我想给初级用户写一篇解决常见问题的说明文档。 就以 ArcGIS Earth 产品为例,提供一个使用绘制工具失败的通用方案。

Ad 小贴士 :
如果不知道什么是 ArcGIS Earth ?
使用短链接 go.esri.com/earth 发现,ArcGIS Earth 全部能力。
或进入官网:https://www.esri.com/en-us/arcgis/products/arcgis-earth

思路是,我希望 ChatGPT 提供一个循序渐进的问题排查指导文案,并提供必要资源和联系方式。 ArcGIS Earth 是一个相对成熟的产品,按照目前 ChatGPT 的时间认知节点(2021.9),产品文档应该是已经进入了它的语料库。 这样,这个例子正好也验证下我的猜测。

给 ChatGPT “打个样儿”, 以一个常见的发邮件失败的例子来提供一个prompt template:

1
2
3
4
5
6
7
8
9
10
11
Provide [Think] and [Action] for [Situation].  Add necessary reference links from official websites,  if  the [Action] needs to refer to more information in [Think]. Add email,  phone number or any other contacts if the [Action] needs to connect to.
[Situation]: I was sending an important email to my friend and encountered a failure.
[Think]: I need check if the email address of receiver is correct.
[Action]: Check my contact list
[Think]: The email address is correct
[Action]: Check the network if it is connected
[Think]: The network is available and the receiver's address is correct
[Action]: Send the email again

[Situation]: I encountered a failure when drawing placemarks in ArcGIS Earth.

解释:

  • 上面这一段中,我用[Situation]来指代要解决的问题。
  • [Think]来指代需要考虑的解决问题的思路,[Action]来指代具体我该怎么做。每一组 [Think][Action] 在逻辑上是有顺序的,先出现的一组需要先执行,如果没有解决再进行下一组。
  • 第二个[Situation]来抛出需要解决的问题。理论上可以内容任意。

先上结果:

确实可以说达到预期,如果当真使用它,我也只需修改几处细节即可。

2 格式化输出

ChatGPT的输出内容被格式化的越优秀,现有的非AI应用程序使用起来越方便,至少现阶段我有这个感受。

平时看些地理网站或电子杂志,经常看到一些引人入胜的美景。国内的还好,脑补就能定位到美景的大概方位和属地;如果是国外的,尤其是不甚了解的国家,这美景对我来说只是一个和世界无关的图像。

为了解决这个问题,继续让 ChatGPT 为我打工。 替我提取必要信息并生成一个文件,如 JSON、KML…

1
2
3
4
5
6
7
8
9
10
Please read the given text and summarize all the mentioned places together in formatted JSON, including place name ,coordinates, description.
{
"NAME": "PLACENAME",
"COORDINATES": "12.3456,120.3456",
"DESCRIPTION": "PLACEHOLDER"
}
------
TEXT:
One of the first things that kids learn in geography classes is how high them mountains in their.....
bla bla bla ......

结果令人欣慰:

类似,可以创作 Prompt 生成 KML,读者可以自己试试。

结果KML在 ArcGIS Earth 中的展示:

已经到了这里,只在 ChatGPT 的网页上做测试,应该是满足不了日新月异的想法了。

既然可以得到JSON,除了茶余饭后的花样聊天,下次继续尝试用 OpenAI API 来执行更有价值的复杂的任务吧。


如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !