Skip to main content

SDK 마이그레이션 가이드

기존에 사용하던 SDK를 K-Router로 전환하는 방법을 안내합니다. 모델 이름만 kr/ 네임스페이스로 변경하고, 엔드포인트를 K-Router로 지정하면 나머지 코드는 그대로 동작합니다. 스트리밍, 멀티턴 대화, 함수 호출, temperature 등 모든 기능이 동일하게 지원됩니다.

OpenAI SDK 사용자

api_keybase_url 2줄만 변경합니다.
from openai import OpenAI

# Before
# client = OpenAI(api_key="sk-...")

# After
client = OpenAI(
    api_key="kr-your-api-key",
    base_url="https://api.k-router.com/v1"
)

# 나머지 코드는 완전히 동일합니다
response = client.chat.completions.create(
    model="kr/gpt54",
    messages=[
        {"role": "system", "content": "당신은 도움이 되는 어시스턴트입니다."},
        {"role": "user", "content": "안녕하세요"}
    ],
    temperature=0.7,
    max_tokens=1000
)
print(response.choices[0].message.content)

환경 변수로 전환

기존에 OPENAI_API_KEY 환경 변수를 사용하고 있다면:
# .env 파일
OPENAI_API_KEY=kr-your-api-key
OPENAI_BASE_URL=https://api.k-router.com/v1
코드 변경 없이 환경 변수만 바꿔도 전환됩니다.

Anthropic SDK 사용자

api_keybase_url 2줄만 변경합니다.
중요: Anthropic SDK는 base_url/v1을 붙이지 마세요. SDK가 자동으로 /v1/messages 경로를 추가합니다.
from anthropic import Anthropic

# Before
# client = Anthropic(api_key="sk-ant-...")

# After
client = Anthropic(
    api_key="kr-your-api-key",
    base_url="https://api.k-router.com"  # /v1 없이!
)

# 나머지 코드는 완전히 동일합니다
response = client.messages.create(
    model="kr/claude-sonnet-46",
    max_tokens=1024,
    system="당신은 도움이 되는 어시스턴트입니다.",
    messages=[{"role": "user", "content": "안녕하세요"}]
)
print(response.content[0].text)

Anthropic 스트리밍

# 스트리밍도 그대로 동작합니다
with client.messages.stream(
    model="kr/claude-sonnet-46",
    max_tokens=1024,
    messages=[{"role": "user", "content": "안녕하세요"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

환경 변수로 전환

# .env 파일
ANTHROPIC_API_KEY=kr-your-api-key
ANTHROPIC_BASE_URL=https://api.k-router.com

Google SDK 사용자

방법 1: OpenAI SDK로 전환 (권장)

pip install openai 후 OpenAI SDK를 사용하면 가장 간단합니다. 같은 Gemini 모델을 동일하게 사용할 수 있습니다.
# Before (Google SDK)
from google import genai
client = genai.Client(api_key="AIza...")
response = client.models.generate_content(
    model="gemini-2.5-pro",
    contents="안녕하세요"
)
print(response.text)

# After (OpenAI SDK — 같은 Gemini 모델)
from openai import OpenAI
client = OpenAI(
    api_key="kr-your-api-key",
    base_url="https://api.k-router.com/v1"
)
response = client.chat.completions.create(
    model="kr/gemini-25-pro",
    messages=[{"role": "user", "content": "안녕하세요"}]
)
print(response.choices[0].message.content)

방법 2: Google 네이티브 SDK 유지

Google genai 라이브러리의 base_url을 커스텀하여 네이티브 SDK를 그대로 사용할 수도 있습니다.
from google import genai

client = genai.Client(
    api_key="kr-your-api-key",
    http_options=genai.types.HttpOptions(
        api_version="v1beta",
        base_url="https://api.k-router.com"
    )
)

response = client.models.generate_content(
    model="kr/gemini-25-pro",
    contents="안녕하세요"
)
print(response.text)
OpenAI SDK는 업계 표준으로 자리잡았으며, K-Router의 모든 모델(OpenAI, Anthropic, Google)을 하나의 SDK로 호출할 수 있어 가장 간편합니다. 특별한 이유가 없다면 방법 1을 권장합니다.

공통 사항

모델 이름 규칙

모든 모델은 kr/ 접두사를 사용합니다. 원본 모델 이름과의 매핑은 모델 페이지를 참고하세요.
원본K-Router
gpt-5.4kr/gpt54
claude-sonnet-4.6kr/claude-sonnet-46
gemini-2.5-prokr/gemini-25-pro

모든 기능이 그대로 동작합니다

  • 스트리밍stream: true 또는 .stream() 메서드
  • 멀티턴 대화 — messages 배열에 대화 기록 추가
  • 시스템 프롬프트system role 또는 Anthropic system 파라미터
  • 함수 호출 / Tool Use — OpenAI function calling, Anthropic tool use 모두 지원
  • Temperature, top_p, max_tokens — 모든 생성 파라미터 지원