ARouter는 주요 LLM 공급자를 위한 단일 API key와 단일 엔드포인트를 제공합니다. 이미 OpenAI 호환 클라이언트를 사용하고 있다면, 마이그레이션은 보통 base_url, api_key, 그리고 선택적으로 앱 귀속 헤더만 변경하면 됩니다.
1. API Key 받기
ARouter 대시보드에서 가입하고 API key를 생성합니다.
key는 lr_live_xxxxxxxxxxxx 형식입니다.
2. ARouter SDK 설치
공식 @arouter/sdk는 모든 Node.js 또는 TypeScript 프로젝트에서 작동하며 npm, yarn, pnpm을 지원합니다.
import { ARouter } from "@arouter/sdk";
const client = new ARouter({
apiKey: "lr_live_xxxx",
baseURL: "https://api.arouter.ai",
});
const response = await client.chatCompletion({
model: "openai/gpt-5.4",
messages: [{ role: "user", content: "안녕하세요!" }],
});
console.log(response.choices[0].message.content);
스트리밍, key 관리, x402 결제 예시는 Node.js / TypeScript SDK 가이드를 참고하세요.
3. 기존 SDK 사용하기
이미 OpenAI, Anthropic, 또는 Go를 사용하고 있나요? base_url과 api_key만 변경하면 됩니다.
Python (OpenAI)
Node.js (OpenAI)
Python (Anthropic)
Go
cURL
fetch
from openai import OpenAI
client = OpenAI(
base_url="https://api.arouter.ai/v1",
api_key="lr_live_xxxx",
default_headers={
"HTTP-Referer": "https://myapp.com", # 선택사항
"X-Title": "My AI App", # 선택사항
},
)
response = client.chat.completions.create(
model="openai/gpt-5.4",
messages=[{"role": "user", "content": "안녕하세요!"}],
)
print(response.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.arouter.ai/v1",
apiKey: "lr_live_xxxx",
defaultHeaders: {
"HTTP-Referer": "https://myapp.com", // 선택사항
"X-Title": "My AI App", // 선택사항
},
});
const response = await client.chat.completions.create({
model: "openai/gpt-5.4",
messages: [{ role: "user", content: "안녕하세요!" }],
});
console.log(response.choices[0].message.content);
import anthropic
client = anthropic.Anthropic(
base_url="https://api.arouter.ai",
api_key="lr_live_xxxx",
)
message = client.messages.create(
model="claude-sonnet-4.6",
max_tokens=1024,
messages=[{"role": "user", "content": "안녕하세요!"}],
)
print(message.content[0].text)
package main
import (
"context"
"fmt"
"log"
"github.com/arouter-ai/arouter-go"
)
func main() {
client := arouter.NewClient("lr_live_xxxx",
arouter.WithBaseURL("https://api.arouter.ai/v1"),
arouter.WithHeader("HTTP-Referer", "https://myapp.com"),
arouter.WithHeader("X-Title", "My AI App"),
)
resp, err := client.CreateChatCompletion(context.Background(), arouter.ChatCompletionRequest{
Model: "openai/gpt-5.4",
Messages: []arouter.Message{
{Role: "user", Content: "안녕하세요!"},
},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(resp.Choices[0].Message.Content)
}
curl https://api.arouter.ai/v1/chat/completions \
-H "Authorization: Bearer lr_live_xxxx" \
-H "HTTP-Referer: https://myapp.com" \
-H "X-Title: My AI App" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.4",
"messages": [{"role": "user", "content": "안녕하세요!"}]
}'
const response = await fetch('https://api.arouter.ai/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': 'Bearer lr_live_xxxx',
'Content-Type': 'application/json',
'HTTP-Referer': 'https://myapp.com', // 선택사항: 소스 추적
'X-Title': 'My AI App', // 선택사항: 표시 이름
},
body: JSON.stringify({
model: 'openai/gpt-5.4',
messages: [{ role: 'user', content: '안녕하세요!' }],
}),
});
const data = await response.json();
console.log(data.choices[0].message.content);
HTTP-Referer와 X-Title은 선택사항입니다. ARouter 대시보드 분석에서 요청을 특정 앱이나 워크플로우에 귀속시키려면 이 헤더들을 포함하세요.
4. API 직접 호출하기
SDK를 설치하고 싶지 않다면 어떤 HTTP 클라이언트로든 ARouter를 호출할 수 있습니다:
import json
import requests
response = requests.post(
"https://api.arouter.ai/v1/chat/completions",
headers={
"Authorization": "Bearer lr_live_xxxx",
"HTTP-Referer": "https://myapp.com", # 선택사항
"X-Title": "My AI App", # 선택사항
"Content-Type": "application/json",
},
data=json.dumps({
"model": "openai/gpt-5.4",
"messages": [{"role": "user", "content": "안녕하세요!"}],
}),
)
print(response.json()["choices"][0]["message"]["content"])
5. 다양한 공급자 사용해보기
ARouter에서는 model 문자열만 변경하면 공급자를 전환할 수 있습니다:
# OpenAI
response = client.chat.completions.create(model="openai/gpt-5.4", ...)
# Anthropic (OpenAI SDK를 통해!)
response = client.chat.completions.create(model="anthropic/claude-sonnet-4.6", ...)
# Google Gemini
response = client.chat.completions.create(model="google/gemini-2.5-flash", ...)
# DeepSeek
response = client.chat.completions.create(model="deepseek/deepseek-v3.2", ...)
공급자 접두사를 생략하면 (예: "gpt-5.4"만 사용), ARouter는 기본적으로 OpenAI를 사용합니다.
다음 단계
모델 라우팅
provider/model 형식과 멀티모델 라우팅 이해하기
결제 및 크레딧
가격, 잔액, 크레딧 규칙 확인하기
요청 귀속
대시보드 분석에서 트래픽을 앱에 귀속시키기
구조화된 출력
모델이 유효한 JSON 스키마를 반환하도록 강제하기
프롬프트 캐싱
반복 프롬프트의 비용과 지연 시간 줄이기
Key 관리
팀을 위한 범위 지정 key 생성하기