函数模式只要参数本体
选择 OpenAI 函数参数目标后,只粘贴 parameters 中的对象。不要连同 name、strict、function 或完整请求一起粘贴;这些包装属于接入代码,本页不验证函数名,也不会发送请求。
AI / LLM 开发
粘贴 JSON Schema 或函数 parameters 本体,选择目标适配器,查看带路径的结构诊断与修改建议。
粘贴 JSON Schema 开始检查。
输入与引用均在此浏览器处理,不上传校验数据,也不抓取远程引用。
粘贴 Schema 本体;函数参数仅粘贴 parameters 中的对象,不包含请求包装。
规则核对日期:2026-09-15。 官方规则
这里只做本地预检,不能证明 API 接受,也不认证具体模型版本。
粘贴 JSON Schema 开始检查。
大模型结构化输出接入时,最难排查的往往不是少了一个逗号,而是接口拒绝了一份在普通校验器里有效的定义。结构化输出 Schema 检查把元结构与目标规则分开报告,帮助你判断应修正语法、字段定义,还是重新设计接口契约。
从常规 JSON Schema 校验切换到 OpenAI 函数调用时,默认可选的属性与动态键很容易成为遗漏。先选择真实使用的目标,再结合报告中的规则日期检查这些差异,能让讨论聚焦到具体路径,而不是反复猜测模型为什么报错。
普通 Schema 可以允许省略字段,也可以开放额外属性。面向 OpenAI strict 的结构化输出 Schema 则有额外条件。工具先给出元结构结论,再列出所选目标的问题;每条诊断都包含路径和建议,便于直接回到出错的对象层级。
OpenAI 与 Gemini 的子集规则不同。同一份输入切换适配器后,诊断会重新计算,但原文保持不变。工具不会为了让报告变绿就补齐 required 或删掉未知关键字,你可以先判断这些改动会不会改变业务允许的数据范围。
选择 OpenAI 函数参数目标后,只粘贴 parameters 中的对象。不要连同 name、strict、function 或完整请求一起粘贴;这些包装属于接入代码,本页不验证函数名,也不会发送请求。
可用示例包含一个“必须出现但可以为 null”的字段。问题示例缺少严格对象条件,在 OpenAI 下会有诊断,切换 Gemini 则可看到哪些条件不是通用要求。载入示例先展示预览,确认后才替换输入。
自动检查会在停顿 350 ms 后执行;关闭开关才显示主按钮,也可用 Ctrl/Cmd + Enter。编辑输入或修改目标会立即禁用旧报告的复制和下载。撤销会一起恢复之前的输入、目标和结果,避免内容对不上。
使用随工具提供的 2020-12 元 Schema 检查关键字的值类型与结构位置。严格解析器拒绝重复键和无法精确表示的数字;注释、尾逗号、代码围栏会报语法错误,不会被悄悄修成另一份内容。
诊断使用 JSON Pointer,包含属性名中斜线与波浪号的转义。工具检查本地引用是否指向存在的 Schema 位置。名为 allOf 的业务属性不会被误当作组合关键字,enum 中的字符串也不会被递归解释成规则。
OpenAI 两个目标采用非微调 strict 规则,Gemini 按公开 JSON Schema 子集检查。明确不支持的组合关键字显示错误;没有充分核对的关键字或格式显示“需复核”,防止“暂时没发现问题”变成不准确的兼容保证。
JSON 报告保留适配器、规则日期、结构结论、计数与诊断代码。长列表先展示 50 条,可继续展开;导出仍包含完整报告。即使把报告发给同事,对方也能看出它针对哪个目标生成,而不必依赖截图猜测。
不能据此认为一定能接入。这里的目标仅覆盖 OpenAI 非微调 strict 与 Gemini 输出规则,Claude 没有对应适配器。即使本地没有诊断,也要把 Schema 放入正确的请求字段,用实际端点、模型和 SDK 验证;本页没有执行任何模型调用。
元结构依据 2020-12 检查,但目标适配器只覆盖公开并已核对的子集。本地引用只接受指向 Schema 位置的 JSON Pointer,远程引用和具名锚点不在范围。未覆盖关键字会显示需复核,而不是静默忽略后给出兼容结论。
它表示必填列表提到了一个对象属性定义中不存在的名称。在 OpenAI strict 目标中,请核对大小写、拼写和所属对象层级;不要只往 required 里添加名称。每个字段都应在正确层级声明类型,再与该层的必填列表对应。
严格输出需要固定的对象形状,因此所有已声明字段都要出现。未知值可按业务需要用 null 表示,而不是省略字段。若字段还有 enum,枚举也应允许 null;“可空”与“可省略”不是同一条件,修改时要同时检查调用方的处理逻辑。
这取决于目标和业务契约。OpenAI strict 要求每层对象明确为 false;Gemini 的公开子集允许布尔值或一个额外属性 Schema。动态字典在一个目标下可用,不代表切换后仍能原样使用,工具会把这种差异列在对应对象的路径上。
发现未覆盖的情况?