Openai 请求格式 本地图片分析 API 文档
通过多模态AI模型分析图片内容,支持OCR和图片信息提取功能。
接口地址
https://www.dmxapi.cn/v1/chat/completions本地图片分析预处理
需要先把本地图片转为 base64 再提交给模型。
请求示例
python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
================================================================================
DMX API 图片分析示例脚本
================================================================================
功能描述:
使用 DMX API 的 GPT-5-mini 模型分析本地图片内容
================================================================================
"""
import base64
import json
import requests
# ============================================================================
# 工具函数定义
# ============================================================================
def encode_image(image_path):
"""
将本地图片文件编码为 Base64 字符串
参数:
image_path (str): 本地图片文件的路径
返回:
str: Base64 编码后的图片字符串
异常:
FileNotFoundError: 当图片文件不存在时抛出
"""
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# ============================================================================
# API 配置参数
# ============================================================================
# API 基础地址
BASE_URL = "https://www.dmxapi.cn/"
# 聊天补全接口端点
API_ENDPOINT = BASE_URL + "v1/chat/completions"
# API 密钥(请替换为你的实际密钥)
API_KEY = "sk-*****************************************"
# ============================================================================
# 准备请求数据
# ============================================================================
# 读取并编码本地图片
image_data = encode_image("img/cc_01.png")
# 构建请求载荷
payload = {
"model": "gpt-5-mini", # 使用替换成你需要的模型名称,例如 "gpt-5-mini"
"messages": [
{
"role": "user", # 用户角色
"content": [
{
"type": "text",
"text": "请分析图片内容"
},
{
"type": "image_url",
"image_url": {
# Base64 格式的图片数据
"url": f"data:image/png;base64,{image_data}"
}
}
]
}
],
"temperature": 0.1 # 较低的温度值,使输出更确定和客观
}
# 构建请求头
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}
# ============================================================================
# 发送请求并处理响应
# ============================================================================
print("=" * 80)
print("正在向 DMX API 发送图片分析请求...")
print("=" * 80)
# 发送 POST 请求到 API 端点
response = requests.post(API_ENDPOINT, headers=headers, json=payload)
# 解析响应数据
result = response.json()
# 格式化输出结果
print("=" * 80)
print("API 响应结果")
print("=" * 80)
# 输出完整的 JSON 响应(美化格式)
print("【完整响应】")
print(json.dumps(result, indent=2, ensure_ascii=False))
# 提取并单独显示关键信息
if "choices" in result and len(result["choices"]) > 0:
print("-" * 80)
print("【图片分析结果】")
print("-" * 80)
content = result["choices"][0]["message"]["content"]
print(content)
# 输出使用统计
if "usage" in result:
print("-" * 80)
print("【Token 使用统计】")
print("-" * 80)
usage = result["usage"]
print(f"提示 Token 数: {usage.get('prompt_tokens', 0)}")
print(f"补全 Token 数: {usage.get('completion_tokens', 0)}")
print(f"总计 Token 数: {usage.get('total_tokens', 0)}")
# 输出模型信息
if "model" in result:
print("-" * 80)
print("【模型信息】")
print("-" * 80)
print(f"使用模型: {result['model']}")
if "created" in result:
from datetime import datetime
timestamp = result['created']
created_time = datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
print(f"创建时间: {created_time}")
else:
# 如果响应格式异常,输出错误信息
print("【错误】响应格式异常或请求失败")
if "error" in result:
print(f"错误信息: {result['error']}")
print("=" * 80)返回示例
json
================================================================================
正在向 DMX API 发送图片分析请求...
================================================================================
================================================================================
API 响应结果
================================================================================
【完整响应】
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"logprobs": null,
"message": {
"annotations": [],
"content": "这是一个应用或管理面板的截图,界面语言为中文。对图片内容的分析如下:\n\n- 顶部\n - 左上角显示应用名称 “CC Switch” 并有主题切换或状态图标(如月亮/太阳)。\n - 右侧有一组模型/选项按钮:Claude、Codex,当前看 起来 Claude 被选中(或高亮)。旁边有绿色按钮 “MCP”,以及蓝色按钮 “+ 添加供应商”。\n\n- 主体卡片区域\n - 页面主体只有一条卡片式条目,标题为 “DMXAPI”。\n - 在标题旁有绿色小标签 “当前使用”(或“当期使用”),表示该供应商/服务当前 被选作正在使用。\n - 卡片中有一个可点击的链接:https://www.dmxapi.cn。\n - 卡片右侧有三个图标/按钮:灰色带勾的按钮(显示“使用中”或已启用状态)、铅笔图标(编辑)、垃圾桶图标(删除)。这些是对该供应商的操作项。\n\n- 其它细节\n - 页面底部右侧有一个小的多彩 “DMXAPI” 标识或水印。\n - 整体风格简洁、卡片化布局,留白较多,交互元素清晰。\n\n- 推断的功能与用途\n - 这是一个用于管理或切换第三方供应商/API 的界面,用户可以添加、编辑、删除供应商,并选择当前使用的供应商(DMXAPI 当前处于启用/使用状态)。\n - 顶部的 Claude、Codex 等可能是不同的模型或服务选项,用于切换使用的模型类型或后端服务。\n\n- 建议(可选)\n - 若是产品设计角度:可在卡片上增加状态提示(响应时间/可用性)或更多元 信息(描述、API Key 状态)以便快速判断。\n - 添加悬浮提示(tooltip)说明每个按钮的具体功能,提升可用性。\n\n如需我把界面文字翻译为英文,或对某一部分做更深入的可用性/视觉设计分析,请告诉我。",
"refusal": null,
"role": "assistant"
}
}
],
"created": 1762512871,
"id": "chatcmpl-CZEOtBf33mjeHcTujbHwHE9hr8RFN",
"model": "gpt-5-mini-2025-08-07",
"object": "chat.completion",
"system_fingerprint": null,
"usage": {
"completion_tokens": 696,
"completion_tokens_details": {
"accepted_prediction_tokens": 0,
"audio_tokens": 0,
"reasoning_tokens": 192,
"rejected_prediction_tokens": 0
},
"prompt_tokens": 779,
"prompt_tokens_details": {
"audio_tokens": 0,
"cached_tokens": 0
},
"total_tokens": 1475
}
}
--------------------------------------------------------------------------------
【图片分析结果】
--------------------------------------------------------------------------------
这是一个应用或管理面板的截图,界面语言为中文。对图片内容的分析如下:
- 顶部
- 左上角显示应用名称 “CC Switch” 并有主题切换或状态图标(如月亮/太阳)。
- 右侧有一组模型/选项按钮:Claude、Codex,当前看起来 Claude 被选中(或高亮)。旁边有绿色按钮 “MCP”,以及蓝色按钮 “+ 添加供应商”。
- 主体卡片区域
- 页面主体只有一条卡片式条目,标题为 “DMXAPI”。
- 在标题旁有绿色小标签 “当前使用”(或“当期使用”),表示该供应商/服务当前被选作正在使用。
- 卡片中有一个可点击的链接:https://www.dmxapi.cn。
- 卡片右侧有三个图标/按钮:灰色带勾的按钮(显示“使用中”或已启用状态)、铅笔图标(编辑)、垃圾桶图标(删除)。这些是对该供应商的操作项。
- 其它细节
- 页面底部右侧有一个小的多彩 “DMXAPI” 标识或水印。
- 整体风格简洁、卡片化布局,留白较多,交互元素清晰。
- 推断的功能与用途
- 这是一个用于管理或切换第三方供应商/API 的界面,用户可以添加、编辑、删除供应商,并选择当前使用的供应商(DMXAPI 当前处于启用/使用状态)。
- 顶部的 Claude、Codex 等可能是不同的模型或服务选项,用于切换使用的模型类型或后端服务。
- 建议(可选)
- 若是产品设计角度:可在卡片上增加状态提示(响应时间/可用性)或更多元信息(描述、API Key 状态)以便快速判断。
- 添加悬浮提示(tooltip)说明每个按钮的具体功能,提升可用性。
如需我把界面文字翻译为英文,或对某一部分做更深入的可用性/视觉设计分析,请告诉我。
--------------------------------------------------------------------------------
【Token 使用统计】
--------------------------------------------------------------------------------
提示 Token 数: 779
补全 Token 数: 696
总计 Token 数: 1475
--------------------------------------------------------------------------------
【模型信息】
--------------------------------------------------------------------------------
使用模型: gpt-5-mini-2025-08-07
创建时间: 2025-11-07 18:54:31
================================================================================注意事项
- 图片需小于 20MB
- 支持 PNG/JPEG 格式;非普通扩展名的图片(例如
.file)请先处理成base64再给模型 - 响应时间取决于图片大小和模型选择
© 2025 DMXAPI Openai 本地图片分析
