Skip to Content
AI Gateway시작하기

AI Gateway 시작하기

AI Gateway에서는 여러 AI 공급사의 모델을 하나의 API 키로 호출합니다. 키 발급, 비용 한도, 사용량을 한 자리에서 관리하므로, 공급사마다 따로 키를 관리하거나 비용을 합산하지 않아도 됩니다.

등장 배경

AI 기능을 붙이다 보면 OpenAI, Anthropic, Google처럼 공급사가 늘어납니다. 공급사마다 키를 따로 발급받고, 한도를 따로 관리하고, 청구서를 따로 합산해야 합니다. 모델을 바꾸거나 도구를 추가할 때마다 같은 작업을 반복합니다.

AI Gateway는 이 관리 지점을 하나로 모읍니다. Gateway에서 키를 발급하고 한도를 적용하고 비용은 응답마다 바로 확인할 수 있습니다. 새 공급사나 새 모델, 새 외부 도구가 들어와도 Gateway를 통해 바로 적용할 수 있습니다.

핵심 개념

단어의미
Gateway 키사용자가 발급하는 인증 키입니다. 모든 API 호출에 사용합니다.
에셋Gateway가 공급하는 AI 자원 단위입니다. 모델은 에셋의 하위입니다.
한도키별·멤버별·프로젝트별·Space 전체의 비용 상한입니다. 초과하면 자동으로 차단합니다.
사용량키별·모델별로 누적됩니다.

자세한 내용은 한도 개요에러 코드를 참고합니다.

Base URL과 엔드포인트

API 요청 주소는 base URL엔드포인트 경로 두 부분으로 나뉩니다. base URL은 요청을 어디로 보낼지를, 엔드포인트 경로는 무엇을 할지(채팅·임베딩·이미지 같은 작업 종류)를 정합니다. 둘을 이으면 실제로 요청이 가는 전체 주소가 됩니다.

구성예시역할
base URLhttps://gw.letsur.ai/v1요청을 보낼 서버 주소입니다. SDK나 도구 설정에서 이 값만 Gateway 주소로 바꾸면 됩니다.
엔드포인트 경로/chat/completions수행할 작업 종류입니다. 작업마다 경로가 다릅니다.
전체 요청 주소https://gw.letsur.ai/v1/chat/completionsbase URL과 엔드포인트 경로를 이은 실제 호출 주소입니다.

엔드포인트 경로는 보통 SDK가 알아서 붙입니다. 그래서 직접 바꾸는 값은 base URL 하나뿐입니다. 예를 들어 기존 OpenAI SDK는 https://api.openai.com/v1로 요청을 보내는데, 이 base URL만 https://gw.letsur.ai/v1로 바꾸면 같은 코드가 Gateway를 거칩니다. 인증·한도·사용량 집계는 Gateway가 대신 처리합니다.

Gateway는 채팅 외에도 여러 작업을 엔드포인트로 제공합니다. 자주 쓰는 경로는 다음과 같습니다.

하고 싶은 일엔드포인트 경로
대화·텍스트 생성/v1/chat/completions
임베딩 (검색·RAG)/v1/embeddings
사용 가능한 모델 조회/v1/models
Anthropic 네이티브 (Claude Code 등)/v1/messages

전체 목록과 엔드포인트별 응답 형식은 지원 엔드포인트에서 확인합니다.

OpenAI 호환

OpenAI 호환 경로는 요청·응답 형식이 OpenAI API와 같은 스키마를 따릅니다. 그래서 기존 OpenAI SDK나 외부 도구에서 위 base URL과 키만 바꾸면 대부분의 모델이 그대로 동작합니다. 일부 모델은 공급사 라우트에 따라 동작이 달라지니 에셋 카탈로그의 라우팅 갭을 참고합니다.

다음 코드는 OpenAI SDK에서 두 줄만 바꾼 예시입니다.

from openai import OpenAI # 변경하는 것은 두 줄뿐 client = OpenAI( api_key="<API_KEY>", base_url="https://gw.letsur.ai/v1", )

지원하는 엔드포인트는 지원 엔드포인트에서 확인합니다.

Gateway 활성화 (Admin)

Admin은 토글을 켜서 Space에 AI Gateway를 활성화합니다.

준비물

  • 본인이 Space의 Admin 권한을 가진 계정 (역할)
  • AI Gateway 개요를 한 번 본 상태 (위 Gateway 개요)

활성화는 Space당 한 번만 합니다. 한 번 켜면 Space 멤버 전원에게 Gateway가 보입니다.

Space 설정에서 서비스로 이동

왼쪽 메뉴 상단의 Space 이름을 누르거나, 화면 우상단 본인 이름 메뉴에서 Space 설정으로 이동합니다. 서비스 탭을 선택하면 Space에 올릴 수 있는 서비스 목록이 보입니다. 목록에서 AI Gateway 행을 찾습니다.

