必须通过json schema约束输出格式:在dify中启用结构化输出并粘贴合法json schema,补充系统提示词与用户示例,确保模型严格按schema返回纯json,最后通过响应头x-structured-output-valid验证合规性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify中让大模型严格按你定义的JSON结构返回结果,避免自由发挥导致后续程序解析失败,必须通过JSON Schema约束输出格式。
准备符合规范的JSON Schema
打开Dify工作区,进入「应用设置」→「提示词编排」→「高级设置」,勾选「启用结构化输出」。这一步开启后,LLM才会识别并遵循你提供的Schema约束。
在「结构化输出」字段中,粘贴标准JSON Schema对象,例如:{"type":"object","properties":{"name":{"type":"string"},"age":{"type":"integer","minimum":0,"maximum":150},"is_student":{"type":"boolean"}},"required":["name","age"]}。注意:schema必须是合法JSON对象,不能是字符串或带注释的版本。
Schema中每个required字段都必须明确列出,漏写会导致LLM跳过该字段——哪怕它实际生成了内容,Dify后端校验时也会报错并返回空响应。
配置提示词引导模型理解Schema意图
在系统提示词末尾追加一句:“请严格按以下JSON Schema格式输出,不要添加任何额外字段、解释性文字或Markdown符号。”
在用户输入示例中,用真实数据演示期望的输出形态,比如:“用户问:张三今年25岁,是大学生。请返回结构化信息。” → 模型应返回{"name":"张三","age":25,"is_student":true}。这种具象示例比纯Schema更有效,能显著降低LLM误包字段的概率。
【schema中定义为"integer"的字段,若模型返回"25"(字符串)而非25(数字),Dify校验会直接失败】
验证与调试输出结果
第一步:点击「测试」按钮,输入典型请求,观察右侧「响应」面板是否返回完整JSON对象。
第二步:检查HTTP响应头中的X-Structured-Output-Valid: true字段是否存在。只有该值为true,才说明Dify已完成Schema校验且模型输出合规。
第三步:若返回{"error":"invalid_json_schema_output"},立即检查两点:① Schema是否含语法错误(如末尾逗号、单引号);② 模型是否在输出前加了“```json”或“以下是JSON:”等前导文本——这些都会导致JSON解析失败。
这一步操作起来很简单,直接把文件拖进去就行。











