Getting Started
빠른 시작
이미 OpenAI SDK를 쓰고 있다면 이전은 두 줄입니다. baseURL을 Warp 게이트웨이로 바꾸고, API 키를 sk-warp-* 키로 교체하세요. 나머지 코드는 그대로 동작합니다.
두 줄이면 끝나는 마이그레이션
Warp은 OpenAI 호환 API를 그대로 노출합니다. 요청·응답 포맷, 스트리밍, function calling까지 기존 코드와 호환되며, 게이트웨이가 중간에서 라우팅·캐싱·거버넌스를 처리합니다.
client.ts
const client = new OpenAI({
- baseURL: "https://api.openai.com/v1",
- apiKey: process.env.OPENAI_API_KEY,
+ baseURL: "https://api.warp.inc/v1", // ← Warp 게이트웨이
+ apiKey: process.env.WARP_API_KEY, // ← sk-warp-…
});첫 요청 보내기 — curl
model에 "warp/auto"를 넘기면 분류기가 프롬프트 난이도를 점수화해 가장 저렴한 적정 티어의 모델로 라우팅합니다. 특정 모델을 원하면 카탈로그 id(예: openai/gpt-5.2)를 그대로 쓰면 됩니다.
terminal
curl https://api.warp.inc/v1/chat/completions \
-H "Authorization: Bearer sk-warp-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "warp/auto",
"messages": [
{ "role": "user", "content": "PostgreSQL 인덱스를 한 문장으로 설명해줘" }
]
}'응답 본문의 warp 필드와 x-warp-* 헤더에서 어떤 모델로 라우팅됐는지, 비용과 절감액이 얼마인지 확인할 수 있습니다. 자세한 내용은 Warp 라우터 문서를 참고하세요.
Python — openai SDK
main.py
from openai import OpenAI
client = OpenAI(
base_url="https://api.warp.inc/v1", # Warp 게이트웨이
api_key="sk-warp-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
)
res = client.chat.completions.create(
model="warp/auto", # 분류기가 난이도에 맞는 티어를 결정
messages=[{"role": "user", "content": "PostgreSQL 인덱스를 한 문장으로 설명해줘"}],
)
print(res.choices[0].message.content)TypeScript — openai 패키지
main.ts
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.warp.inc/v1", // Warp 게이트웨이
apiKey: process.env.WARP_API_KEY, // sk-warp-…
});
const res = await client.chat.completions.create({
// 코딩은 "warp/code", 속도는 "warp/nitro"
model: "warp/auto",
messages: [{ role: "user", content: "PostgreSQL 인덱스를 한 문장으로 설명해줘" }],
});
console.log(res.choices[0].message.content);로컬에서 게이트웨이 실행
모노레포 루트에서 세 줄이면 게이트웨이가 뜹니다. WARP_ENABLE_MOCK=1이 기본값이라 업스트림 프로바이더 키가 하나도 없어도 내장 mock 모델(warp/mock)로 라우팅·캐싱 전체 플로우를 시연할 수 있습니다.
terminal
cp .env.example .env # WARP_ENABLE_MOCK=1 기본값 — 업스트림 키 없이 동작
pnpm install
pnpm dev:gateway # → http://localhost:8787프로바이더 키(OPENAI_API_KEY, ANTHROPIC_API_KEY 등)는 전부 선택 사항입니다 — 키가 있는 프로바이더의 어댑터만 등록됩니다.