메인 콘텐츠로 건너뛰기
ARouter는 API 요청에 user 필드를 전달하여 사용자별 사용량 추적을 지원합니다. 이를 통해 애플리케이션의 개별 사용자에게 API 비용을 귀속시키고 사용자 수준에서 사용 패턴을 모니터링할 수 있습니다.

사용자 ID 전달하기

채팅 완성 요청에 user 필드를 포함합니다:
{
  "model": "openai/gpt-5.4",
  "messages": [{"role": "user", "content": "Hello!"}],
  "user": "user_12345"
}
user 값은 시스템에서 최종 사용자를 식별하는 임의의 문자열이 될 수 있습니다 — 데이터베이스 ID, 해시된 이메일, 또는 세션 ID. ARouter는 이 값을 검증하거나 해석하지 않습니다.
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.arouter.ai/v1",
  apiKey: "lr_live_xxxx",
});

async function chatWithUser(userId: string, message: string) {
  const response = await client.chat.completions.create({
    model: "openai/gpt-5.4",
    messages: [{ role: "user", content: message }],
    user: userId,
  });
  return response.choices[0].message.content;
}

개인 정보 고려사항

user 값으로 개인 식별 정보(PII)를 전달하지 마세요. 해시된 ID나 데이터베이스 기본 키와 같은 불투명한 식별자를 사용하세요.
권장 방식:
import hashlib

# 전달하기 전에 사용자 이메일 해시 처리
user_id = hashlib.sha256(user_email.encode()).hexdigest()[:16]

# 또는 불투명한 데이터베이스 ID 사용
user_id = str(user.id)  # 예: "usr_abc123"

사용자별 사용량 보기

사용자 수준 사용량 데이터는 활동 내보내기에서 확인할 수 있습니다. 각 레코드에는 전달한 user 필드가 포함되어 다음이 가능합니다:
  • 사용자별 Token 소비 및 비용 계산
  • 용량 계획을 위한 고사용량 사용자 파악
  • 비정상적인 사용 패턴이나 남용 감지
  • 최종 사용자를 위한 사용량 기반 청구 구축

활동 내보내기 API

사용자별로 필터링하여 사용 기록 조회:
curl "https://api.arouter.ai/v1/activity?user=user_12345&limit=100" \
  -H "Authorization: Bearer lr_live_xxxx"

사용 사례

사용자별 비용 배분

각 고객을 서비스하는 데 드는 비용 추적:
// 고객 ID 전달
const response = await client.chat.completions.create({
  model: "anthropic/claude-sonnet-4.6",
  messages: conversation,
  user: `customer_${customerId}`,
});

// 나중에: 활동 내보내기를 조회하여 고객별 총 비용 확인

남용 감지

사용자별 비정상적인 사용 패턴 모니터링:
# 각 사용자에게 고유한 식별자 부여
response = client.chat.completions.create(
    model="openai/gpt-5.4",
    messages=[{"role": "user", "content": user_message}],
    user=f"app_user_{user.id}",
)

멀티 테넌트 애플리케이션

멀티 테넌트 SaaS 애플리케이션에서 조직 또는 테넌트 ID 전달:
const response = await client.chat.completions.create({
  model: "google/gemini-2.5-flash",
  messages: messages,
  user: `org_${organizationId}`,
});

참고 사항

  • user 필드는 선택 사항입니다. 이 필드가 없는 요청도 API 키의 집계 사용량으로 추적됩니다.
  • 사용자 ID는 불투명한 문자열로 저장됩니다. ARouter는 형식을 검증, 파싱 또는 해석하지 않습니다.
  • 사용자 추적 데이터는 활동 내보내기 레코드에 포함됩니다.
  • 팀 수준의 사용량 제어는 조직 관리를 참조하세요.