JSON 模式

JSON Mode 使用指南,让模型输出结构化 JSON 数据,便于程序解析和处理。

1. 使用场景

目前 KHB 算力平台的大模型 API 默认生成非结构化文本,但在某些应用场景中,您可能希望模型以结构化的形式输出内容,但用提示词的方式直接告诉大模型却无法获得正确的结构化输出。

作为一种标准化、轻量级的数据交换格式,JSON 模式是支持大模型 API 进行结构化输出的重要功能。当您调用大模型的 API 进行请求时,模型返回的结果以 JSON 格式呈现,易于人类阅读和编写,同时也易于机器解析和生成。

目前,平台上除了 VL 模型外,其他主要语言模型均已支持 JSON 模式,能让模型输出 JSON 格式的字符串,以确保模型以预期的结构输出,便于后续对输出内容进行逻辑解析。

比如,您现在可以通过 KHB API 对以下案例尝试结构化输出:

  • 从公司相关报道中构建新闻数据库,包括新闻标题、链接等。
  • 从商品购买评价中提取出情感分析结构,包括情感极性(正面、负面、中性)、情感强度、情感关键词等。
  • 从商品购买历史中提取出产品列表,包括产品信息、推荐理由、价格、促销信息等。

2. 使用方式

在请求中添加:

response_format={"type": "json_object"}

3. 支持模型列表

目前线上,平台提供的大语言类模型均支持上述参数。

注意:支持的模型情况可能会发生变化,请查阅本文档了解最新支持的模型列表。

  • 您的应用必须检测并处理可能导致模型输出不完整 JSON 对象的边缘案例。
  • 请合理设置 max_tokens,防止 JSON 字符串被中断。

4. 使用示例

下面是在 OpenAI 中使用的例子:

import json
from openai import OpenAI

client = OpenAI(
    api_key="您的 APIKEY",  # 从 https://account.khb.com/account/ak 获取
    base_url="https://khb.net.cn/v1"
)

response = client.chat.completions.create(
    model="Pro/zai-org/GLM-5.1",
    messages=[
        {"role": "system", "content": "You are a helpful assistant designed to output JSON."},
        {"role": "user", "content": "2020 年世界奥运会乒乓球男子和女子单打冠军分别是谁? "
            "Please respond in the format {"男子冠军": ..., "女子冠军": ...}"}
    ],
    response_format={"type": "json_object"}
)

print(response.choices[0].message.content)

模型将输出:

{"男子冠军": "马龙", "女子冠军": "陈梦"}

Related Post