예상 시나리오 (보수적)
├── 동시 접속: 1~2명
├── 시간당 요청: 수십 건
└── 피크: 3명 동시 질문 (드묾)
항목
평가
Gateway 처리
✅ 충분
GPU inference
✅ 7B Q4 기준 양호
동시 5명 heavy 사용
⚠️ 큐·순차 처리 필요
3.4 예상 응답 성능
모델
토큰 생성 속도 (대략)
짧은 답변
긴 답변
Gemma 4B Q4
50~80 tok/s
1~3초
5~15초
Qwen 7B Q4
30~50 tok/s
2~5초
10~30초
Qwen 14B Q4
10~20 tok/s
5~10초
30~60초+
4. 권장 기술 스택
4.1 스택 선택 결론
레이어
1차 선택
대안
Inference
Ollama
llama.cpp (VRAM 극한 튜닝 시)
Gateway
LiteLLM Proxy
FastAPI 직접 구현
UI (선택)
Open WebUI
—
외부 Kimi
Moonshot API
—
프로세스 관리
NSSM / Windows 서비스
Docker
외부 접속
Tailscale / Cloudflare Tunnel
포트포워딩
4.2 Ollama vs llama.cpp
항목
Ollama
llama.cpp
설치·운영
⭐ 매우 쉬움
빌드/설정 부담
모델 관리
내장 레지스트리
GGUF 수동 관리
API
OpenAI 호환 기본 제공
llama-server 설정 필요
VRAM 효율
좋음
약간 더 좋음
Windows 지원
공식 설치 프로그램
WSL/빌드 필요한 경우 多
5명 소규모
추천
오버엔지니어링
전략: 초기에는 Ollama만 사용 → 병목 발생 시 특정 모델만 llama.cpp로 분리
4.3 LiteLLM vs FastAPI 직접 구현
항목
LiteLLM
FastAPI
개발 속도
빠름
느림
OpenAI 호환
기본 제공
직접 구현
모델 라우팅
YAML 설정
코드 구현
Rate limit / API Key
내장
직접 구현
5명 규모
추천
완전 통제 필요 시
4.4 포트 구성 (예시)
서비스
포트
설명
LiteLLM Gateway
4000
외부 클라이언트 진입점
Ollama
11434
로컬 inference (내부만 노출)
Open WebUI (선택)
3000
웹 채팅 UI
5. 시스템 아키텍처
5.1 전체 구조도
flowchart TB
subgraph clients [클라이언트]
C1[웹 / 앱 / IDE]
C2[OpenAI SDK]
end
subgraph gateway [AI Gateway - 로컬 PC]
LM[LiteLLM Proxy :4000]
AUTH[API Key 인증]
RL[Rate Limit / Queue]
ROUTE[모델 라우터]
LOG[요청 로깅]
end
subgraph inference [Inference Layer]
OL[Ollama :11434]
end
subgraph external [외부 API - 선택]
KIMI[Moonshot Kimi API]
end
C1 --> LM
C2 --> LM
LM --> AUTH --> RL --> ROUTE --> LOG
ROUTE --> OL
ROUTE --> KIMI
OL --> GPU[NVIDIA RTX 4060 8GB]
5.2 요청 처리 흐름
1. 클라이언트 → POST /v1/chat/completions (Bearer API Key)
2. Gateway → API Key 검증
3. Gateway → Rate limit / 동시 요청 수 확인
4. Gateway → model 필드에 따라 백엔드 라우팅
├── gemma-fast / qwen-general / qwen-coder → Ollama
└── kimi-cloud → Moonshot API
5. Inference → 스트리밍 또는 일괄 응답 반환
6. Gateway → usage 통계 기록
5.3 자동 모델 라우팅 (선택)
요청 유형
라우팅 대상
model 필드 명시
해당 논리 모델
코드 블록·파일 경로 포함
qwen-coder
max_tokens < 512 + 단순 질문
gemma-fast
그 외 기본
qwen-general
6. Gateway API 스펙
6.1 기본 정보
항목
값
Base URL
http://<서버IP>:4000/v1
인증
Authorization: Bearer <GATEWAY_API_KEY>
프로토콜
HTTPS 권장 (Tailscale/CF Tunnel 사용 시 자동)
호환 표준
OpenAI API v1
6.2 Chat Completions
Endpoint:POST /v1/chat/completions
요청 예시:
{
"model": "qwen-coder",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Python으로 CSV 파일을 읽는 코드를 작성해줘"}
],
"stream": true,
"temperature": 0.7,
"max_tokens": 2048
}