开发文档

图片理解

Claude、GPT、Gemini 系列模型都能读懂图片:识别内容、提取文字、分析图表和界面截图。图片和文字一起放进同一条用户消息即可。

传入图片的两种方式

  • 图片链接:公网可以访问的 https:// 地址。
  • Base64:本地图片编码后直接放进请求,适合私有图片。

OpenAI 兼容格式

from openai import OpenAI

client = OpenAI(api_key="sk-...", base_url="https://api.flyrouter.ai/v1")

resp = client.chat.completions.create(
    model="gpt-6.1-sol",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "这张图里有什么?"},
            {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}},
        ],
    }],
)
print(resp.choices[0].message.content)

Anthropic 原生格式

vision_claude.py
import base64
from anthropic import Anthropic

client = Anthropic(api_key="sk-...", base_url="https://api.flyrouter.ai")

with open("chart.png", "rb") as f:
    data = base64.b64encode(f.read()).decode()

msg = client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=2048,
    messages=[{
        "role": "user",
        "content": [
            {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": data}},
            {"type": "text", "text": "总结这张图表的主要趋势"},
        ],
    }],
)
print(msg.content[0].text)

使用图片链接时,把 source 换成 {"type": "url", "url": "https://..."}。

注意事项

  • 支持 JPEG、PNG、GIF、WebP 等常见格式。
  • 图片按尺寸折算成输入 token 计费,图片越大越贵。发送前把图片缩放到够用的分辨率,可以明显降低成本。
  • 一条消息可以放多张图片,模型能对比分析。
  • 把图片放在问题文字之前,通常效果更好。
FlyRouter

一个 Key,直飞全球大模型