본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 16. 10:37

30분 만에 멀티 모델 AI 게이트웨이 구축하기 (Python + FastAPI)

요약

Python과 FastAPI를 사용하여 다양한 AI 모델 제공업체를 통합 관리하는 멀티 모델 AI 게이트웨이를 구축하는 튜토리얼입니다. 단일 OpenAI 호환 엔드포인트를 통해 모델 라우팅, 장애 조치, 비용 제어를 효율적으로 처리하는 방법을 다룹니다.

핵심 포인트

  • OpenAI 호환 엔드포인트를 통한 멀티 모델 통합 관리
  • 모델 이름에 따른 자동 라우팅 및 장애 조치(Failover) 구현
  • FastAPI와 httpx를 활용한 경량 게이트웨이 구축 방법
  • API 키 관리 및 사용량 추적의 중앙 집중화

모든 AI 앱은 동일한 방식으로 시작됩니다. 하나의 모델 제공업체를 선택하고, API 키를 하드코딩한 뒤, 바로 출시하는 것이죠.

하지만 곧 현실에 부딪히게 됩니다. GPT-4는 단순한 작업에 쓰기에는 너무 비쌉니다. Claude는 코딩에는 더 뛰어나지만 채팅에는 더 느립니다. DeepSeek는 비용이 매우 저렴하지만 신뢰성에 대해서는 확신할 수 없습니다. 그리고 특정 제공업체에 장애가 발생하면, 여러분의 앱 전체가 중단됩니다.

해결책은 무엇일까요? 바로 멀티 모델 AI 게이트웨이 (multi-model AI gateway) 입니다. 이는 모델 이름에 따라 요청을 서로 다른 제공업체로 라우팅하고, 장애 조치 (failover)를 처리하며, 키 관리, 사용량 추적, 비용 제어를 한 곳에서 할 수 있게 해주는 단일 OpenAI 호환 엔드포인트입니다.

이 튜토리얼에서는 Python과 FastAPI를 사용하여 이를 처음부터 구축해 보겠습니다.

우리가 구축할 것

Your App  →  Gateway (:8000)  →  OpenAI (gpt-4o, gpt-4o-mini)
                               →  Anthropic (claude-sonnet-4, claude-haiku)
                               →  Google (gemini-2.5-flash)
...

게이트웨이는 OpenAI SDK와 호환되는 단일 /v1/chat/completions 엔드포인트를 노출합니다. 여러분의 앱은 모델 뒤에 어떤 제공업체가 있는지 알 필요가 없습니다. 그저 평소처럼 요청을 보내기만 하면 됩니다.

사전 요구 사항

  • Python 3.10 이상
  • 최소 두 개 이상의 제공업체 API 키 (OpenAI + 기타 하나)
  • FastAPI에 대한 기본적인 숙련도

1단계: 프로젝트 설정

mkdir ai-gateway && cd ai-gateway
python -m venv venv && source venv/bin/activate
pip install fastapi uvicorn httpx python-dotenv

제공업체 키가 포함된 .env 파일을 생성하세요:

OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=AIza...
...

2단계: 제공업체 라우팅 정의

핵심 아이디어는 모델 이름을 해당 제공업체의 베이스 URL (base URL) 및 API 키와 매핑하는 것입니다.

config.py를 생성하세요:

import os
from dotenv import load_dotenv

...

이것이 라우팅 테이블입니다. gpt-4o에 대한 요청이 들어오면, 게이트웨이는 이를 api.openai.com으로 전달해야 함을 알게 됩니다. deepseek-chat인 경우 api.deepseek.com으로 전달됩니다. 호출자는 이를 신경 쓸 필요가 없습니다.

3단계: 게이트웨이 구축

main.py를 생성하세요:

import json
import time
import httpx
...

이것으로 끝입니다 — 100줄 미만의 코드로 작동하는 AI 게이트웨이를 완성했습니다.

4단계: 테스트하기

서버를 시작하세요:

uvicorn main:app --host 0.0.0.0 --port 8000

curl로 테스트하세요:

# 모델 목록 조회
curl http://localhost:8000/v1/models \
  -H "Authorization: Bearer gw-your-secret-key"
...

또한 OpenAI 호환(OpenAI-compatible) 방식이므로, OpenAI SDK가 직접 작동합니다:

from openai import OpenAI

