Obrazy (vision)
Wysyłaj obrazy do Claude przez /v1/messages jako base64 lub URL. Zobacz format zapytania, obsługiwane typy plików, limity rozmiaru i wybierz odpowiedni model.
Wszystkie modele Claude przyjmują obrazy. Przekaż je w treści jako base64 lub jako URL w bloku obrazu.
Wszystkie modele, możliwości i ceny Indeks dokumentacji dla agentów AI:https://oneprovider.dev/docs/llms.txt Blok treści z obrazem
Bloki tekstu i obrazów możesz mieszać w jednej tablicy content. Model traktuje je jako jeden uporządkowany strumień.
{
"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..."
}
}
]
}
]
} Źródło URL
API przyjmuje także publiczny adres URL HTTPS: pobieramy obraz po stronie serwera i przekazujemy go modelowi.
json{
"type": "image",
"source": {
"type": "url",
"url": "https://example.com/diagram.png"
}
} Formaty i limity
- Typy mediów:
image/jpeg,image/png,image/gif,image/webp. - Do 20 obrazów na żądanie i 5 MB na obraz przed kodowaniem base64.
- Animowane pliki GIF są dekodowane do pierwszej klatki.
- Tokeny wizji są rozliczane jak tokeny wejściowe — typowy obraz 1024×1024 to ok. 1600 tokenów.
Python (plik → 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) Wybór modelu do wizji
- OCR i gęsty tekst —
claude-opus-5-5, gdy dokładność jest ważniejsza niż koszt. - Opis obiektów i scen —
claude-sonnet-5-5jako zrównoważony wybór domyślny. - Proste diagramy i zrzuty ekranu interfejsów —
claude-haiku-5-5do taniego przetwarzania wsadowego; trudniejsze przypadki przenieś na Sonnet lub Opus.
Szybkie odpowiedzi
Jakiego base URL użyć?
Claude Code i SDK Anthropic używają https://api.oneprovider.dev. SDK OpenAI i klienty zgodne z OpenAI używają https://api.oneprovider.dev/v1. Jeden klucz działa przy obu; lista modeli jest na stronie modeli , a stawki na stronie cennika .
Jak się uwierzytelnić?
Wyślij surowy klucz sk-… w x-api-key albo Authorization: Bearer: w jednym z nich, nigdy w obu. Trzymaj klucz w zmiennej środowiskowej, a nie w pliku, który trafia do repozytorium. Więcej o uwierzytelnianiu .
Skąd wziąć klucz?
Otwórz swój Panel w bocie Telegram @oneprovider_robot lub na app.oneprovider.dev, doładuj saldo i naciśnij „Utwórz klucz”. Każdy klucz może mieć własny limit wydatków. Panel i klucze API .
Co oznaczają 401, 404 i 429?
401: klucza brakuje, jest błędnie wpisany albo wysłany w złym nagłówku; wklej cały klucz bez cudzysłowów i spacji. 404: zwykle zły base URL, na przykład brakujące lub podwojone /v1. 429 z komunikatem „Insufficient balance”: saldo Panelu lub limit wydatków klucza się wyczerpał, więc doładuj zamiast ponawiać; każde inne 429 to limit zapytań, więc poczekaj zgodnie z Retry-After. Szczegóły: kody błędów i rozwiązywanie problemów .
Dlaczego strumienie się urywają lub resetują?
VPN i proxy VLESS często buforują SSE albo zrywają negocjację HTTP/2. OneProvider nie ma ograniczeń regionalnych i nie buforuje strumieni, więc wyłącz proxy i spróbuj ponownie.
Gdzie pytać, jeśli to nie wystarcza?
Napisz do @Oneproviderhelpbot w Telegramie albo otwórz „Wsparcie” w Panelu w przeglądarce, podając kod statusu HTTP i dokładny komunikat błędu. Jak działa wsparcie .
Ostatnia aktualizacja: 2026-11-08 Widzisz błąd? @Oneproviderhelpbot