> ## Documentation Index
> Fetch the complete documentation index at: https://enterprise-docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 结构化输出

## 简介

作为 LLM 工具链平台，Dify 支持 JSON 结构化输出功能。结构化输出功能可以确保 LLM 返回的数据格式可用、稳定、可预测，减少错误处理和格式转换的工作。

## 价值

* **确保数据格式一致**：即使由 LLM 生成内容，也必须符合预设格式，避免数据混乱。

* **方便后续节点处理**：数据库、API 或前端可以直接解析 JSON Schema，而无需额外数据清洗。

* **提升低代码开发体验**：开发者无需手写复杂数据校验逻辑，直接使用 JSON Schema 约束输出。

## 如何实现结构化输出？

在 Dify 的操作界面中，可以通过以下两种方式实现结构化输出：

* **方式一：直接定义工具参数**

* **方式二：使用 LLM 节点中的 JSON Schema 编辑器**

### 方式一：直接定义工具参数

请参阅 **[Tool](https://docs.dify.ai/zh-hans/plugins/schema-definition/tool) > 数据结构 > 返回变量定义**。

### 方式二：使用 LLM 节点中的 JSON Schema 编辑器

请参阅 **[LLM](https://docs.dify.ai/zh-hans/guides/workflow/node/llm) > 高级功能 > 结构化输出** 与 **[LLM](https://docs.dify.ai/zh-hans/guides/workflow/node/llm) > 使用案例 > 结构化输出**。

## 异常处理方案

**异常情况**

在使用 JSON Schema 编辑器进行结构化输出时，可能会遇到以下限制和异常情况：

* **模型能力限制**：部分 LLM（尤其是 70B 以下的模型或 GPT-3.5 Turbo 级别模型）在指令遵循性上较弱，可能导致 JSON Schema 解析失败。

* **格式兼容性**：部分 LLM 仅支持 **JSON mode** 而非 **JSON Schema**，导致严格的 Schema 解析失败。

* **错误信息**：出现错误 `Failed to parse structured output: output is not a valid json str`。此类错误主要源于模型生成 JSON 失败。

**推荐处理方案**

1. **优先使用支持 JSON Schema 的模型**。推荐列表如下：
   * Gemini 2.0 Flash/Flash-Lite
   * Gemini 1.5 Flash 8B (0827/0924)
   * Gemini-1.5 pro
   * GPT-4o
   * GPT-4o-mini
   * o1-mini/o3-mini 系列

2. **适当调整系统提示词以增强指令遵循性，尽可能确保 LLM 输出符合 Schema 规范**。假如 JSON Schema 设计用于结构化数学公式的输入与输出，而系统提示词却要求模型进行法律条文解析，这种不匹配可能会导致模型无法正确理解任务，影响生成结果的准确性。

3. **配置异常处理策略**。你可以在解析失败时考虑采取以下措施：

   1. **配置失败时重试**：在节点内开启 **失败时重试** 功能并配置最大重试次数与重试间隔，以减少解析错误的影响。

   2. **配置异常分支**：在节点内的 **异常处理** 中配置 **失败分支**。当节点发生异常时，将自动执行失败分支。

详情请参阅[异常处理](https://docs.dify.ai/zh-hans/guides/workflow/error-handling)。

<CardGroup cols="2">
  <Card title="编辑此页面" icon="pen-to-square" href="https://github.com/langgenius/dify-docs-mintlify/edit/main/zh-hans/guides/workflow/structured-outputs.mdx">
    通过直接提交修改来帮助改进文档内容
  </Card>

  <Card title="提交问题" icon="github" href="https://github.com/langgenius/dify-docs-mintlify/issues/new?title=文档问题%3A%20tured-outp&body=%23%23%20问题描述%0A%3C%21--%20请简要描述您发现的问题%20--%3E%0A%0A%23%23%20页面链接%0Ahttps%3A%2F%2Fgithub.com%2Flanggenius%2Fdify-docs-mintlify%2Fblob%2Fmain%2Fzh-hans/guides/workflow%2Fstructured-outputs.mdx%0A%0A%23%23%20建议修改%0A%3C%21--%20如果有具体的修改建议，请在此说明%20--%3E%0A%0A%3C%21--%20感谢您对文档质量的关注！%20--%3E">
    发现错误或有改进建议？请提交问题反馈
  </Card>
</CardGroup>
