빠른 시작
Kiln은 OpenAI 호환 API입니다. 계정을 만들고, API 키를 발급하고, OpenAI 클라이언트의 base_url을 Kiln 엔드포인트로 바꾸는 세 단계면 qwen3-32b의 응답을 받을 수 있습니다.
1. 가입
가입 페이지에서 이메일 주소 또는 GitHub·Google·Naver 계정으로 가입합니다. 개인 조직이 자동으로 만들어지며, 키·사용량·크레딧은 모두 이 조직에 속합니다.
- 이메일 주소를 인증하세요. 체험 크레딧은 인증 후 한 번만 지급되며 30일 뒤 만료됩니다. 금액과 잔액은 콘솔의 크레딧 페이지에서 확인할 수 있습니다.
- 오픈 베타 기간에는 운영팀이 계정을 승인해야 콘솔이 열릴 수 있습니다. 대기 페이지에 두 가지 확인 상태가 표시되고 자동으로 새로고침됩니다.
2. API 키 발급
콘솔 → API 키에서 조직 관리자가 프로젝트에 키를 발급합니다. 키는 sk-bk-로 시작하며, 전체 값은 발급할 때 한 번만 표시되므로 그때 복사해 두세요. 이메일 인증과 계정 승인이 끝나기 전에는 키를 발급할 수 없습니다.
팁
API 키는 비밀로 관리하세요. 소스 저장소에 커밋하거나 클라이언트 코드에 포함하지 마세요. 환경 변수(예:
KILN_API_KEY)에서 읽고, 노출되면 즉시 교체하세요.3. 첫 요청 보내기
OpenAI 호환 클라이언트라면 무엇이든 동작합니다. 공식 OpenAI SDK가 가장 빠릅니다.
bash
pip install openaibash
npm install openai클라이언트의 base_url을 https://api.bricksum.com/v1으로 설정합니다. 바꿀 것은 이 한 줄뿐이며, 나머지는 OpenAI API와 동일하게 동작합니다. 일부 파라미터는 아직 지원하지 않습니다. API 레퍼런스의 '알려진 제한'을 참고하세요.
base_url
base_url = "https://api.bricksum.com/v1"chat/completions 요청을 보냅니다. 응답 형식은 과금에 쓰이는 usage 필드까지 OpenAI API와 동일합니다.
bash
curl https://api.bricksum.com/v1/chat/completions \
-H "Authorization: Bearer sk-bk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-32b",
"messages": [
{"role": "user", "content": "Hello!"}
]
}'python
from openai import OpenAI
client = OpenAI(
base_url="https://api.bricksum.com/v1",
api_key="sk-bk-...", # your Kiln API key
)
resp = client.chat.completions.create(
model="qwen3-32b",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)javascript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.bricksum.com/v1",
apiKey: process.env.KILN_API_KEY, // sk-bk-...
});
const resp = await client.chat.completions.create({
model: "qwen3-32b",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(resp.choices[0].message.content);스트리밍
stream을 true로 설정하면 생성되는 토큰을 SSE(server-sent events)로 실시간 수신합니다.
bash
curl https://api.bricksum.com/v1/chat/completions \
-H "Authorization: Bearer sk-bk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-32b",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": true
}'python
from openai import OpenAI
client = OpenAI(
base_url="https://api.bricksum.com/v1",
api_key="sk-bk-...",
)
stream = client.chat.completions.create(
model="qwen3-32b",
messages=[{"role": "user", "content": "Hello!"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")javascript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.bricksum.com/v1",
apiKey: process.env.KILN_API_KEY,
});
const stream = await client.chat.completions.create({
model: "qwen3-32b",
messages: [{ role: "user", content: "Hello!" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0].delta.content ?? "");
}다음 단계
- 모델 카탈로그 — 모든 서빙 모델의 현재 가격, 최근 24시간 실측 처리량, 90일 가동률을 확인하고, 고른 모델 ID를 요청의 model 필드에 넣으세요
- API 레퍼런스 — 지원 엔드포인트·요청 필드·알려진 제한
- 에러 — 401(키 에러)·402(크레딧 소진)·429(레이트 리밋)의 의미와 재시도 방법
- 레이트 리밋 — 레이트 리밋(기본 60 RPM)과 재시도 가이드
- 콘솔 → 도구 연결 — Claude Code·Codex CLI·OpenCode·Cursor를 한 번에 연결