使用指南
视觉输入
图片以 URL 或 data URL(base64)传入的两种写法,以及体积与格式约束。
多模态模型接受图片输入。OpenAI 协议里图片是一个 image_url 内容块:
传公网 URL
resp = client.chat.completions.create(
model="gpt-5.4",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "这张图里有什么?"},
{"type": "image_url", "image_url": {"url": "https://example.com/cat.jpg"}},
],
}],
)传 base64(data URL)
import base64, pathlib
data = base64.b64encode(pathlib.Path("cat.jpg").read_bytes()).decode()
resp = client.chat.completions.create(
model="gpt-5.4",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "描述这张图"},
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{data}"}},
],
}],
)注意事项
- 格式:
image/jpeg、image/png、image/webp最稳妥;SVG 通常不被接受 - 体积:base64 会让请求体膨胀约 1/3。大图先缩放到长边 1024–2048px
- URL 可达性:上游厂商需要能访问你给的 URL,内网地址和预签名过期链接会失败
- 模型能力:不是所有模型都支持图片输入,不支持的模型会返回明确错误而不是忽略图片
Anthropic / Gemini 协议的图片形态
用 Anthropic 协议时图片是 {"type":"image","source":{"type":"base64",...}};用 Gemini 协议时是
inline_data / file_data。网关按入站协议解释,再映射到目标厂商 —— 见协议互转。