시작하기
OpenAI SDK 호환성
기존 OpenAI SDK 코드에서 기본 URL과 API 키 두 값만 바꿔 api14로 옮기는 방법입니다. OpenAI 및 다른 호환 API에서의 이전 절차, 호환 기능, SDK의 추가 파라미터 전달을 다룹니다. 언어별 설정 예시를 곁들였습니다.
api14는 OpenAI API를 그대로 지원합니다. 공식 OpenAI SDK는 물론, 사용자 지정 OpenAI 베이스 URL을 받는 도구라면 코드를 바꾸지 않고 동작합니다. 베이스 URL과 API 키만 바꾸면 됩니다.
바꿔야 할 두 가지 값
| 설정 | 값 |
|---|---|
| 베이스 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 |
|---|---|
chat.completions.create(stream, tools, response_format 포함) | 모든 텍스트 모델에서 지원 |
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을
https://api14.com/api/v1로 바꿉니다. - API 키를 api14 키로 바꿉니다.
- 모델 ID는
provider/model형식(예:openai/gpt-5-mini)으로 지정합니다. 변형(:free,:online,:nitro,:floor),provider라우팅,models폴백,reasoning,plugins,transforms,usage도 사용할 수 있습니다.
알아 두어야 할 차이점:
- 결제는 USD 잔액으로 이루어집니다.
GET /credits는total_credits와total_usage(모두 USD)에 더해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"}},
)
제공업체 라우팅 및 폴백, 추론, 웹 검색을 참고하세요.