はじめに
OpenAI SDK 互換性
公式 OpenAI SDK を、ベース URL と API キーの 2 つを変えるだけで api14 に向ける方法です。互換性のある機能、OpenAI や他の互換 API からの移行手順、ゲートウェイ独自パラメーターの渡し方を説明します。コードの変更は不要です。
api14 は OpenAI API に対応しています。公式の OpenAI SDK と、カスタムの OpenAI ベース URL を受け付けるツールは、コードを変更せずに動作します。変更するのはベース URL と API キーだけです。
変更する 2 つの値
| 設定 | 値 |
|---|---|
| ベース URL | https://api14.com/api/v1 |
| API キー | 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"])
多くの SDK は OPENAI_BASE_URL と OPENAI_API_KEY の環境変数も読み取るため、コードに触れずに切り替えることもできます。
互換性のある機能
| OpenAI の機能 | api14 |
|---|---|
stream、tools、response_format を含む chat.completions.create | すべてのテキストモデルで対応 |
responses.create | 対応 |
completions.create | 対応 |
embeddings.create | 対応 |
images.generate | 対応(/images/generations) |
audio.speech.create | 対応 |
audio.transcriptions.create | 対応(multipart) |
models.list / models.retrieve | 対応。価格とカテゴリ付き |
エラー形式 { error: { message, type, code } } | 同じ。SDK は通常の APIError を発生させます |
OpenAI にしかないエンドポイント(Assistants、Threads、ファインチューニング、ファイル、バッチ、ベクトルストア、モデレーション)は利用できません。
OpenAI からの移行
- ベース URL を
https://api14.com/api/v1に設定し、api14 のキーを使います。 - モデル名にプロバイダーを付けます。
gpt-5-miniはopenai/gpt-5-mini、text-embedding-3-smallはopenai/text-embedding-3-smallになります。 - これだけです。モデル ID を変えるだけで、
anthropic/claude-sonnet-4.5や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);
他の OpenAI 互換 API からの移行
ベース URL とキーを変更します。
- ベース URL を
https://api14.com/api/v1に設定します。 - API キーとして api14 のキーを使います。
provider/model形式のモデル ID(たとえばopenai/gpt-5-mini)を使います。バリアント(:free、:online、:nitro、:floor)、providerルーティング、modelsフォールバック、reasoning、plugins、transforms、usageに対応しています。
知っておくべき違いは次のとおりです。
- 課金は USD 残高です。
GET /creditsは USD のtotal_creditsとtotal_usage、およびbalance_usdフィールドを返します。残高とキー情報を参照してください。 - 利用料金は常に含まれます。 ゲートウェイは常に上流へ
usage.costを要求するため、すべてのレスポンスに価格が含まれます。 HTTP-RefererやX-Titleなどのヘッダーはゲートウェイが設定するため、送信する必要はありません。- 動画のジョブ URL は、上流ではなく常に api14 を指します(
/api/v1/videos/{id})。動画を参照してください。
SDK でゲートウェイ独自のパラメーターを使う
OpenAI SDK が認識しないフィールドも送信できます。
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"}},
)
プロバイダールーティングとフォールバック、推論、Web 検索を参照してください。