Skip to content

Claude 图片分析 API 文档

📋 概述

Claude 图片分析 API 允许开发者通过 DMXAPI 服务调用 Claude 模型对图片进行智能分析。支持本地图片和网络图片两种方式。

🔗 请求地址

text
https://www.dmxapi.cn/v1/messages

📁 本地图片分析

🐍 本地图片Python 调用示例

python
"""
==============================================
DMXAPI Claude 图片分析测试脚本
==============================================
功能说明:
    使用 DMXAPI Claude API 对本地图片进行智能分析
    支持 JPG、PNG、GIF、WebP 等常见图片格式
==============================================
"""

import requests
import os
import base64
import json
from pathlib import Path

# ============== 基础配置 ==============
# DMXAPI 服务地址
NEWAPI_BASE_URL = "https://www.dmxapi.cn"

# DMXAPI 密钥(优先使用环境变量,可提高安全性)
API_KEY = os.getenv("NEWAPI_API_KEY") or "sk-********************************************"

# 本地图片路径(请修改为你的实际图片路径)
image_path = "test/example.jpg"

# ============== 请求头配置 ==============
headers = {
    "content-type": "application/json",
    "x-api-key": API_KEY
}

# ============== 工具函数 ==============

def get_image_media_type(file_path):
    """
    获取图片的 MIME 类型

    参数:
        file_path (str): 图片文件路径

    返回:
        str: 图片的 MIME 类型(如 'image/jpeg')

    说明:
        根据文件扩展名自动识别图片类型,默认返回 'image/jpeg'
    """
    ext = Path(file_path).suffix.lower()

    # 支持的图片格式映射表
    media_types = {
        '.jpg': 'image/jpeg',
        '.jpeg': 'image/jpeg',
        '.png': 'image/png',
        '.gif': 'image/gif',
        '.webp': 'image/webp'
    }

    return media_types.get(ext, 'image/jpeg')


def encode_image_to_base64(file_path):
    """
    将本地图片编码为 Base64 字符串

    参数:
        file_path (str): 图片文件路径

    返回:
        str: Base64 编码的图片数据

    说明:
        将图片文件读取为二进制数据,然后转换为 Base64 字符串
        这是调用 Claude API 传递图片的标准方式
    """
    with open(file_path, 'rb') as f:
        return base64.b64encode(f.read()).decode('utf-8')



# ============== 主程序逻辑 ==============

# 步骤 1: 验证图片文件是否存在
if not os.path.exists(image_path):
    print(f"错误: 图片文件不存在: {image_path}")
    exit(1)

# 步骤 2: 处理图片数据
print(f"正在读取图片: {image_path}")
# 获取图片的 Base64 编码
image_data = encode_image_to_base64(image_path)
# 获取图片的 MIME 类型
media_type = get_image_media_type(image_path)

# 步骤 3: 构建 API 请求体
# 注意:Claude API 使用 Anthropic Messages API 格式
payload = {
    # 使用的模型(Claude Sonnet 4.5)
    "model": "claude-sonnet-4-5-20250929",

    # 消息数组
    "messages": [
        {
            "role": "user",  # 用户角色
            "content": [
                {
                    # 图片内容块
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": media_type,  # 图片 MIME 类型
                        "data": image_data         # Base64 编码的图片数据
                    }
                },
                {
                    # 文本内容块(向 Claude 提问)
                    "type": "text",
                    "text": "这张图片里有什么?"
                }
            ]
        }
    ]
}

# 步骤 4: 发送 API 请求
print(f"正在分析图片: {image_path}")
response = requests.post(
    f"{NEWAPI_BASE_URL}/v1/messages",  # API 端点
    headers=headers,                    # 请求头(包含 API Key)
    json=payload                        # JSON 格式的请求体
)

# 步骤 5: 处理 API 响应
if response.status_code == 200:
    # 请求成功
    result = response.json()
    print("\n" + "="*50)
    print("分析成功!")
    print("="*50)
    print("\n响应内容:")
    # 使用 json.dumps() 格式化输出 JSON,缩进 2 个空格,显示中文字符
    print(json.dumps(result, indent=2, ensure_ascii=False))
else:
    # 请求失败
    print("\n" + "="*50)
    print(f"请求失败 (状态码: {response.status_code})")
    print("="*50)
    print("\n错误详情:")
    # 尝试格式化 JSON 错误响应
    try:
        error_json = response.json()
        print(json.dumps(error_json, indent=2, ensure_ascii=False))
    except:
        # 如果不是 JSON 格式,直接输出原始文本
        print(response.text)

📊 本地图片返回示例

json
正在读取图片: test/example.jpg
正在分析图片: test/example.jpg

==================================================
分析成功!
==================================================

