Skip to main content
PromptQuorumBuilt for humans. Structured for AI.
主页/提示词工程/LLM中的结构化输出:JSON模式、示例及使用时机
技术

LLM中的结构化输出:JSON模式、示例及使用时机

·10分钟阅读·Hans Kuepper 作者 · PromptQuorum创始人,多模型AI调度工具 · PromptQuorum

结构化输出和JSON模式将语言模型的输出转变为可靠的机器可读格式,可以无缝集成到数据库、API和自动化工作流中。学习如何设计强制有效JSON输出的提示词,比较JSON模式与函数调用与架构提示词,并确定哪种方法适合您的用例。

LLM中的结构化输出:JSON模式、示例及使用时机

关键要点

  • 提高可靠性 : 结构化输出通过强制严格的架构来减少解析错误和手动数据清理。
  • 启用自动化 : JSON模式基于提取的字段(优先级、类别、紧急性)触发条件逻辑。
  • API就绪 : 直接集成到数据库、CRM和业务系统,无需重新格式化。
  • 取决于模型 : 原生JSON模式在GPT-5.6、Claude、Gemini中可用。旧型号/开源模式需要提示词工程。
  • 最适合确定性任务 : API、自动化、数据管道。避免创意写作。
  • 需要验证 : 始终在下游使用前验证和检查JSON输出。
  • 跨模型扩展 : 定义一次架构;测试和记录差异。

结构化输出是强制语言模型以预定义格式(如JSON)返回数据的一种方法。 它不同于自由形式文本,在于它强制严格的字段名称、数据类型和架构,下游工具可以毫不费力地处理。

以下是JSON格式的结构化输出的简单示例:

json
{
  "task": "summarize",
  "title": "Quick AI Guide",
  "summary": "This article explains structured output and JSON mode.",
  "key_points": ["JSON enforces format", "Reduces parsing errors", "Enables automation"],
  "audience_level": "intermediate",
  "confidence": 0.95
}

什么是结构化输出

📍 In One Sentence

结构化输出是指要求模型遵循固定的架构——列表、表格,或带有字段名与类型的 JSON——使下游工具无需人工清洗即可处理结果。

💬 In Plain Terms

自由文本适合人读,却让程序很难处理。有了架构,回答就变成数据库可以直接接收的东西,而不是每次都要靠字符串匹配去拆解的一段文字。

结构化输出意味着要求模型遵循固定的架构,例如列表、表格或JSON。 而不是自由形式的段落,您定义字段、类型和允许的值。

结构化输出可以采用多种形式:

  • 具有固定项数的项目符号列表。
  • 具有特定列的Markdown表格。
  • 简单属性的键值对。
  • 具有预定义键的完整JSON对象或数组。

目标始终是相同的:将模糊的描述转换为可预测的形式。

什么是JSON模式

JSON模式是结构化输出的更严格变体,其中模型被指示或配置为仅返回有效的JSON。 在JSON模式中,模型输出的所有内容都应该可以解析为JSON而无需额外的清理。

典型的JSON架构可能如下所示:

json
{
  "title": "string",
  "summary": "string",
  "tags": ["string"],
  "priority": "low | medium | high"
}

您在提示词中反映该架构,然后要求模型填充它。某些平台也提供强制仅JSON响应的特殊设置或API。

为什么结构化输出和JSON模式很重要

结构化输出和JSON模式很重要,因为它们使您能够将语言模型转变为更大系统的组件,而不仅仅是聊天助手。 当输出是可预测的时,您可以:

  • 直接将结果提供给数据库、CRM或分析工具。
  • 基于模型输出字段(优先级、状态、信心)触发自动化。
  • 构建显示卡片、表格或仪表板中模型结果的用户界面。

它们还让提示词更容易调试。如果结构出错,你就知道问题出在提示词或架构上,而不是某个含糊的"质量"维度。

JSON模式与函数调用与架构提示词

