JSON 模式 - MyTokenGate
1. 使用场景
目前,MyTokenGate 的大模型 API 平台 MyTokenGate 默认生成非结构化文本,但在某些应用场景中,您可能希望模型以结构化的形式输出内容,但用提示词的方式直接告诉大模型却无法获得正确的结构化输出。
作为一种标准化、轻量级的数据交换格式,JSON 模式是支持大模型 API 进行结构化输出的重要功能。当您调用大模型的 API 进行请求时,模型返回的结果以 JSON 格式呈现,易于人类阅读和编写,同时也易于机器解析和生成。
现在,MyTokenGate 平台上除了 VL 模型外,其他主要语言模型均已支持 JSON 模式,能让模型输出 JSON 格式的字符串,以确保模型以预期的结构输出,便于后续对输出内容进行逻辑解析。
比如,您现在可以通过 MyTokenGate API 对以下案例尝试结构化输出:
- 从公司相关报道中构建新闻数据库,包括新闻标题、链接等。
- 从商品购买评价中提取出情感分析结构,包括情感极性(正面、负面、中性)、情感强度、情感关键词等。
- 从商品购买历史中提取出产品列表,包括产品信息、推荐理由、价格、促销信息等。
2. 使用方式
在请求中添加
response_format={"type": "json_object"}3. 支持模型列表
目前线上,平台提供的大语言类模型都支持上述参数。
4. 使用示例
下面是在 OpenAI 中使用的例子:
import json
from openai import OpenAI
client = OpenAI(
api_key="您的 APIKEY", # 从 https://mytokengate.com/app/dashboard 获取
base_url="https://gateway.mytokengate.com/v1"
)
response = client.chat.completions.create(
model="gpt-5.4",
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)模型将输出:
{"男子冠军": "马龙", "女子冠军": "陈梦"}5. 严格模式(JSON Schema)
除了 json_object,支持结构化输出的模型还接受更严格的 json_schema 形式。你可以指定字段、类型与必填项,让模型严格按照给定 Schema 输出,省去后续校验:
response_format={
"type": "json_schema",
"json_schema": {
"name": "sentiment",
"strict": True,
"schema": {
"type": "object",
"properties": {
"polarity": {"type": "string", "enum": ["positive", "negative", "neutral"]},
"score": {"type": "number"}
},
"required": ["polarity", "score"],
"additionalProperties": False
}
}
}response_format 会原样透传至上游,是否强制符合 Schema 取决于所选模型的支持情况;不支持严格模式的模型可退回使用 json_object。
Last updated on