AI Gateway 토글 ON

  1. AI Gateway 행의 토글 스위치를 ON으로 전환합니다.
  2. 확인 모달에서 활성화를 누릅니다.

토글이 ON으로 바뀌는 즉시 다음이 자동으로 적용됩니다.

적용 항목동작
멤버 역할 동기화플랫폼 Admin은 Gateway Admin으로, 플랫폼 Member는 Gateway Member로 연결됩니다 (역할 상속)
기본 한도 정책Service / Member / Key 한도 모두 미설정 상태, 즉 무제한으로 시작합니다 (한도 개요)
키 발급 정책멤버가 자기 키를 직접 발급합니다. Admin 승인은 필요하지 않습니다

토글이 ON으로 바뀌고 왼쪽 메뉴에 AI Gateway 항목이 나타나면 성공입니다.

기본 설정 확인

왼쪽 메뉴에서 AI Gateway로 이동해 네 가지 탭을 확인합니다.

  1. 키 탭 — 빈 키 목록이 보입니다. 아직 키를 발급한 멤버가 없는 상태입니다.
  2. 카탈로그 탭 — 사용할 수 있는 모델 목록이 보입니다.
  3. 사용량 탭 — 0이 표시된 빈 대시보드가 보입니다.
  4. 한도 탭 — 모든 한도가 미설정 상태입니다.

빈 키 목록과 에셋 카탈로그가 보이면 활성화가 정상으로 끝난 것입니다.

한도를 비워 두면 무제한으로 동작하므로, 사용량이 폭주해도 막을 1차 방어선이 없습니다. 외부 MVP나 AX 파트너즈 대행을 시작하기 전이라면 Service Limit과 멤버별 Member Limit을 합의된 월 예산으로 먼저 설정합니다.

Space의 Admin과 Member 모두가 AI Gateway에 진입할 수 있는 상태입니다.

멤버에게 알리기

활성화 직후 왼쪽 메뉴에 AI Gateway가 멤버 전원에게 자동으로 나타납니다. 별도 안내 메일은 보내지 않습니다.

멤버에게 안내할 때 다음을 함께 전달합니다.

  • 본인 키 발급 위치 (왼쪽 메뉴 → AI Gateway → 키 탭)
  • 키별 한도와 한도 초과 시 동작 (한도를 설정한 경우)
  • 외부 도구(Claude Code 등) 연동이 가능하다는 점 (Integrations)

활성화 이후 다음 작업은 목적에 따라 갈라집니다.

자주 막히는 곳

증상원인 / 해결
토글이 안 보입니다본인이 Admin이 아닌 경우입니다. 다른 Admin에게 요청합니다
토글을 눌렀는데 왼쪽에 AI Gateway가 안 나타납니다페이지를 새로고침하고, 그래도 없으면 1분 후 다시 시도합니다. 반영까지 1분 넘게 걸리면 customer.service@letsur.ai로 문의합니다
Member 중 일부가 Gateway에 못 들어갑니다역할이 아직 동기화되지 않은 상태입니다. 해당 Member에게 로그아웃 후 다시 로그인하도록 안내합니다. 그래도 막히면 Gateway 멤버 관리에서 역할 상태를 확인합니다

비활성화와 재활성화

같은 토글을 OFF로 전환하면 비활성화됩니다. 비활성화하면 다음과 같이 동작합니다.

  • Space 멤버 전원에게 왼쪽 메뉴의 AI Gateway 항목이 즉시 사라집니다.
  • 활성 키들은 사용 불가 상태가 되어 모든 호출이 거부됩니다.

비활성화는 운영 중단을 뜻합니다. 멤버가 외부 도구에 키를 연결해 둔 상태라면 모든 호출이 즉시 막히므로, 사전 안내 없이 끄지 않습니다.

재활성화하려면 토글을 다시 ON으로 켭니다. 보존된 키들이 다시 사용 가능한 상태가 됩니다. 키 값은 그대로 유지되므로 외부 도구 설정을 다시 바꾸지 않아도 됩니다.

첫 API 호출하기

준비물

  • Space에서 활성화된 AI Gateway (위 Gateway 활성화)
  • 터미널에서 curl(명령줄에서 서버에 API 요청을 보내는 도구)을 쓸 수 있는 환경, 또는 Python·TypeScript

왼쪽 메뉴에 AI Gateway 항목이 보이지 않으면 Admin이 아직 활성화하지 않은 상태입니다. Admin에게 활성화를 요청합니다.

모델 코드 확인

