GPT-5.6 API 使用案例:从结构化抽取到工具型 Agent
本文示例使用 Responses API。运行前需要安装最新版 OpenAI SDK,并通过环境变量配置
OPENAI_API_KEY。模型权限、价格和字段支持情况以调用当日的官方文档为准。
GPT-5.6 的价值不只是回答问题。把 Sol、Terra、Luna 放进不同的业务位置,才能同时控制质量、延迟和成本。下面用三个案例说明如何选模型、设置推理强度,以及怎样让输出进入真实系统。
准备工作
安装 Python SDK:
pip install --upgrade openai初始化客户端:
from openai import OpenAI
client = OpenAI()API Key 应放在 OPENAI_API_KEY 环境变量或密钥管理服务中,不要写进源码、日志或前端代码。
案例一:用 Luna 批量提取工单字段
适合场景:客服工单分类、发票字段抽取、内容标签、简历初筛。任务结构固定、请求量大,优先从 Luna 和 none 推理开始测试。
from openai import OpenAI
client = OpenAI()
ticket = "用户反馈企业控制台从上午 9 点开始无法导出月度账单,财务今天下班前要完成对账。"
response = client.responses.create(
model="gpt-5.6-luna",
reasoning={"effort": "none"},
input=ticket,
text={
"verbosity": "low",
"format": {
"type": "json_schema",
"name": "support_ticket",
"strict": True,
"schema": {
"type": "object",
"properties": {
"category": {"type": "string"},
"urgency": {
"type": "string",
"enum": ["low", "medium", "high"]
},
"summary": {"type": "string"}
},
"required": ["category", "urgency", "summary"],
"additionalProperties": False
}
}
}
)
print(response.output_text)生产环境不要直接相信模型生成的 JSON。仍要做 Schema 校验、枚举校验和失败重试,并记录无法分类的样本,定期更新评测集。
案例二:用 Terra 构建订单查询助手
适合场景:客服助手、内部知识查询、库存查询、工单系统。Terra 可作为多数工具工作流的起点,Responses API 则允许模型在推理过程中选择工具。
from openai import OpenAI
client = OpenAI()
tools = [
{
"type": "function",
"name": "get_order_status",
"description": "根据订单号查询订单和物流状态,不执行退款或改址",
"parameters": {
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "用户提供的完整订单号"
}
},
"required": ["order_id"],
"additionalProperties": False
},
"strict": True
}
]
response = client.responses.create(
model="gpt-5.6-terra",
reasoning={"effort": "low"},
input="请查询订单 A202607270018 的物流状态,并用一句话告诉客户。",
tools=tools,
)
for item in response.output:
if item.type == "function_call" and item.name == "get_order_status":
print(item.arguments)真实应用还需要执行函数,再把结果作为工具输出交回模型生成最终答复。关键安全边界是:查询工具只允许读取;退款、改址、发货等写操作应拆成独立工具,并在执行前做身份校验和人工确认。
不要把几十个无关工具一次性暴露给模型。工具越多,选择成本和误调用风险越高。工具描述至少应说明用途、使用条件、关键返回字段和错误行为。
案例三:用 Sol 做复杂代码审查
适合场景:跨文件改造、架构评审、安全审计、复杂故障分析。此类任务通常质量优先,可以从 Sol + high 开始,再通过评测判断是否能降到 medium。
from openai import OpenAI
client = OpenAI()
review_prompt = """
目标:审查下面的支付回调代码,找出会造成重复入账或验签绕过的问题。
成功标准:
- 只报告能由代码证据支持的问题
- 每个问题包含风险、触发条件、代码证据和最小修复方案
- 按严重程度排序
- 如果证据不足,明确写出还缺少哪个文件或配置
代码:
<在这里放入经过脱敏的代码或文件内容>
"""
response = client.responses.create(
model="gpt-5.6-sol",
reasoning={"effort": "high"},
text={"verbosity": "medium"},
input=review_prompt,
)
print(response.output_text)复杂任务的提示词应先说明目标和验收标准,而不是要求模型机械执行几十个步骤。真正不可违反的权限、安全和输出格式要明确,其余过程允许模型根据证据选择。
一个简单的模型路由器
生产应用通常不应固定使用一个模型。可以先根据已知业务类型路由,再通过质量评测持续修正。
MODEL_BY_TASK = {
"extract": ("gpt-5.6-luna", "none"),
"support": ("gpt-5.6-terra", "low"),
"deep_review": ("gpt-5.6-sol", "high"),
}
def run_task(task_type: str, prompt: str):
model, effort = MODEL_BY_TASK[task_type]
return client.responses.create(
model=model,
reasoning={"effort": effort},
input=prompt,
)这只是起点。成熟路由器还应考虑:
- 输入是否超过 Luna 的上下文窗口;
- 任务失败是否会产生资金、安全或合规风险;
- 是否需要工具、图片、PDF 或结构化输出;
- 当前模型的超时率和限流情况;
- 低成本模型失败后是否值得升级到更强模型重试。
多轮任务与状态
需要承接上一轮结果时,可使用 previous_response_id:
first = client.responses.create(
model="gpt-5.6-terra",
input="为这份故障报告列出三个最可能原因。",
)
second = client.responses.create(
model="gpt-5.6-terra",
previous_response_id=first.id,
input="针对第一个原因,给出不影响生产的验证步骤。",
)不要在没有需求时盲目保存所有历史推理。长期任务要明确哪些事实仍然有效;目标变化后,旧推理可能成为噪声。
生产环境检查清单
- 为每类任务建立包含正常、边界和对抗样本的评测集。
- 记录模型标识、推理强度、Token、延迟、工具调用和最终状态。
- 对模型输出做 Schema 与业务规则校验。
- 读写工具分离,高风险操作必须二次确认。
- 设置超时、有限重试、降级模型和人工接管策略。
- 脱敏个人信息、密钥、支付数据与生产日志。
- 用“合格任务成本”而不是单次 Token 价格做选型。