login
JSON Schema详解与应用
2025/08/04·StepFun can make mistakes, check important info.
Openai tool schema 里有一个 parameters 字段,其值是 “json schema”,什么是json schema?有什么作用?
Reason
思考过程

我们被问及两个问题:

  1. 什么是 JSON Schema?
  2. JSON Schema 有什么作用?

首先,我们需要理解 JSON Schema 的基本概念。
JSON Schema 是一种用于描述 JSON 数据结构的语言。它本身也是用 JSON 编写的。通过定义 JSON Schema,我们可以指定 JSON 数据应该满足的结构、数据类型、格式等规则。

作用:

  • 验证:JSON Schema 的主要用途是验证 JSON 文档的结构和内容是否符合预期。例如,在 API 交互中,我们可以用 JSON Schema 来验证请求和响应的格式。
  • 文档:它也可以作为文档,明确说明一个 JSON 数据应该是什么样子。
  • 自动化:在开发过程中,工具可以利用 JSON Schema 生成模拟数据、表单、UI 等。

现在,我们结合问题上下文:OpenAI tool schema 中的 parameters 字段使用 JSON Schema。
在 OpenAI 的 Function calling 或 Tools calling 中,当我们要定义一个工具(或函数)时,需要描述这个工具的参数。而参数的结构就是用 JSON Schema 来定义的。这样,模型在调用工具时,就会生成符合这个 schema 的参数。

举例说明:
假设我们有一个工具,用于获取天气,它需要一个参数,包含城市和国家的信息。那么我们可以这样定义 parameters:

json

这个 JSON Schema 描述了一个对象,该对象必须有一个属性“location”,而“location”是一个对象,其中必须包含“city”(字符串),还可以包含“country”(字符串)。这样,当模型调用这个工具时,就会生成一个符合这个结构的 JSON 对象。

总结回答:

  • JSON Schema 是用于描述和验证 JSON 数据结构的规范,用 JSON 格式书写。
  • 在 OpenAI tool schema 中,parameters 字段使用 JSON Schema 来定义工具所需的参数结构,确保模型生成的参数符合预期格式。

什么是 JSON Schema?

JSON Schema 是一种基于 JSON 格式的声明性语言,用于描述和验证 JSON 数据的结构和内容。简单来说,它是 JSON 数据的“蓝图”或“规则手册”,定义了以下内容:

  1. 数据结构:JSON 对象应包含哪些字段、字段的层级关系等。
  2. 数据类型:每个字段的值类型(如字符串、数字、布尔值、数组、对象等)。
  3. 约束条件:字段是否必填、数值范围、字符串格式(如日期、邮箱)、数组长度限制等。
  4. 默认值和枚举:字段的默认值或允许的枚举值列表。

示例

假设有一个描述用户信息的 JSON:

json

对应的 JSON Schema 可能是:

json

JSON Schema 的作用

  1. 数据验证(核心用途)
    用于自动检查 JSON 数据是否符合预定义规则,常见场景包括:

    • API 请求/响应数据的校验(如 OpenAI Tools 的 parameters 字段)。
    • 配置文件的结构检查。
    • 数据库输入的前置验证。
  2. 文档生成
    通过 Schema 自动生成人类可读的文档,明确数据格式要求。

  3. 自动化工具支持

    • 代码生成:根据 Schema 自动生成数据模型代码(如 TypeScript 类型、Python 类)。
    • 表单生成:前端根据 Schema 动态渲染表单(如 JSON 编辑器)。
    • Mock 数据:生成符合规则的测试数据。
  4. 数据契约
    在微服务或分布式系统中,Schema 作为服务间数据交换的“契约”,确保一致性。


在 OpenAI Tools 中的应用

在 OpenAI 的 Tool Schema 中,parameters 字段使用 JSON Schema 定义工具调用所需的参数格式。例如:

json
  • 作用:当用户请求调用 get_weather 工具时,OpenAI 模型会根据此 Schema 生成合法的参数(如 {"location": "Beijing", "unit": "celsius"}),确保数据格式正确。

总结

  • JSON Schema 本质:JSON 数据的结构描述语言。
  • 核心价值:自动化验证数据、提升开发效率、减少错误。
  • 实际场景:API 设计、配置管理、工具调用(如 OpenAI Tools)等。

如需进一步了解,推荐查阅 JSON Schema 官方文档 或在线试用 JSON Schema 验证工具