Pierwsze kroki
Zgodność z SDK OpenAI
Używaj oficjalnych SDK OpenAI bez zmian i przejdź z OpenAI lub innego API zgodnego z OpenAI, zmieniając tylko dwie wartości w konfiguracji.
api14 mówi językiem API OpenAI. Każde oficjalne SDK OpenAI i każde narzędzie, które pozwala ustawić własny bazowy URL OpenAI, działa bez zmian w kodzie, zmieniasz tylko bazowy URL i klucz API.
Dwie wartości do zmiany
| Ustawienie | Wartość |
|---|---|
| Bazowy URL | https://api14.com/api/v1 |
| Klucz API | twój klucz sk-api14-... |
import OpenAI from 'openai'
const client = new OpenAI({
baseURL: 'https://api14.com/api/v1',
apiKey: process.env.API14_API_KEY,
})
import os
from openai import OpenAI
client = OpenAI(base_url="https://api14.com/api/v1", api_key=os.environ["API14_API_KEY"])
Wiele SDK odczytuje też zmienne środowiskowe OPENAI_BASE_URL i OPENAI_API_KEY, więc możesz się przełączyć, w ogóle nie dotykając kodu.
Co jest zgodne
| Funkcja OpenAI | api14 |
|---|---|
chat.completions.create wraz z stream, tools, response_format | Obsługiwane dla każdego modelu tekstowego |
responses.create | Obsługiwane |
completions.create | Obsługiwane |
embeddings.create | Obsługiwane |
images.generate | Obsługiwane (/images/generations) |
audio.speech.create | Obsługiwane |
audio.transcriptions.create | Obsługiwane (multipart) |
models.list / models.retrieve | Obsługiwane, z cenami i kategoriami |
Struktura błędu { error: { message, type, code } } | Taka sama, SDK zgłaszają swój zwykły APIError |
Endpointy, które istnieją tylko w OpenAI (Assistants, Threads, fine-tuning, files, batches, vector stores i moderations) nie są dostępne.
Przejście z OpenAI
- Ustaw bazowy URL na
https://api14.com/api/v1i użyj klucza api14. - Poprzedź nazwy modeli nazwą dostawcy:
gpt-5-minizmienia się wopenai/gpt-5-mini, atext-embedding-3-smallwopenai/text-embedding-3-small. - To wszystko. Teraz możesz też przejść do dowolnego innego dostawcy, zmieniając identyfikator modelu, na przykład na
anthropic/claude-sonnet-4.5lubgoogle/gemini-2.5-pro.
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": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
Przejście z innego API zgodnego z OpenAI
Jeśli korzystasz już z innego API zgodnego z OpenAI z identyfikatorami modeli w formacie provider/model, wystarczy zmienić bazowy URL i klucz.
- Zastąp obecny bazowy URL adresem
https://api14.com/api/v1. - Zastąp obecny klucz kluczem api14.
- Całą resztę zostaw bez zmian: identyfikatory modeli, warianty (
:free,:online,:nitro,:floor), routingprovider, fallbackimodels,reasoning,plugins,transformsiusage.
Różnice, o których warto wiedzieć:
- Rozliczenia opierają się na saldzie w USD.
GET /creditszwracatotal_creditsitotal_usagew USD oraz dodatkowe polebalance_usd. Zobacz Saldo i informacje o kluczu. - Koszt użycia jest zawsze podawany. Bramka zawsze prosi upstream o
usage.cost, więc każda odpowiedź zawiera swoją cenę. - Nagłówki takie jak
HTTP-RefereriX-Titleustawia bramka; nie musisz ich wysyłać. - Adresy URL zadań wideo wskazują z powrotem na api14 (
/api/v1/videos/{id}), nigdy na upstream. Zobacz Wideo.
Dodatkowe parametry w SDK
Pola, których SDK OpenAI nie zna, i tak można wysłać:
await client.chat.completions.create({
model: 'openai/gpt-5-mini',
messages: [{ role: 'user', content: 'Hi' }],
// @ts-expect-error api14 extension
provider: { sort: 'price' },
})
client.chat.completions.create(
model="openai/gpt-5-mini",
messages=[{"role": "user", "content": "Hi"}],
extra_body={"provider": {"sort": "price"}},
)
Zobacz Routing dostawców i fallbacki, Reasoning i Wyszukiwanie w sieci.