多模态(图片输入)

在请求里附带图片,让模型理解图片内容。支持 Chat Completions 的 image_url 和 Anthropic Messages 的 image 内容块。

AI 星图目前支持图片输入(图片理解):在请求里附带图片,让模型描述、识别或分析图片内容。图片生成、音频和视频不在本文档范围内。

是否支持图片输入以模型自身能力为准,请先在 模型广场 查看模型详情,或在 游乐场 试一次。

示例中的 your-model-id 请替换为模型广场中的模型 ID(也可以调用 GET /v1/models 查看)。

方式一:Chat Completions(image_url)

在 messages[].content 里使用数组,同时放文本和图片。image_url.url 可以是公网可访问的图片 URL,也可以是 Base64 形式的 data: URL。

vision.py
import base64
import os

from openai import OpenAI

client = OpenAI(
    api_key=os.environ["MYAIEXP_API_KEY"],
    base_url="https://ai.myaiexp.com/v1",
)

# 读取本地图片并转成 data: URL
with open("photo.jpg", "rb") as f:
    b64 = base64.b64encode(f.read()).decode()

resp = client.chat.completions.create(
    model="your-model-id",  # 替换为模型广场中的模型 ID
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Describe this image in one sentence."},
                {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{b64}"}},
            ],
        }
    ],
)

print(resp.choices[0].message.content)

把 https://example.com/your-image.jpg 换成你自己的公网图片地址。

方式二:Anthropic Messages(Claude 原生格式)

通过 /v1/messages 调用支持 Claude 原生格式的模型时,图片使用 Anthropic 原生的 image 内容块,source 支持两种形式:

  • {"type": "base64", "media_type": "image/jpeg", "data": "<base64>"}:直接传图片数据,data 里不带 data:image/...;base64, 前缀。
  • {"type": "url", "url": "https://..."}:传公网图片 URL。
anthropic_vision.py
import base64
import os

import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["MYAIEXP_API_KEY"],
    base_url="https://ai.myaiexp.com",  # 注意:不带 /v1
)

with open("photo.jpg", "rb") as f:
    b64 = base64.b64encode(f.read()).decode()

message = client.messages.create(
    model="your-model-id",  # 替换为模型广场中的模型 ID
    max_tokens=512,
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "image", "source": {"type": "base64", "media_type": "image/jpeg", "data": b64}},
                {"type": "text", "text": "Describe this image in one sentence."},
            ],
        }
    ],
)

print(message.content[0].text)

注意事项

  • 图片会按模型的规则折算成输入 token 计费,图片越大消耗越多;可以先把图片缩小到够用的分辨率再发送。
  • 常见格式为 JPEG、PNG、GIF、WebP;media_type 要和图片实际格式一致。
  • 使用图片 URL 时,图片必须能被公网直接访问(不需要登录、没有防盗链),否则请改用 Base64。
  • 一条消息里可以放多张图片,建议把图片放在文字问题之前。
  • 每次请求实际消耗的输入 token 可以在 使用日志 中查看。

本服务仅供学习与研究用途。请遵守各模型提供方的使用政策。

本页目录