AI 도구 체인 — 다중 모델 오케스트레이션
모든 작업에 GPT-4o를 쓸 필요는 없다. 간단한 분류는 Flash, 깊은 분석은 Claude, 코드 생성은 GPT-4o — 모델을 조합하면 비용은 줄이고 품질은 높인다.
왜 다중 모델인가?
단일 모델의 한계
| 문제 | 설명 |
|---|---|
| 비용 폭증 | 모든 작업에 최고 모델을 쓰면 API 비용이 급증 |
| 속도 저하 | 대형 모델은 응답이 느림 |
| 과잉 사양 | "긍정/부정 분류"에 GPT-4o는 과잉 |
| 모델별 강점 차이 | 코드 생성, 장문 분석, 창의적 글쓰기에서 모델별 성능 차이 |
다중 모델 전략
[입력] → [분류: 작업 복잡도] → [모델 라우팅]
│
간단 ─┼─▶ GPT-4o-mini ($0.15/1M tokens)
│
보통 ─┼─▶ Claude 3.5 Sonnet ($3/1M tokens)
│
복잡 ─┴─▶ GPT-4o ($5/1M tokens)
패턴 1: 복잡도 기반 라우팅
1단계 분류기 (소형 모델)
[Basic LLM Chain: GPT-4o-mini]
System: 다음 질문의 복잡도를 "simple", "medium", "complex" 중 하나로만 응답하세요.
User: {{ $json.question }}
2단계 Switch → 모델별 처리
[Switch: 복잡도]
"simple" → [GPT-4o-mini: 즉답]
"medium" → [Claude 3.5 Sonnet: 상세 답변]
"complex" → [GPT-4o: 심층 분석]
패턴 2: 체인 (순차 처리)
하나의 모델 출력을 다른 모델의 입력으로 사용한다.
[원본 텍스트]
→ [GPT-4o-mini: 1차 요약 (10줄)]
→ [Claude 3.5 Sonnet: 핵심 인사이트 추출 (3개)]
→ [GPT-4o: 최종 보고서 작성]
장점: 각 단계에 최적화된 모델을 사용하여 비용 대비 품질 극대화.
비용 비교
| 방식 | 토큰 사용량 | 비용 |
|---|---|---|
| GPT-4o만 사용 | ~5,000 tokens | ~$0.025 |
| 체인 방식 | mini 1K + Sonnet 500 + 4o 1K | ~$0.007 |
약 3.5배 비용 절감 가능.
패턴 3: 병렬 처리 + 합의
같은 질문을 여러 모델에 동시에 보내고 결과를 비교한다.
┌──▶ [GPT-4o: 분석] ──┐
[질문] ──┼──▶ [Claude: 분석] ──┼──▶ [Merge] → [Code: 결과 비교/합의]
└──▶ [Gemini: 분석] ──┘
합의 Code 노드
const results = $input.all();
const gpt = results[0].json.text;
const claude = results[1].json.text;
const gemini = results[2].json.text;
return {
json: {
gpt_answer: gpt,
claude_answer: claude,
gemini_answer: gemini,
agreement: gpt === claude ? "일치" : "불일치",
final: gpt // 또는 투표 방식으로 결정
}
};
패턴 4: Fallback (장애 대응)
메인 모델 장애 시 백업 모델로 자동 전환:
[HTTP Request: OpenAI API]
│ 정상 ──▶ [처리 계속]
│ 에러 ──▶ [HTTP Request: Anthropic API (백업)]
│ 정상 ──▶ [처리 계속]
│ 에러 ──▶ [Gemini API (최종 백업)]
비용 모니터링 워크플로우
[AI 호출 워크플로우]
→ [Code: 토큰 수 계산]
→ [Google Sheets: 일별 비용 기록]
→ [IF: 일 예산 초과?]
true → [Slack: "⚠️ AI API 일 예산 초과!" 알림]
토큰-비용 계산
const usage = $json.usage;
const model = $json.model;
const pricing = {
'gpt-4o': { input: 5, output: 15 },
'gpt-4o-mini': { input: 0.15, output: 0.6 },
'claude-3-5-sonnet': { input: 3, output: 15 }
};
const rate = pricing[model] || { input: 1, output: 1 };
const cost = (usage.prompt_tokens * rate.input +
usage.completion_tokens * rate.output) / 1000000;
return {
json: {
model,
inputTokens: usage.prompt_tokens,
outputTokens: usage.completion_tokens,
costUSD: cost.toFixed(6),
date: new Date().toISOString().split('T')[0]
}
};
모델 선택 가이드
| 작업 | 추천 모델 | 이유 |
|---|---|---|
| 분류/태깅 | GPT-4o-mini | 빠르고 저렴, 충분한 정확도 |
| 요약 | GPT-4o-mini | 비용 효율적 |
| 긴 문서 분석 | Claude 3.5 Sonnet | 200K 컨텍스트 윈도우 |
| 코드 생성/리뷰 | GPT-4o | 코드 품질 최고 |
| 창의적 글쓰기 | Claude 3.5 Sonnet | 자연스러운 문체 |
| 다국어 번역 | GPT-4o | 다국어 능력 우수 |
| 실시간 응답 | Gemini Flash | 최고 속도 |
📝 정리
- [x] 다중 모델 전략: 비용 절감 + 품질 향상을 동시에 달성
- [x] 라우팅 패턴: 복잡도 분류기(소형 모델) → Switch → 적합한 모델
- [x] 체인 패턴: 소형→중형→대형 순차 처리로 비용 3~4배 절감
- [x] Fallback 패턴: 메인 모델 장애 시 백업 자동 전환
- [x] 비용 모니터링: 토큰 사용량 추적 → 예산 초과 알림
다음 편 예고
25편: Sub-Workflow (Execute Workflow) — 워크플로우 모듈화
워크플로우 안에서 다른 워크플로우를 호출한다. 재사용 가능한 모듈 설계로 유지보수성을 높이자.