Gateway가 공급하는 모델 중 하나를 골라 모델 코드를 메모합니다.

  1. 왼쪽 메뉴에서 AI Gateway카탈로그 탭으로 이동합니다.
  2. 모델 목록에서 사용할 모델을 선택합니다.
  3. 모델 행을 누르면 모델 코드, 컨텍스트 길이, 단가가 보입니다.
  4. 모델 코드를 복사합니다. 다음 단계에서 호출에 그대로 씁니다.

정확한 모델 코드는 카탈로그에서 확인합니다. 처음이라면 다음 후보로 시작합니다.

  • 속도·비용 우선: gpt-5-mini, gemini-2.5-flash, claude-haiku-4-5-20251001. 빠르고 저렴해 단순한 작업에 맞습니다.
  • 품질·복잡도 우선: claude-sonnet-4-6, gpt-5.1. 더 비싸지만 추론·코딩에 강합니다.
  • 임베딩: text-embedding-3-large. 문서 검색이나 RAG(검색으로 찾은 자료를 모델 답변에 함께 넣는 방식)를 시작할 때 씁니다.

카탈로그에는 현재 사용할 수 있는 모델만 나타납니다. 찾는 모델이 없으면 Admin에게 문의합니다(에셋 카탈로그).

키 발급

본인 명의의 키를 하나 만듭니다.

  1. 왼쪽 메뉴에서 AI Gateway 탭으로 이동합니다.
  2. 새 키 버튼을 누릅니다.
  3. 키 이름을 입력합니다. 어디에 쓸 키인지 알 수 있는 이름으로 짓습니다(예: cursor, local-test, internal-bot).
  4. 만료일을 정합니다(옵션). 무기한 또는 특정 날짜를 고릅니다.
  5. 한도를 정합니다(옵션). 키별 월 사용 상한을 USD로 잡습니다. 외부 도구에 넣을 키는 월 $10~$50 정도로 좁게 잡기를 권장합니다.
  6. 발급 버튼을 누릅니다.

발급 직후 화면에 키 값(sk_...)이 한 번만 보입니다. 이 화면을 떠나면 다시 볼 수 없으니 즉시 환경변수나 시크릿 매니저에 저장합니다.

키 값을 코드·채팅·메일 본문에 그대로 붙여 넣지 않습니다. 키가 노출되면 키 라이프사이클에서 즉시 폐기하고 새 키를 발급합니다.

첫 API 호출

Authorization 헤더에 키를 넣고 https://gw.letsur.ai/v1을 base URL로 호출합니다.

curl https://gw.letsur.ai/v1/chat/completions \ -H "Authorization: Bearer <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-6", "messages": [{"role": "user", "content": "안녕"}] }'

응답 JSON에는 다음이 들어 있습니다.

  • choices[0].message.content: 모델의 응답 본문
  • usage.prompt_tokens / usage.completion_tokens: 입력 / 출력 토큰 수
  • usage.estimated_cost: 이번 호출의 비용(USD, 호출 시점 단가 기준)

응답 JSON에 어시스턴트 메시지와 usage 필드가 보이고 usage.estimated_cost가 들어 있으면 호출에 성공한 것입니다.

다음 단계

OpenAI 호환 외부 도구(Cursor·Codex 등)는 base URL을 https://gw.letsur.ai/v1로 설정하면 같은 키로 동작합니다. Claude Code 같은 Anthropic native 클라이언트는 Messages로 들어옵니다. 도구별 설정은 Integrations에서 확인합니다.

이번 달 본인 사용량은 왼쪽 메뉴에서 AI Gateway사용량 탭에서 확인합니다 (사용량 분석).

막혔을 때

증상원인 / 해결
401 Unauthorized키가 잘못되었거나 만료·폐기되었습니다. 키 목록에서 상태를 확인하고, base URL 끝에 /v1이 들어갔는지 확인합니다.
403 Forbidden키 인증은 통과했지만 권한이 막혔습니다. OpenAI 호환 엔드포인트에서는 보통 발생하지 않으며, 발생하면 customer.service@letsur.ai로 문의합니다.
429 한도 초과Key / Member / Service 한도 가운데 하나에 걸렸습니다. 응답 본문에 어느 한도인지 표시됩니다. 다음 리셋(매월 1일 KST)까지 기다리거나 한도를 올립니다 → 한도 개요.
응답이 느립니다모델·공급사 상태에 따라 다릅니다. 다른 모델로 호출하거나 잠시 후 다시 시도합니다.
모델 이름을 잘못 적었습니다model_not_found 응답이 옵니다. 에셋 카탈로그에서 정확한 코드를 확인합니다.
503 또는 일시적 에러공급사 측 일시 장애일 수 있습니다. exponential backoff(초기 1초, 최대 30초)로 다시 시도합니다 → 에러 코드 — 재시도.

관련 문서

Last updated on