Endpointy
Obrazy i pliki w wejściu
Wysyłaj do modeli obrazy, pliki PDF, dźwięk i wideo jako części treści wiadomości, z gotowymi przykładami JSON oraz opisem limitów i błędów.
Wypróbuj w playgroundModele multimodalne przyjmują obrazy, pliki PDF, dźwięk i wideo w wiadomości użytkownika. Przekaż content jako tablicę części zamiast ciągu znaków. Aby sprawdzić, co akceptuje dany model, zajrzyj do architecture.input_modalities w Modelach (image, file, audio, video).
Części treści
| Część | Kształt | Uwagi |
|---|---|---|
| Tekst | { "type": "text", "text": "..." } | |
| Obraz | { "type": "image_url", "image_url": { "url": "https://..." | "data:image/png;base64,...", "detail": "auto" } } | PNG, JPEG, WebP, GIF. Adres URL lub URL data: w base64. |
| PDF / plik | { "type": "file", "file": { "filename": "doc.pdf", "file_data": "https://..." | "data:application/pdf;base64,..." } } | Działa z każdym modelem. Modele bez natywnej obsługi plików dostają wyodrębniony tekst. |
| Dźwięk | { "type": "input_audio", "input_audio": { "data": "<base64>", "format": "wav" } } | Tylko base64. wav, mp3 i inne, zależnie od modelu. |
| Wideo | { "type": "video_url", "video_url": { "url": "https://..." } } | Obsługiwane przez niektóre modele, np. Gemini. |
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "openai/gpt-5-mini",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/3/3a/Cat03.jpg"
}
}
]
}
]
});
console.log(result.choices[0].message.content);
Przykład z obrazem
{
"model": "google/gemini-2.5-flash",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "What is in this picture?" },
{ "type": "image_url", "image_url": { "url": "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg" } }
]
}
]
}
Przykład z PDF
{
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Summarize this contract in five bullets." },
{ "type": "file", "file": { "filename": "contract.pdf", "file_data": "data:application/pdf;base64,JVBERi0xLjcK..." } }
]
}
],
"plugins": [{ "id": "file-parser", "pdf": { "engine": "pdf-text" } }]
}
Opcjonalna wtyczka file-parser wybiera sposób odczytu pliku PDF: pdf-text (bezpłatne wyodrębnianie tekstu), mistral-ocr (OCR dla skanów, rozliczany za stronę) lub native (model sam czyta plik). Koszt przetwarzania jest częścią usage.cost.
Odpowiedź
Odpowiedź to zwykłe chat completion. Obrazy, pliki i dźwięk na wejściu liczą się jako tokeny wejściowe, a ich koszt jest w usage.cost:
{
"choices": [{ "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "A close-up of an ant on a leaf." } }],
"usage": { "prompt_tokens": 1290, "completion_tokens": 12, "total_tokens": 1302, "cost": 0.000417 }
}
Limity i błędy
- Ciało żądania może mieć najwyżej 25 MB. Base64 powiększa pliki o około 33%. Większe żądania zwracają
413 payload_too_large. Dla dużych obrazów używaj publicznych adresów URL. - Model, który nie akceptuje danego typu wejścia, zwraca błąd
400lub404od dostawcy. - Pozostałe błędy są takie same jak w Chat completions. Zobacz Błędy.