Openai Responses 接口 本地图片分析 API 文档
接口概述
该API允许用户上传图片并获取AI生成的详细描述,支持多种图片格式。
基础概念
- Base64编码:将二进制图片数据转换为文本格式,便于在JSON中传输
- MIME类型:标识图片格式的标准方式(如image/png)
- 数据URI:包含MIME类型和Base64数据的统一格式
接口详情
请求地址
POST https://www.dmxapi.cn/v1/responses
请求头
http
Content-Type: application/json
Authorization: Bearer ****** # 替换为你的API密钥
请求参数
json
{
"model": "gpt-4.1",
"input": [
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "图片描述提示语"
},
{
"type": "input_image",
"image_url": "data:image/png;base64,..."
}
]
}
]
}
Python 示例代码
python
import base64
import json
import os
import requests
# 配置参数
API_KEY = "sk-******" # 替换为你的 DMXAPI 令牌
IMAGE_PATH = "test.png" # 本地图片路径
def encode_image_to_base64(filepath):
"""将图片编码为Base64数据URI"""
# 获取文件扩展名确定MIME类型
ext = os.path.splitext(filepath)[1].lower()
mime_map = {
'.jpg': 'image/jpeg',
'.jpeg': 'image/jpeg',
'.png': 'image/png',
'.gif': 'image/gif',
'.webp': 'image/webp'
}
mime_type = mime_map.get(ext, 'application/octet-stream')
# 读取并编码图片
with open(filepath, "rb") as f:
return f"data:{mime_type};base64,{base64.b64encode(f.read()).decode('utf-8')}"
# 主程序
if __name__ == "__main__":
# 1. 编码图片
image_data = encode_image_to_base64(IMAGE_PATH)
# 2. 构造请求
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}
payload = {
"model": "gpt-4.1",
"input": [{
"role": "user",
"content": [
{"type": "input_text", "text": "描述这张图片"},
{"type": "input_image", "image_url": image_data} # 图片转 base64 放这里
]
}]
}
# 3. 发送请求
try:
response = requests.post(
"https://www.dmxapi.cn/v1/responses",
headers=headers,
json=payload
)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))
except Exception as e:
print(f"请求失败: {str(e)}")
响应示例
成功响应将返回JSON格式的图片描述:
json
{
"response": "图片中展示了一本放在木桌上的精装书...",
"status": "success"
}
错误处理
- 401: API密钥无效
- 400: 请求参数错误
- 413: 图片文件过大