Responses API 开发指南:请求、输出与流式事件
Responses API 是当前 OpenAI 新项目进行直接模型请求的主线接口。它既能生成普通文本,也能承载多轮状态、图像输入、结构化输出和工具调用。开发重点不是记住所有参数,而是正确区分请求规则、用户输入与多种输出项目。
1、组织一次基本请求
const response = await client.responses.create({
model: process.env.OPENAI_MODEL || "gpt-5.6",
instructions: "你是中文客服助手。信息不足时先提问。",
input: "我的订单状态在哪里查看?",
});
console.log(response.output_text);
instructions 描述当前请求中的应用规则,input 放用户任务与材料。使用 previous_response_id 继续会话时,不要假设上一轮的 instructions 会自动成为本轮规则;需要持续执行的关键约束应在每次请求中明确提供。
2、正确读取输出
response.output 是一组带类型的项目,可能包含文本消息、函数调用或其他数据。简单文本应用可以读取 SDK 提供的 output_text,但工具应用要遍历 output,按 type 分支处理。不要固定读取 output[0].content[0].text,因为数组顺序和项目类型不能满足这个永久假设。
还要区分正常完成、拒绝、失败和不完整状态。面向用户的错误信息应简洁,详细响应标识与底层错误留在经过脱敏的服务端日志中。
3、什么时候启用流式输出
长回答适合设置 stream: true,通过服务器发送事件(SSE)逐步读取语义事件:
const stream = await client.responses.create({
model: "gpt-5.6",
input: "写一份产品发布检查清单。",
stream: true,
});
for await (const event of stream) {
if (event.type === "response.output_text.delta") {
process.stdout.write(event.delta);
}
}
生产代码还要处理完成、失败、拒绝、断线和用户取消。流式输出缩短的是用户看到第一个字符的等待,不保证总耗时更短,也会让内容审核更复杂。下一页说明旧 Assistants API 项目如何迁移到这套接口。