client = OpenAI(
...

5단계: 자동 장애 조치 (Automatic Failover) 추가

게이트웨이의 진정한 힘은 회복 탄력성(Resilience)에 있습니다. 한 제공업체(Provider)가 다운되면, 요청은 자동으로 백업으로 넘어가야 합니다.

config.py에 다음을 추가하세요:

# 장애 조치 체인 (Failover chains): 기본 제공업체가 실패하면, 다음 순서대로 시도합니다
FAILOVER = {
    "gpt-4o": ["claude-sonnet", "deepseek-chat"],
...

main.pychat_completions 핸들러를 업데이트하세요:

from config import PROVIDERS, GATEWAY_API_KEY, FAILOVER

@app.post("/v1/chat/completions")
...

이제 OpenAI가 다운되면, gpt-4o에 대한 요청은 자동으로 Claude를 거쳐 DeepSeek으로 라우팅됩니다. 사용자는 500 에러를 절대 보지 않게 됩니다.

6단계: 요청 로깅 (Request Logging) 추가

비용 추적 및 디버깅을 위해 모든 요청을 로깅하세요:

import logging
from datetime import datetime

...

이를 _direct_response에 통합하세요:

async def _direct_response(url: str, headers: dict, body: dict, model: str = ""):
    start = time.time()
    async with httpx.AsyncClient(timeout=120.0) as client:
...

이제 로그를 통해 어떤 제공업체가 각 요청을 처리했는지, 그리고 얼마나 걸렸는지 정확히 확인할 수 있습니다:

[2026-06-16T09:30:00] model=gpt-4o provider=gpt-4o latency=823ms status=200
[2026-06-16T09:30:01] model=deepseek-chat provider=deepseek-chat latency=412ms status=200
[2026-06-16T09:30:05] model=gpt-4o provider=gpt-4o latency=30002ms status=timeout
...

프로덕션 환경을 위해 부족한 점

이 튜토리얼 게이트웨이는 작동하지만, 실제 프로덕션(Production) 환경 구축에는 더 많은 것이 필요합니다:

  • Rate limiting (속도 제한) — 남용 방지를 위한 키별 요청 할당량(quotas) 설정
  • Token counting (토큰 카운팅) — 정확한 과금을 위한 입력/출력 토큰 추적
  • Caching (캐싱) — 비용 절감을 위한 동일 요청의 중복 제거
  • Load balancing (부하 분산) — 제공자(provider)별 여러 API 키로 요청 분산
  • Authentication (인증) — 키별 모델 접근 권한을 포함한 멀티 테넌트(multi-tenant) 키 관리
  • Monitoring (모니터링) — 지연 시간(latency), 에러율, 모델별 비용을 위한 대시보드
  • Streaming edge cases (스트리밍 예외 사례) — 스트림 중간의 부분적 실패 및 SSE 재연결 처리

이 모든 것을 직접 구축하는 것은 상당한 엔지니어링 투자가 필요합니다.

프로덕션 지름길 (The Production Shortcut)

인프라를 직접 구축하지 않고 프로덕션 환경에서 멀티 모델 라우팅(multi-model routing)이 필요한 경우, 관리형 AI 게이트웨이(managed AI gateways)가 위의 모든 기능을 즉시 제공합니다.

예를 들어, FuturMix는 25개 이상의 모델, 자동 장애 조치(automatic failover), 그리고 선택된 모델에 대한 할인 혜택이 포함된 OpenAI 호환 엔드포인트를 제공합니다. 10달러부터 충전하여 시작할 수 있습니다. 본 튜토리얼의 게이트웨이에서 마이그레이션하는 방법은 단 한 줄의 코드 변경뿐입니다:

client = OpenAI(
    base_url="https://futurmix.ai/v1",  # ← 이 부분을 교체하세요
    api_key="your-futurmix-key",
...

이 분야의 다른 옵션으로는 OpenRouter, LiteLLM (오픈 소스), 그리고 Portkey가 있습니다. 귀하의 스택에 맞는 것을 선택하세요.

마무리 (Wrapping Up)

우리는 약 120줄의 Python 코드로 작동하는 멀티 모델 AI 게이트웨이를 구축했습니다:

  1. 통합 엔드포인트 (Unified endpoint) — 모든 제공자를 위한 단일 /v1/chat/completions
  2. 모델 라우팅 (Model routing) — 모델 이름을 업스트림 제공자(upstream providers)에 매핑
  3. 자동 장애 조치 (Automatic failover) — 제공자가 다운된 경우 다음 제공자 시도
  4. 요청 로깅 (Request logging) — 지연 시간, 비용 및 에러 추적

전체 소스 코드는 위에 포함되어 있습니다 — config.pymain.py만 있으면 됩니다.

직접 호스팅(self-host)하든 관리형 게이트웨이(managed gateway)를 사용하든, 패턴은 동일합니다: 애플리케이션을 특정 AI 제공업체로부터 분리(decouple)하세요. 여러분의 코드는 하나의 엔드포인트(endpoint)와 통신하고, 게이트웨이가 나머지 작업을 처리합니다.

공지: 저는 OpenAI 호환 멀티 모델 API 플랫폼인 FuturMix에서 일하고 있습니다. 이 튜토리얼은 모든 OpenAI 호환 설정에서 작동합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0