Używamy plików cookie. Pliki cookie i pamięć przeglądarki pozwalają utrzymać logowanie i zapamiętać Twoje preferencje. Za Twoją zgodą mierzymy też, jak korzystasz ze strony. W każdej chwili możesz . Zobacz naszą politykę cookie.

Zgodność z SDK OpenAI

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

UstawienieWartość
Bazowy URLhttps://api14.com/api/v1
Klucz APItwó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 OpenAIapi14
chat.completions.create wraz z stream, tools, response_formatObsługiwane dla każdego modelu tekstowego
responses.createObsługiwane
completions.createObsługiwane
embeddings.createObsługiwane
images.generateObsługiwane (/images/generations)
audio.speech.createObsługiwane
audio.transcriptions.createObsługiwane (multipart)
models.list / models.retrieveObsł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

  1. Ustaw bazowy URL na https://api14.com/api/v1 i użyj klucza api14.
  2. Poprzedź nazwy modeli nazwą dostawcy: gpt-5-mini zmienia się w openai/gpt-5-mini, a text-embedding-3-small w openai/text-embedding-3-small.
  3. To wszystko. Teraz możesz też przejść do dowolnego innego dostawcy, zmieniając identyfikator modelu, na przykład na anthropic/claude-sonnet-4.5 lub google/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.

  1. Zastąp obecny bazowy URL adresem https://api14.com/api/v1.
  2. Zastąp obecny klucz kluczem api14.
  3. Całą resztę zostaw bez zmian: identyfikatory modeli, warianty (:free, :online, :nitro, :floor), routing provider, fallbacki models, reasoning, plugins, transforms i usage.

Różnice, o których warto wiedzieć:

  • Rozliczenia opierają się na saldzie w USD. GET /credits zwraca total_credits i total_usage w USD oraz dodatkowe pole balance_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-Referer i X-Title ustawia 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.