当前位置:首页 > 技术分析 > 正文内容

让大语言模型结构化输出JSON(结构化分析的输出)

ruisui883个月前 (01-23)技术分析14

在 AI 原生开发落地的实践中,让大语言模型通过提示来输出答案只是第一步。更大的挑战是,如何保证大语言模型在相同的场景输入下,能够稳定地重现相同的效果,并且符合结构化的标准,以便与其他系统无缝集成。下面我介绍两种通过提示让大语言模型按照指定格式输出的策略。

1.输出格式引导

为了方便大语言模型和应用系统的集成,可以通过一些提示来指定大语言模型输出格式,例如“直接输出CSV结果即可”“Output as CSV format”等。这样,大语言模型就可以根据提示输出JSON、CSV、TSV、KV等不同的格式。

生成CSV格式的例子如下:

# 任务描述
作为一个宠物商店的老板,请给客户推荐一只可爱小宠物。请按照【动物名称,所属科目,尺寸大小】字段生成一条CSV格式的宠物信息,无需额外解释。

# 输出结果
->

输出:

猫,哺乳纲,中等

生成KV格式的例子如下:

# 任务描述
作为一个宠物商店的老板,请给客户推荐一只可爱小宠物。请按照"KV"格式生成一条数据,其中K为【动物名称,所属科目,尺寸大小】字段,V为对应的值,无需额外解释。
# 输出结果
```json

输出:

动物名称: 狗
所属科目: 哺乳纲
尺寸大小: 小

2 字段和类型引导

除了输出的格式,输出字段的名称和数据类型也是影响大语言模型与应用系统集成的关键因素,我们分别来看看如何指定输出字段名称和数据类型。

指定字段名称:使用输出结构示例进行字段名称定义。在“任务描述”中提供一个JSON结构的示例,用{}标识要填充的内容:

# 任务描述
从给定的文本中提取信息,按照以下 JSON 结构输出,其中`{}`表示需要填充的内容:
```json
{ "gender": "{}", "age": "{}", "job": "{}"}
```
# 输入
大家好,我是一个羞涩的小男孩,今年十二岁,还是个学生,在北京 101 中学读书。
# 输出
```json

输出:

{ "gender": "男", "age": "12", "job": "学生" }

另外也可以使用括号进行字段名称定义。在需要提取的字段后面注明相应的英文名称,如下示例:

# 任务描述
从给定的文本中提取性别(gender)、年龄(age)和职业(job)信息,按照 JSON 结构输出。文本如下:

# 输入
大家好,我是一个羞涩的小男孩,今年十二岁,还是个学生,在北京 101 中学读书。
# 输出
```json

输出:

{ "gender": "男", "age": "十二岁", "job": "学生" }

指定字段类型:使用{%format}(格式化字符串)标识字段数据类型,如下示例:

# 任务描述
从给定的文本中提取信息,按照以下 JSON 结构输出,其中`{}`表示需要填充的内容:
```json
{ "gender": "{%s}", "age": {%d}, "job": "{%s}"}
```
# 输入
大家好,我是一个羞涩的小男孩,今年十二岁,还是个学生,在北京 101 中学读书。
# 输出
```json

输出:

{ "gender": "男", "age": 12, "job": "学生" }

也可以使用括号定义字段类型。这种方法是在需要提取的字段后面同时注明对应英文名称和字段数据类型,如下示例:

# 任务描述

从给定的文本中提取性别(gender:int)、年龄(age:string)和职业(job:string)信息,按照 JSON 结构输出。文本如下:

# 输入
大家好,我是一个羞涩的小男孩,今年十二岁,还是个学生,在北京 101 中学读书。
# 输出
```json

输出:

{ "gender": "男", "age": "十二岁", "job": "学生" }

请注意,这里我将年龄(age:int)修改为年龄(age:string),可以看到 age 的类型从 int 变为了 string,值也从“12”变成了“十二岁”。

3.更多输出优化策略

在前面的探讨中,我们已经阐述了如何通过巧妙的提示设计,让大语言模型能够生成符合特定格式的文本内容,这一方法极大地增强了AI原生应用与大语言模型的集成效能。

京东图书:https://item.jd.com/10136043938428.html

最新问世的《AI原生应用开发:提示工程原理与实战》一书,深入汲取了结构化思维的精髓,并将其应用于提示的设计之中。它使用明确的结构引导、内容引导和提示编排设计来提升提示的可读性,帮助大语言模型更准确地理解任务,并生成稳定的、可复现的、符合预期的内容。这些策略如下所示。


扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/493.html

分享给朋友:

“让大语言模型结构化输出JSON(结构化分析的输出)” 的相关文章

10分钟搞定gitlab-ci自动化部署

gitlab-ci 是持续集成工具/自动化部署工具,类似 jenkins。持续集成 是将代码集成到共享存储库并尽可能早地自动构建/测试每个更改的实践 - 通常一天几次。概述在编码完成时都会进行打包发布过程,如果每次都手动操作这一步骤就会浪费时间,效率低下。所以就有了持续集成。准备事项请提前安装以下软...

迁移GIT仓库并带有历史提交记录

迁移git仓库开发在很多时候,会遇到一个问题。GIT仓库的管理,特别是仓库的迁移。我需要保留已有的历史记录,而不是重新开发,重头再来。我们可以这样做:使用--mirror模式会把本地的分支都克隆。// 先用--bare克隆裸仓库 git clone git@gitee.com:xxx/testApp...

博信股份新战略后再推新品 TOPPERS E2耳机售价199元

中新网6月21日电 20日,博信股份在北京正式推出新品TOPPERS主动降噪耳机E2,这是博信股份继2月战略暨新品发布会后的第二次新品亮相。价格方面,TOPPERS主动降噪耳机E2零售价199元,并于6月20日下午4点在京东商城公开销售。据介绍,TOPPERS主动降噪耳机E2采用AMS(奥地利微电子...

30 个纯 HTML5 实现的游戏

浏览器和 JavaScript 的功能逐年不断的变强变大。曾几何时,任何类型的游戏都需要Flash。但随着 HTML5 发展,HTML5 + WebGL 游戏式就慢慢占领着这个舞台。以下是30款流行的游戏,它们可以在所有现代浏览器中运行,并且只使用web技术构建。1. HexGL地址:http://...

2024年,不断突破的一年

迈凯伦F1车队不久前拿下了2024年度总冠军,距离上一次还是二十几年前。在此期间,另一领域内,一个充满革新活力的腕表品牌——RICHARD MILLE理查米尔,正不断发展,与F1运动、帆船、古董车展等领域,共享着对速度与极限的无尽向往。RICHARD MILLE的发展与F1车手们在赛道上的卓越表现交...

别让“跑焦”毁所有!仅需这一项设置,即可显著改善镜头对焦精度

我常常会收到一些摄影爱好者的私信,也一直在努力的帮助大家解决更多摄影中常见问题。在我收到的所有问题中。有一个问题是最麻烦的,那就是“为什么我的图像看起来模糊?”。这个问题几乎每个人都遇到过,究其原因可以说是多种多样相对复杂。起初我一直认为是对焦问题所导致,也就有了我之前所写的“后按对焦”以及“对焦模...