Celon

Getting Started

빠른 시작

이미 OpenAI SDK를 쓰고 있다면 이전은 두 줄입니다. baseURL을 Celon 게이트웨이로 바꾸고, API 키를 sk-celon-* 키로 교체하세요. 나머지 코드는 그대로 동작합니다.

두 줄이면 끝나는 마이그레이션

Celon은 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.celon.ai/v1", // ← Celon 게이트웨이
+  apiKey: process.env.CELON_API_KEY,   // ← sk-celon-…
 });

첫 요청 보내기 — curl

model"celon/auto"를 넘기면 분류기가 프롬프트 난이도를 점수화해 가장 저렴한 적정 티어의 모델로 라우팅합니다. 특정 모델을 원하면 카탈로그 id(예: openai/gpt-5.2)를 그대로 쓰면 됩니다.

terminal
curl https://api.celon.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-celon-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "celon/auto",
    "messages": [
      { "role": "user", "content": "PostgreSQL 인덱스를 한 문장으로 설명해줘" }
    ]
  }'

응답 본문의 celon 필드와 x-celon-* 헤더에서 어떤 모델로 라우팅됐는지, 비용과 절감액이 얼마인지 확인할 수 있습니다. 자세한 내용은 스마트 라우팅 문서를 참고하세요.

Python — openai SDK

main.py
from openai import OpenAI

client = OpenAI(
    base_url="https://api.celon.ai/v1",  # Celon 게이트웨이
    api_key="sk-celon-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
)

res = client.chat.completions.create(
    model="celon/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.celon.ai/v1", // Celon 게이트웨이
  apiKey: process.env.CELON_API_KEY,   // sk-celon-…
});

const res = await client.chat.completions.create({
  // 코딩은 "celon/code", 품질은 "celon/quality", 속도는 "celon/nitro", 최저가는 "celon/floor"
  model: "celon/auto",
  messages: [{ role: "user", content: "PostgreSQL 인덱스를 한 문장으로 설명해줘" }],
});

console.log(res.choices[0].message.content);

로컬에서 게이트웨이 실행

모노레포 루트에서 세 줄이면 게이트웨이가 뜹니다. CELON_ENABLE_MOCK=1이 기본값이라 업스트림 프로바이더 키가 하나도 없어도 내장 mock 모델(celon/mock)로 라우팅·캐싱 전체 플로우를 시연할 수 있습니다.

terminal
cp .env.example .env   # CELON_ENABLE_MOCK=1 기본값 — 업스트림 키 없이 동작
pnpm install
pnpm dev:gateway       # → http://localhost:8787

프로바이더 키(OPENAI_API_KEY, ANTHROPIC_API_KEY 등)는 전부 선택 사항입니다 — 키가 있는 프로바이더의 어댑터만 등록됩니다.