콘텐츠로 이동

채팅 (claude·gpt 티어) — 프런티어 LLM

claude·gpt 티어는 게이트웨이 뒤에서 Claude·GPT 계열 프런티어 채팅 모델OpenAI 호환 인터페이스로 노출합니다. infer(로컬 LLM)와 동일하게 베이스 URL만 바꾸면 기존 OpenAI 클라이언트·SDK를 그대로 사용할 수 있습니다.

어느 계열을 쓸지는 엔드포인트 경로로 고릅니다 — 요청 바디의 model 필드가 아니라 경로 접두사가 백엔드 티어를 결정합니다.

티어경로 접두사계열
claude/v1/claude/Claude(Anthropic) 계열 채팅 모델
gpt/v1/gpt/GPT(OpenAI) 계열 채팅 모델

두 티어 모두 게이트웨이의 엔드포인트 경로 규칙을 따릅니다 — 접두사 뒤 경로가 백엔드로 그대로 전달됩니다. 따라서 OpenAI의 /v1/chat/completions는 각각 다음 경로로 노출됩니다:

POST https://api.danny22.com/v1/claude/v1/chat/completions
POST https://api.danny22.com/v1/gpt/v1/chat/completions

모든 요청은 인증이 필요합니다(Authorization: Bearer <token>). 서버-대-서버·스크립트 호출에는 ak_ API 키를 권장합니다.

model선택입니다. 티어(계열)는 위 경로가 이미 고정하므로, model로 다른 티어를 호출할 수는 없습니다 — GPT 계열을 쓰려면 /v1/gpt/로, Claude 계열을 쓰려면 /v1/claude/로 보내세요.

  • claude 티어: sonnet·opus·haiku 또는 claude-3-5-sonnet 같은 이름을 넣으면 해당 계열 내에서 정규화됩니다. 생략하면 티어 기본값이 쓰입니다.
  • gpt 티어: gpt-4o·gpt-4o-mini·o1·o3 같은 이름을 사용합니다.

매핑에 없는 model 문자열도 거부하지 않고 그대로 통과시킵니다(엄격 검증은 진짜 malformed 요청에만 적용). 경로와 다른 계열의 model 이름을 넣어도 티어는 경로대로 유지됩니다.

OpenAI Chat Completions와 동일한 요청/응답 스키마입니다.

요청 예시 (claude 티어)

Terminal window
curl -s https://api.danny22.com/v1/claude/v1/chat/completions \
-H "Authorization: Bearer $DANNY22_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sonnet",
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "한 문장으로 인사해줘." }
]
}'

요청 예시 (gpt 티어)

Terminal window
curl -s https://api.danny22.com/v1/gpt/v1/chat/completions \
-H "Authorization: Bearer $DANNY22_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{ "role": "user", "content": "한 문장으로 인사해줘." }]
}'

응답 예시

{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "sonnet",
"choices": [
{
"index": 0,
"finish_reason": "stop",
"message": { "role": "assistant", "content": "안녕하세요! 만나서 반갑습니다." }
}
]
}

"stream": true를 주면 응답이 Server-Sent Events(SSE)로 토큰 단위 스트리밍됩니다. 각 이벤트의 choices[].delta.content를 이어 붙여 출력을 구성하고, 종료는 data: [DONE] 라인으로 표시됩니다.

Terminal window
curl -N -s https://api.danny22.com/v1/gpt/v1/chat/completions \
-H "Authorization: Bearer $DANNY22_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{ "role": "user", "content": "긴 이야기를 들려줘." }],
"stream": true
}'

OpenAI 호환이므로 공식 SDK의 베이스 URL을 원하는 티어의 .../v1/<tier>/v1로, API 키를 발급받은 ak_ 키로 설정하면 그대로 동작합니다.

from openai import OpenAI
client = OpenAI(
base_url="https://api.danny22.com/v1/claude/v1", # gpt 티어면 .../v1/gpt/v1
api_key="ak_xxxxxxxx.yyyyyyyyyyyyyyyy", # platform 콘솔에서 발급
)
resp = client.chat.completions.create(
model="sonnet",
messages=[{"role": "user", "content": "안녕!"}],
)
print(resp.choices[0].message.content)

SDK는 베이스 URL 뒤에 /chat/completions를 이어 붙입니다. 따라서 베이스 URL을 .../v1/<tier>/v1까지로 지정해야 최종 경로가 .../v1/<tier>/v1/chat/completions로 맞습니다.

  • 이 API는 비상업·신뢰소수 목적으로 운영됩니다(개요의 거버넌스 참고) — 종량제 과금이나 공개 가입형 키 판매는 제공하지 않습니다.
  • 프런티어 티어는 동시 처리량이 보수적으로 제한됩니다(계정 단위 레이트리밋 보호) — 대량 팬아웃은 지원하지 않으며, 대기열 초과 시 429 rate_limited가 반환됩니다. 잠시 후 재시도하세요.
  • 게이트웨이 뒤 백엔드에 일시적으로 도달할 수 없으면 502 bad_gateway가 반환됩니다. 자세한 코드는 에러를 참고하세요.