存在三种从LLM获取结构化输出的方法。每种都有不同的优缺点。

  • JSON模式 : 模型仅输出有效的JSON。最佳用途:数据提取、分类、摘要。
  • 函数调用 : 模型选择要调用的函数并以JSON提供参数。最佳用途:API集成、工具使用、代理工作流。
  • 架构提示词 : 显式指令+要求模型遵循架构的示例。最佳用途:灵活性、开源模型、自定义格式。

示例:自由文本与结构化JSON

当您比较免费文本提示词和结构化JSON提示词完成相同任务时,差异变得明显。 在这里,我们对客户电子邮件进行分类和汇总。

错误的提示词

"阅读此客户电子邮件并总结他们想要什么。"

正确的提示词 - JSON模式

"您是一名客户支持助理。"

"正确"版本定义架构、有效值和仅JSON要求。

结构化输出和JSON模式的最佳做法

要获得可靠的结构化输出,您在提示词中需要明确、一致和严格。 当抽取的数据不能离开自有基础设施时,同样的 JSON 模式模式也可以直接对接本地向量存储——要查看符合 GDPR 的部署模板,请参阅面向企业数据的本地 RAG。

  • 显示您期望的确切架构。
  • 声明仅应返回JSON或结构。
  • 使用简短、明确的键名称。
  • 当任务复杂或敏感时添加有效输出的示例。
  • 对于嵌套结构,逐步构建并使用真实输入进行测试。

如果仍然出现格式问题,可以加一条简单的指令,例如"如果不确定,请把该字段留为空字符串,不要猜测。"结构化输出与RAG(检索增强生成)结合使用效果最好,可用于核查抽取出的数据。当抽取的数据必须留在自有基础设施内时,同样的JSON模式可以直接对接本地部署的向量存储——符合GDPR的部署模板请参阅面向企业数据的本地RAG。

模型比较:按提供商的JSON合规性

不同的模型对原生JSON模式支持的级别不同。 截至2026年4月,以下是主要提供商的排名:

模型
原生JSON模式
仅提示词合规
备注
OpenAI GPT-5.6是(强制)不需要JSON模式的行业标准。
Anthropic Claude Sonnet 5是(强制)不需要JSON合规性优秀。
Google Gemini 2.0是(强制)不需要原生JSON支持。
Meta Llama 3.3(70B)部分强烈推荐开源。
Mistral Large部分推荐JSON行为良好。
旧GPT-3.5、Claude 2否必需需要强大的工程。
小型开源模型(<13B)否示例需要需要详细的架构。

受监管环境中的结构化输出

结构化输出在受监管行业中尤其有价值,因为它能强制实现一致的数据抽取、审计轨迹和合规文档。 不同地区的要求各不相同:

  • 欧盟(GDPR、AI Act):结构化输出支持系统化的数据分类和被遗忘权追踪。JSON模式让你可以标记哪些字段包含个人数据,便于开展DPIA(数据保护影响评估)和合规审计。
  • 日本(METI人工智能指南、APPI):带有明确架构定义的结构化抽取满足透明度和问责要求。日本的合规通常要求记录数据如何被处理——结构化输出提供了清晰的审计轨迹。
  • 中国(网信办规定、数据安全法):结构化输出有助于内容审核和数据驻留日志记录。JSON模式可对敏感内容(金融数据、个人信息)进行系统化分类,以符合网信办的相关标准。

常见错误

在实施结构化输出和JSON模式时,请避免以下常见错误:

  • 架构含糊:只说"抽取要点"而不定义架构,会导致输出不一致。务必指定确切的字段名、类型和约束。
  • 缺少示例:只给架构描述而不给示例,会带来20–30%的失败率。务必展示1–3个有效输出的示例。
  • 不校验输出:假定模型总会返回有效JSON,会在生产环境引发解析错误。务必校验,并妥善处理解析失败。
  • 不处理边界情况:可能缺失、含糊或超出范围的字段,必须定义好回退行为(null、空字符串或默认值)。
  • 只用简单输入测试:真实数据是杂乱的。请用边界情况测试你的架构:不完整的邮件、特殊字符、多语言混排、超长输入。

何时使用JSON模式而非其他方案

