图像输入与图床上传
文本模型处理图片时通常有两种传图方式:
不要把 API Key 写进前端、日志或文档仓库。图片 URL 不要使用需要登录态、临时 Cookie 或内网访问的地址。
上传本地图片
如果模型协议要求传图片 URL,可以先把本地图片上传到自己的图床,再把返回的 url 放进模型请求。
图床上传接口建议采用 multipart/form-data,字段名为 file,返回 JSON 中包含公网可访问的 url:
Python 示例:
Chat Completions
Chat Completions 使用 OpenAI 兼容的 messages[].content 数组。图片 URL 放在 image_url.url。
base64 图片也通过 image_url.url 传入,但需要带完整 data URL 前缀:
Claude Messages
Claude 原生 Messages 使用 content[].source。
URL 图片:
base64 图片:
Claude 的 source.data 只放纯 base64 字符串,不要带 data:image/png;base64, 前缀。
OpenAI Responses
Responses 使用 input[].content 数组。图片 URL 放在 input_image.image_url。
如果模型和通道支持 base64,可把 image_url 改成 data URL:
Gemini 原生
Gemini 原生格式常用 inlineData 传 base64:
URL 图片可使用 fileData,但是否能被上游下载取决于模型和通道:
上线前检查
- 先用
/v1/models 确认当前 API Key 能调用目标模型。
- 用一张小图分别测试 URL 与 base64,确认模型能正确读取图片内容。
- URL 方式失败时,先确认图片是否公网可访问;仍失败时,上传到稳定图床后重试。
- base64 方式失败时,确认协议是否需要 data URL 前缀,以及
media_type / mimeType 是否正确。