响应内容:
{
  "id": "msg_0143pgS3etx891xjeozb2ieK",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4-5-20250929",
  "content": [
    {
      "type": "text",
      "text": "这张图片显示的是一台**佳能(Canon)计算器**,型号为WS-1212H。\n\n主要特征包括:\n\n1. **显示屏**:顶部有一个LCD显示屏,显示12位数字\n\n2. **按键布局**:\n   - 数字键:0-9,还有\"00\"\n   - 基本运算键:加(+)、减(-)、乘(×)、除(÷)、等于(=)\n   - 功能键:包括MU、GT、CM、RM、M±、M=等记忆功能键\n   - 特殊键:平方根(√)、百分比(%±)、货币转换(£)\n   - 电源键:红色的ON/CA键和CI/C键\n\n3. **颜色**:银灰色和深灰色的配色方案,带有红色的功能键\n\n4. **背景**:计算器放置在 一块有蓝色和黄色花纹图案的布料上,旁边还能看到一条浅蓝色毛巾的边缘\n\n这是一款常见的办公或家用计算器,具备基本的算术运算和记忆功能。"
    }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 1584,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 0,
    "output_tokens": 341,
    "claude_cache_creation_5_m_tokens": 0,
    "claude_cache_creation_1_h_tokens": 0
  }
}

🌐 URL 图片分析

🐍 Python 调用示例

python
"""
==============================================
DMXAPI Claude 图片分析测试脚本
==============================================
功能说明:
    使用 DMXAPI Claude API 对图片 URL 进行智能分析
    支持任何可访问的图片 URL(JPG、PNG、GIF、WebP 等)
==============================================
"""

import requests
import os
import json

# ============== 基础配置 ==============
# DMXAPI 服务地址
NEWAPI_BASE_URL = "https://www.dmxapi.cn"

# DMXAPI 密钥(优先使用环境变量,可提高安全性)
API_KEY = os.getenv("NEWAPI_API_KEY") or "sk-********************************************"

# 图片 URL(请修改为你要分析的图片 URL)
image_url = "https://doc.dmxapi.cn/example.jpg"

# ============== 请求头配置 ==============
headers = {
    "content-type": "application/json",
    "x-api-key": API_KEY
}

# ============== 主程序逻辑 ==============

# 步骤 1: 验证图片 URL 格式
if not image_url.startswith(('http://', 'https://')):
    print(f"错误: 无效的图片 URL: {image_url}")
    exit(1)

# 步骤 2: 构建 API 请求体
# 注意:Claude API 使用 Anthropic Messages API 格式
print(f"正在分析图片: {image_url}")

payload = {
    # 使用的模型(Claude Sonnet 4.5)
    "model": "claude-sonnet-4-5-20250929",

    # 消息数组
    "messages": [
        {
            "role": "user",  # 用户角色
            "content": [
                {
                    # 图片内容块(使用 URL 方式)
                    "type": "image",
                    "source": {
                        "type": "url",
                        "url": image_url  # 直接传入图片 URL
                    }
                },
                {
                    # 文本内容块(向 Claude 提问)
                    "type": "text",
                    "text": "这张图片里有什么?"
                }
            ]
        }
    ]
}

# 步骤 3: 发送 API 请求
response = requests.post(
    f"{NEWAPI_BASE_URL}/v1/messages",  # API 端点
    headers=headers,                    # 请求头(包含 API Key)
    json=payload                        # JSON 格式的请求体
)

# 步骤 4: 处理 API 响应
if response.status_code == 200:
    # 请求成功
    result = response.json()
    print("\n" + "="*50)
    print("分析成功!")
    print("="*50)
    print("\n响应内容:")
    # 使用 json.dumps() 格式化输出 JSON,缩进 2 个空格,显示中文字符
    print(json.dumps(result, indent=2, ensure_ascii=False))
else:
    # 请求失败
    print("\n" + "="*50)
    print(f"请求失败 (状态码: {response.status_code})")
    print("="*50)
    print("\n错误详情:")
    # 尝试格式化 JSON 错误响应
    try:
        error_json = response.json()
        print(json.dumps(error_json, indent=2, ensure_ascii=False))
    except:
        # 如果不是 JSON 格式,直接输出原始文本
        print(response.text)

📊 返回示例

json
正在分析图片: https://doc.dmxapi.cn/example.jpg

==================================================
分析成功!
==================================================

响应内容:
{
  "id": "msg_012L46ngXpVWzbicPbnr7ccB",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4-5-20250929",
  "content": [
    {
      "type": "text",
      "text": "这张图片显示的是一台**佳能(Canon)计算器**,型号为WS-1212H。\n\n主要特点包括:\n\n1. **显示屏**:顶部有一个液晶显示屏\n2. **按键布局**:\n   - 数字键:0-9\n   - 基本运算键:加(+)、减(-)、乘(×)、除(÷)\n   - 功能键:MU、GT、CM 、RM、M±、M=(记忆功能)\n   - 特殊功能:百分比(%)、平方根(√)、货币转换(£)\n   - 电源键:红色的ON/CA键和CI/C键\n\n3. **颜色**:银灰色和白色相间的外观设计\n\n4. **背景**:计算器放在一张带有蓝色花纹图案的床单或布料上,旁边还能看到一条青绿色 的毛巾\n\n这是一款常见的桌面型商务计算器,适合日常计算和办公使用。"
    }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 1584,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 0,
    "output_tokens": 303,
    "claude_cache_creation_5_m_tokens": 0,
    "claude_cache_creation_1_h_tokens": 0
  }
}

© 2025 DMXAPI Claude图片分析

一个 Key 用全球大模型