Openai Response 接口格式调用
o3-pro 必须用 Response 接口格式调用
Response API 是Openai 新一代API接口规范。 o3-pro 模型必须使用特定格式进行调用。
基础概念
流式输出(Streaming Output)是一种实时内容呈现方式,其核心特征是将信息以逐字或逐段的形式动态展示。这种输出模式主要应用于以下典型场景: 即时通讯对话界面、数字人直播互动、实时信息推送系统。
技术特点:实现低延迟的内容传输、增强用户交互体验、模拟自然语言交流节奏。
注:与传统的整段输出相比,流式输出更符合人类对话的自然节奏,能有效提升交互场景的用户体验。
参数说明
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| api_key | string | 是 | DMXAPI认证密钥 |
| base_url | string | 是 | API服务地址 |
| model | string | 是 | 指定模型 |
| input | string | 是 | 输入的文本内容 |
request 调用示例
python
import requests
import json
# DMXAPI 的 URL 地址
url = "https://www.dmxapi.cn/v1/responses"
# API密钥 - 用于身份验证和访问控制
api_key = "sk-*********************************" # 替换为你的API密钥
# 构建请求头 - 设置内容类型和授权信息
headers = {
"Content-Type": "application/json", # 指定请求体为JSON格式
"Authorization": f"Bearer {api_key}", # Bearer token认证方式
}
# 构建请求数据,添加stream参数 - 配置AI模型和输入内容
data = {
"model": "gpt-5-mini", # 指定使用的AI模型版本
"input": "你好", # 发送给AI的问题或指令
"stream": True # 启用流式输出 - 实时接收响应而不是等待完整回复
}
# 发送 POST 请求,设置stream=True - 向API发送请求并启用流式响应
response = requests.post(url, headers=headers, json=data, stream=True)
# 处理流式响应 - 实时处理服务器返回的数据流
try:
# 初始化变量用于跟踪当前事件和数据
current_event = None # 当前SSE事件类型
current_data = None # 当前SSE事件数据
# 逐行读取响应流 - 处理服务器发送的每一行数据
for line in response.iter_lines():
if line: # 如果行不为空
# 解码字节数据为UTF-8字符串并去除首尾空白
line_text = line.decode('utf-8').strip()
# 处理SSE格式的事件流 - Server-Sent Events协议解析
if line_text.startswith('event: '):
# 解析事件类型 - 提取事件名称
current_event = line_text[7:]
elif line_text.startswith('data: '):
# 解析事件数据 - 提取数据内容
current_data = line_text[6:]
# 只处理包含文本内容的事件 - 过滤出我们需要的文本增量事件
if current_event == 'response.output_text.delta' and current_data:
try:
# 解析JSON数据 - 将字符串转换为Python字典
json_data = json.loads(current_data)
# 提取文本内容 - 根据实际数据结构,文本在delta字段中
if 'delta' in json_data:
content = json_data['delta'] # 获取增量文本内容
if content:
# 实时打印文本内容 - 不换行,立即刷新输出缓冲区
print(content, end='', flush=True)
except json.JSONDecodeError:
# 静默处理JSON解析错误,不打印错误信息 - 避免干扰正常输出
pass
elif line_text == '':
# 空行表示一个事件结束 - 重置事件状态
current_event = None
current_data = None
except KeyboardInterrupt:
# 处理用户中断 - 当用户按Ctrl+C时优雅退出
print("\n用户中断了请求")
except Exception as e:
# 处理其他异常 - 捕获并显示任何意外错误
print(f"发生错误: {e}")
# 最后换行 - 确保输出格式整洁
print()注意保护好自己的API密钥,不要泄露给他人。