当你需要严格的架构约束和确定性输出时,选择JSON模式。当创造性和开放式推理更重要时,请避免使用它。

  • ✓ 使用JSON模式:需要严格架构、自动化流水线、API集成、数据抽取、分类任务、确定性输出、需要校验的生产系统。
  • ✗ 避免JSON模式:创意写作、开放式推理、头脑风暴、议论文、代码生成(function calling更合适)、哲学问题、叙事内容。
  • 替代方案:function calling —— 当你需要工具集成和智能体式工作流时使用(由模型选择调用哪个函数)。
  • 替代方案:架构提示词 —— 当你需要灵活性、使用开源模型,或不需要API级别的保证时使用。

什么时候应该使用结构化输出

结构化输出主要在三种场景中大放异彩。当你需要确定性的、机器可读的结果时就用它:

  • API与集成:把LLM的输出直接接入下游系统(数据库、CRM、仪表板)。结构化输出可避免解析错误和人工清洗。示例:从邮件中抽取客户数据并写入CRM。
  • 自动化与工作流:根据模型输出的字段(优先级、紧急程度、类别)触发动作。JSON模式确保字段抽取可靠,可供条件逻辑使用。示例:按紧急程度分派支持工单。
  • 数据流水线:大规模处理批量数据(文档、邮件、日志)。一致的架构使批处理、校验和错误处理成为可能。示例:从1万篇研究论文中抽取元数据,存入可检索的数据库。

如何使用结构化输出和JSON模式

  1. 1
    对于数据抽取和机器可读输出,请使用JSON模式(OpenAI GPT-5.6、Anthropic Claude、Google Gemini等均已提供)。 这可确保模型返回有效的JSON,而不是散文。示例:把产品信息抽取为JSON,键为name、price、description、rating。
  2. 2
    明确定义你的JSON架构,包括字段名、数据类型和约束。 示例:{ "name": string, "price": number (≥ 0), "in_stock": boolean, "tags": array of strings }。
  3. 3
    提供你想要的确切JSON结构的示例。 示例:{ "issue": "memory leak", "severity": "critical", "suggested_fix": "...", "code_snippet": "..." }。示例比架构描述更有效。
  4. 4
    对于嵌套结构(数组中的对象),请明确说明层级关系。 提供一个完整的JSON示例,包含嵌套数组。参见下方示例。
  5. 5
    在下游系统中使用之前,请先校验JSON输出。 解析返回的JSON并检查:(1)JSON语法是否有效;(2)所有必填字段是否齐全;(3)数据类型是否符合预期。妥善处理解析错误。

下面是一个包含嵌套数组的完整JSON示例,展示了正确的层级结构:

json
{
  "articles": [
    {
      "title": "string",
      "author": "string",
      "citations": [
        {
          "title": "string",
          "year": "number"
        }
      ]
    }
  ]
}

相关阅读

常见问题

结构化输出和JSON模式之间有什么区别?

结构化输出是更广泛的类别。JSON模式是更严格的变体。

所有LLM都支持JSON模式吗?

否。OpenAI GPT-5.6、Anthropic Claude Sonnet 5和Google Gemini支持。

在没有原生JSON模式的情况下如何强制仅JSON响应?

使用提示词工程:明确声明"仅输出有效JSON"。

如果模型返回无效JSON会发生什么?

在您的一方验证。失败时重试或回到手动方法。

我可以将结构化输出用于复杂文档吗?

是的。将复杂任务分解成步骤。

我如何处理缺失或模糊的数据?

在架构中定义后备行为。

JSON模式是否受监管合规性影响?

JSON本身是中立的。但结构化输出有益于合规性。

我如何测试JSON模式提示词?

使用不同的输入进行测试。在部署前达到95%的成功率。

我可以跨不同模型重复使用架构吗?

可以,但要谨慎。定义、测试和记录差异。

JSON模式的性能成本是什么?

最少。原生JSON模式影响可以忽略不计。

来源

使用本地LLM或您自己的API密钥应用这些技术 — PromptQuorum适用于任何后端。

免费试用PromptQuorum →

← 返回提示词工程