본문으로 건너뛰기

다중 LLM 제공자 클라이언트 구현 시 발생하는 문제와 해결책

다중 LLM 제공자를 지원하는 클라이언트 구현 시, 제공자별로 다른 스트리밍 이벤트와 도구 호출 형식을 무리하게 통합하지 말고 타입별로 분리하여 관리해야 한다.

커뮤니티 반응

작성자의 경험에 공감하며, 유사한 문제를 겪은 개발자들의 기술적 논의가 이어짐.

주요 논점

01중립다수

범용 인터페이스를 통한 통합 vs 제공자별 타입 분리

합의점 vs 논쟁점

합의점

  • 제공자별로 다른 스트리밍 이벤트 형식을 강제로 통합하는 것은 위험하다
  • 비용 정산을 위해 원본 사용량 데이터 보존은 필수적이다

논쟁점

  • 범용 어댑터 레이어의 필요성 여부

실용적 조언

  • normalize_message 함수가 API 호출보다 길다면 잘못된 설계이므로 즉시 리팩터링할 것
  • 테스트 시 모킹 대신 실제 스트리밍 청크를 기록하여 사용할 것

섹션별 상세

스트리밍 이벤트 처리: 제공자마다 스트리밍 이벤트 경계가 달라 UI에서 도구 이벤트나 부분 JSON 파싱 시 오류가 발생한다. 모든 스트림을 동일하게 취급하지 말고 제공자별 이벤트 형식을 존중해야 한다.
도구 호출 순서 보존: OpenAI와 Claude는 도구 호출 형식이 다르며, 텍스트와 도구 호출이 섞인 응답을 하나의 리스트로 평탄화하면 호출 순서가 뒤섞여 실행기가 오작동한다. 각 제공자의 응답 구조를 유지하는 것이 중요하다.
사용량 집계: 제공자마다 토큰 계산 방식(입력, 프롬프트, 캐시, 추론, 출력)이 다르므로 이를 강제로 정규화하지 말고 원본 사용량 객체를 함께 저장해야 한다.
타입 시스템 활용: 범용 LLMResponse 모델 대신 공통 인터페이스와 제공자별 페이로드를 결합한 타입을 사용해야 코드 복잡도를 낮출 수 있다.

언급된 도구

OpenRouter추천

다중 LLM 제공자 게이트웨이

TokenRouter중립

LLM 엔드포인트 라우팅 및 관리

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 05. 28.수집 2026. 05. 28.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.