视觉
通过 /v1/messages 以 base64 或 URL 向 Claude 发送图片。了解请求格式、支持的文件类型、大小限制以及如何选择模型。
所有 Claude 模型都支持图片输入。可以在 image 内容块中以 base64 内联传入,也可以传入 URL。
全部模型、功能与价格 面向 AI 智能体的文档索引:https://oneprovider.dev/docs/llms.txt 图片内容块
可以在同一个 content 数组中混合文本块和图片块。模型会把它们视为一条有序的数据流。
{
"model": "claude-sonnet-5-5",
"max_tokens": 512,
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Describe this image in one sentence." },
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAAA..."
}
}
]
}
]
} URL 来源
API 也接受公开的 HTTPS URL:我们会在服务端获取图片,再交给模型。
json{
"type": "image",
"source": {
"type": "url",
"url": "https://example.com/diagram.png"
}
} 格式与限制
- 媒体类型:
image/jpeg、image/png、image/gif、image/webp。 - 每个请求最多 20 张图片,base64 编码前每张最大 5 MB。
- 动图 GIF 只会解码第一帧。
- 视觉 token 按输入 token 计费:一张典型的 1024×1024 图片约为 1600 个 token。
Python(文件 → base64)
pythonimport base64, mimetypes
from anthropic import Anthropic
client = Anthropic(base_url="https://api.oneprovider.dev")
def encode_image(path: str):
with open(path, "rb") as f:
data = base64.standard_b64encode(f.read()).decode("ascii")
return {
"type": "base64",
"media_type": mimetypes.guess_type(path)[0] or "image/png",
"data": data,
}
msg = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=512,
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "What's in this screenshot?"},
{"type": "image", "source": encode_image("./screen.png")},
],
}],
)
print(msg.content[0].text) 如何为视觉任务选择模型
- OCR 和密集文字:当准确度比成本更重要时,选用
claude-opus-5-5。 - 物体和场景描述:均衡的默认选择是
claude-sonnet-5-5。 - 简单图表和界面截图:低成本批量处理用
claude-haiku-5-5;复杂情况请交给 Sonnet 或 Opus。
快速解答
该使用哪个 base URL?
Claude Code 和 Anthropic SDK 使用 https://api.oneprovider.dev。OpenAI SDK 和兼容 OpenAI 的客户端使用 https://api.oneprovider.dev/v1。同一个密钥可用于这两个地址;模型列表见模型页面 ,费率见价格页面 。
如何进行身份验证?
将完整的 sk-… 密钥放在 x-api-key 或 Authorization: Bearer 中,二选一,不要同时使用。请把密钥存放在环境变量中,不要写进会被提交的文件。了解更多身份验证说明 。
在哪里获取密钥?
在 Telegram 机器人 @oneprovider_robot 或 app.oneprovider.dev 打开您的个人中心,为余额充值,然后点击“签发密钥”。每个密钥都可以设置各自的消费限额。个人中心与 API 密钥 。
401、404 和 429 是什么意思?
401:密钥缺失、拼写有误或放错了请求头;请粘贴完整的密钥,不要带引号或空格。404:通常是 base URL 不对,例如缺少或重复了 /v1。429 且提示“Insufficient balance”:个人中心余额或密钥的消费限额已用完,请充值,不要反复重试;其他 429 属于速率限制,请等待 Retry-After 指定的时间。详情见:错误码 和故障排查 。
流式输出为什么会中断或被重置?
VPN 和 VLESS 代理常常会缓冲 SSE,或破坏 HTTP/2 协商。OneProvider 没有地区限制,也不会缓冲流式输出,请关闭代理后重试。
以上都没解决,该去哪里咨询?
请在 Telegram 联系 @Oneproviderhelpbot ,或在网页个人中心打开“客服”,并附上 HTTP 状态码和完整的错误信息。客服如何运作 。
最后更新: 2026-11-08 发现问题? @Oneproviderhelpbot