Compass: 실제 멀티 모델 AI 추론 게이트웨이 구축하기
요약
단일 Node.js 앱을 사용하여 다양한 LLM 요청을 최적의 모델로 라우팅하는 'Compass' 추론 게이트웨이 구축 방법을 소개합니다. 비용, 지연 시간, 가용성을 고려하여 모델을 동적으로 선택하는 인프라 계층 구현을 다룹니다.
핵심 포인트
- 모델을 하드코딩하는 대신 요청 특성에 맞는 최적의 모델을 선택하는 라우팅 전략 제시
- Next.js와 LangChain.js를 활용하여 Python 없이 단일 프로세스로 게이트웨이 구현
- Ollama, LM Studio, OpenAI API 등 다양한 백엔드 통합 및 페일오버 기능 지원
- 정책 결정 엔진을 통한 기능 기반(속도, 비용 등)의 동적 모델 라우팅
우리가 모델을 인프라로 취급하고, 지도 앱이 도로를 선택하듯 각 요청을 라우팅하는 방법을 단일 Node.js 앱에서 구현하는 방법.
“그냥 GPT-4를 사용하세요”의 문제점
대부분의 AI 기능은 하나의 모델을 하드코딩하여 사용합니다. 이는 데모 단계에서는 작동하지만, 개인정보 보호, 비용, 지연 시간(Latency) 또는 서비스 중단(Outage) 문제가 발생하면 더 나은 전략이 필요해집니다.
내비게이션 앱은 항상 가장 짧은 도로만 선택하지 않습니다. 교통량, 도로 폐쇄, 통행료 등을 고려합니다. Compass는 동일한 아이디어를 LLM 추론(Inference)에 적용합니다:
어떤 AI 모델이 최고인지 묻지 마세요.
이 요청에 어떤 모델이 최적인지를 물으세요.
우리가 구축한 것
Compass는 다음과 같은 기능을 갖춘 **추론 제어 평면 (Inference Control Plane)**입니다:
- Ollama, LM Studio, OpenAI-compatible API 및 OpenRouter로부터 모델 탐색
- **정책 결정 엔진 (Policy Decision Engine)**을 통해 각 프롬프트 라우팅
- **SSE (Server-Sent Events)**를 통한 토큰 스트리밍 (결정 → 단계 → 토큰 → 메트릭)
- 제공업체(Provider) 오류 발생 시 페일오버 (Fail over)
- 모델 비교, 규칙 편집, 분석 데이터 검사
단일 프로세스: Next.js가 UI와 게이트웨이 API를 제공합니다. LangChain.js (ChatOpenAI)가 모든 OpenAI-compatible 백엔드와 통신합니다. Python 사이드카(Sidecar)는 필요 없습니다.
스택 (Stack)
| 계층 (Layer) | 선택 (Choice) |
|---|---|
| 앱 (App) | Next.js 15 App Router |
| ... |
CrewAI는 Python 기반의 멀티 에이전트 오케스트레이션(Multi-agent orchestration) 도구이며, 라우터로 쓰기에는 잘못된 계층입니다. LangChain.js는 멀티 백엔드 채팅을 위한 적절한 Node 클라이언트입니다.
아키텍처 (Architecture)
┌─────────────────────────────────────────────────────┐
│ Next.js (localhost:3000) │
│ Browser → /api/* → discovery / policy / llm │
...
파이프라인 (Pipeline)
POST /api/chat/stream
→ PolicyEngine.decide(prompt)
→ SSE: decision + policy steps
...
실행 방법
npm install
npm run dev
# → http://localhost:3000
Ollama 또는 LM Studio가 실행 중이면 모델이 자동으로 나타납니다. .env 파일에 선택적 키를 설정할 수 있습니다 (.env.example 참조).
코드 맵 (Code map)
src/server/
discovery.ts # 로컬 탐색 + 클라우드 카탈로그 구축
policy-engine.ts # IF/THEN + 기능 기반 라우팅
...
LangChain 클라이언트 (스케치)
import { ChatOpenAI } from "@langchain/openai";
import { HumanMessage } from "@langchain/core/messages";
...
정책 액션 (Policy actions)
local— 선호하는 Ollama/LM Studio 모델capability:fast|code|creative|long_context(기능: 빠름 | 코드 | 창의적 | 긴 컨텍스트)cheapest|fastest| 특정 모델 ID (가장 저렴함 | 가장 빠름 | 특정 모델 ID)
모델은 인프라입니다. Compass는 노트북에서도 실행할 수 있는, 요청 범위(request-scoped) 라우팅을 위한 읽기 쉬운 참조 도구입니다.
코드 및 상세 정보: https://www.dailybuild.xyz/project/208-compass
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기