千问在做信息抽取时怎么定义schema让输出结构化?

冬婷小哥_7198

冬婷小哥_7198

2026-05-29

933人浏览

原创

应采用json schema、模板填充、few-shot示例及函数调用四种方法统一千问信息抽取格式:一、嵌入json schema强制字段结构;二、用带占位符模板控制槽位;三、通过3–5个规范样例引导字段对齐;四、启用function calling自动参数提取。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

千问在做信息抽取时怎么定义schema让输出结构化?

如果您使用千问进行信息抽取任务,但模型输出结果缺乏统一格式,则可能是由于未明确定义抽取目标的结构化模式。以下是为千问设计并应用 schema 的具体方法:

一、采用 JSON Schema 显式声明字段结构

通过在提示词中嵌入标准 JSON Schema 描述,可强制模型按指定字段名、类型和约束生成输出。该方式利用千问对结构化文本的强解析能力,使输出直接兼容下游数据处理流程。

1、定义包含字段名、数据类型及可选说明的 JSON Schema 对象,例如:{"type":"object","properties":{"person_name":{"type":"string"},"organization":{"type":"string"},"date":{"type":"string","format":"date"}},"required":["person_name","organization"]}

2、将该 schema 作为系统指令的一部分,置于用户输入前,格式为:“请严格按以下 JSON Schema 输出结果,不得增减字段,不得添加解释性文字:[插入schema]”

3、在用户输入中提供待抽取的原始文本,并明确指令“请从以下文本中抽取信息,仅输出符合上述 schema 的 JSON 对象”

4、接收模型响应后,直接解析 JSON 字符串,确保所有字段值均为字符串类型且无额外包裹文本

二、使用模板填充式提示(Prompt Template)控制槽位

通过预设带占位符的结构化模板,引导千问将识别出的实体填入对应位置。该方法不依赖模型对 JSON 语法的理解,适用于对格式容错率要求较高的场景。

1、构造模板如:“【人物】:{person};【机构】:{org};【时间】:{time}”

2、在提示中明确说明:“请严格按以下格式输出,仅替换花括号中的内容,不添加任何其他符号、换行或说明:[插入模板]”

3、提供原始文本后追加指令:“请提取信息并填入模板,若某项未出现则留空,不得省略分号或标签”

4、后处理时按分号分割,再依“:”拆解键值对,需校验模板中每个标签是否完整存在且顺序不变

千问文生图
千问文生图

阿里云千问文生图模型(Qwen-Image)技能,支持图像生成。当用户要求AI生成图片、画图、文生图、text-to-image,或提到千问、阿里云生图时使用。支持中英文提示词,可指定画面尺寸、风格参数等。

下载

三、结合 Few-shot 示例引导字段对齐

在提示中嵌入多个输入-输出配对样例,使千问通过类比学习理解字段语义与边界,尤其适用于命名不规范或存在歧义的领域术语。

1、选取 3–5 条覆盖不同句式、含典型噪声的样本,每条包含原始文本与对应结构化输出

2、样例输出必须与目标 schema 完全一致,字段名大小写、下划线/驼峰风格须统一

3、在 few-shot 块末尾添加指令:“请参照以上示例,对后续文本执行相同的信息抽取操作,字段名称必须与示例中完全一致,不可同义替换”

4、输入新文本后,禁止在输出中复述示例或添加‘类似地’‘同上’等提示性短语

四、启用函数调用模式(Function Calling)声明参数契约

当部署环境支持千问的 function calling 能力时,可通过注册函数接口定义输入参数的结构契约,由模型自动完成参数提取与类型转换。

1、构造函数描述对象,包含 name、description、parameters(含 type、properties、required)字段

2、调用 SDK 或 API 时传入该函数定义,并设置 force_call 参数为 true

3、向模型发送原始文本,模型将返回符合 parameters 约束的字典对象,而非自然语言响应

4、接收 response.message.tool_calls 后,解析第一个调用的 function.arguments 字段,该字符串已为合法 JSON,可直接 json.loads 解析

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

千问

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
C语言变量命名
C语言变量命名

c语言变量名规则是:1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。php中文网还提供c语言变量的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

2989

3

c语言入门自学零基础
c语言入门自学零基础

C语言是当代人学习及生活中的必备基础知识,应用十分广泛,本专题为大家c语言入门自学零基础的相关文章,以及相关课程,感兴趣的朋友千万不要错过了。

2023.07.25

2248

9

c语言运算符的优先级顺序
c语言运算符的优先级顺序

c语言运算符的优先级顺序是括号运算符 > 一元运算符 > 算术运算符 > 移位运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 赋值运算符 > 逗号运算符。本专题为大家提供c语言运算符相关的各种文章、以及下载和课程。

2023.08.02

1200

5

c语言数据结构
c语言数据结构

数据结构是指将数据按照一定的方式组织和存储的方法。它是计算机科学中的重要概念,用来描述和解决实际问题中的数据组织和处理问题。数据结构可以分为线性结构和非线性结构。线性结构包括数组、链表、堆栈和队列等,而非线性结构包括树和图等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.09

1138

4

c语言random函数用法
c语言random函数用法

c语言random函数用法:1、random.random,随机生成(0,1)之间的浮点数;2、random.randint,随机生成在范围之内的整数,两个参数分别表示上限和下限;3、random.randrange,在指定范围内,按指定基数递增的集合中获得一个随机数;4、random.choice,从序列中随机抽选一个数;5、random.shuffle,随机排序。

2023.09.05

1336

5

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

2023.09.20

2078

7

c语言get函数的用法
c语言get函数的用法

get函数是一个用于从输入流中获取字符的函数。可以从键盘、文件或其他输入设备中读取字符,并将其存储在指定的变量中。本文介绍了get函数的用法以及一些相关的注意事项。希望这篇文章能够帮助你更好地理解和使用get函数 。

2023.09.20

3300

8

c数组初始化的方法
c数组初始化的方法

c语言数组初始化的方法有直接赋值法、不完全初始化法、省略数组长度法和二维数组初始化法。详细介绍:1、直接赋值法,这种方法可以直接将数组的值进行初始化;2、不完全初始化法,。这种方法可以在一定程度上节省内存空间;3、省略数组长度法,这种方法可以让编译器自动计算数组的长度;4、二维数组初始化法等等。

2023.09.22

14735

6

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

2023.09.22

549

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
通义千问基本用法
通义千问基本用法

共1课时 | 230人学习

通义千问的提示词工程
通义千问的提示词工程

共1课时 | 265人学习