반응형

LiteLLM 5

LiteLLM 완전 가이드 4편 — LangChain·LangGraph 통합, 가드레일, Prometheus 모니터링, 프로덕션 운영

3편에서 Proxy 서버를 띄웠습니다. 4편은 그 위에 쌓는 것들입니다. LangChain·LangGraph가 Proxy를 모르게 쓰고, 콘텐츠 필터로 민감한 출력을 막고, Prometheus로 모든 메트릭을 시각화합니다. 마지막으로 LiteLLM의 실제 한계와 대안도 솔직하게 정리합니다.[4편 핵심 요약]→ LangChain + Proxy: base_url=http://proxy:4000 — 모델 교체 없이 모든 LLM 사용→ LangGraph: LiteLLM이 LangGraph 에이전트를 모델처럼 호출 가능 (A2A 프로토콜)→ 가드레일: 콘텐츠 필터 / PII 마스킹 (Presidio) / 커스텀 훅→ Prometheus: /metrics 엔드포인트 → Grafana 대시보드 자동 연동→ 보안 주의..

AI 개발 2026.05.19

LiteLLM 완전 가이드 3편 — Proxy 서버 모드: 팀 공용 LLM 게이트웨이 구축 실전

1·2편은 Python 라이브러리로 개인이 직접 쓰는 방법이었습니다. 3편은 팀 전체가 쓰는 방법입니다. LiteLLM Proxy를 띄우면 팀원들은 각자 API 키 없이 http://our-gateway.com:4000으로 요청하면 됩니다. 비용은 중앙에서 집계되고, 팀별 예산도 설정됩니다.[3편 핵심 요약]→ LiteLLM Proxy: 팀 공용 OpenAI 호환 LLM 게이트웨이 — 셀프호스팅→ 구성: config.yaml(모델·설정) + .env(API 키) + PostgreSQL(비용 추적) + Redis(고트래픽)→ 포트: 4000 (API) / UI: http://localhost:4000/ui→ Master Key: 관리자 키 (sk-로 시작) — 가상 키 발급에 사용→ Virtual Key:..

AI 개발 2026.05.19

LiteLLM 완전 가이드 2편 — 폴백·재시도, Router 로드밸런싱, 비용 추적, 예산·캐싱 실전

1편에서 기본 호출까지 했습니다. 2편은 프로덕션에서 쓰는 패턴입니다. 프로바이더가 죽어도 자동 전환하고, 여러 배포를 밸런싱하고, 토큰 비용을 실시간으로 추적하고, 예산을 초과하면 자동으로 막습니다. [2편 핵심 요약]→ 단순 폴백: completion()의 fallbacks 파라미터 — 가장 빠른 방법→ Router: 여러 배포를 하나의 모델 그룹으로 묶어 관리하는 핵심 클래스→ 라우팅 전략: simple-shuffle(기본) / least-busy / latency-based / usage-based→ 3종 폴백: 일반 실패 / 컨텍스트 초과 / 콘텐츠 정책 위반 각각 따로 설정→ order 파라미터: 배포 우선순위 — order=1 실패 시 order=2로 자동 에스컬레이션→ completion..

AI 개발 2026.05.19

LiteLLM 완전 가이드 1편 — 100개+ LLM을 코드 한 줄로 갈아타는 오픈소스 AI 게이트웨이

Claude 쓰다가 GPT로 바꾸면 SDK 갈아야 하고, Gemini 추가하면 또 다른 SDK. 프로바이더마다 인증 방식도 응답 포맷도 다릅니다. LiteLLM은 이 모든 걸 completion() 하나로 통일합니다. model 파라미터만 바꾸면 끝납니다.[핵심 요약]→ LiteLLM: BerriAI가 만든 오픈소스 LLM 통합 라이브러리 + AI 게이트웨이→ GitHub: 40K 스타, 1,300+ 기여자, 2억 4천만+ Docker 풀→ 지원 범위: 140개+ 프로바이더, 2,500개+ 모델→ 두 가지 모드: Python SDK (라이브러리) / Proxy Server (팀 공용 게이트웨이)→ OpenAI 완전 호환: base_url만 바꾸면 기존 코드 그대로→ 지원 엔드포인트: /chat/compl..

AI 개발 2026.05.19

LiteLLM 완전 가이드 — Claude, GPT, Gemini 100개+ LLM을 코드 한 줄로 전환하기

LLM을 여러 개 쓰다 보면 이런 문제가 생겨요.# Claude 쓸 때import anthropicclient = anthropic.Anthropic()response = client.messages.create( model="claude-sonnet-4-6", max_tokens=1024, messages=[{"role": "user", "content": "안녕"}])text = response.content[0].text # 이렇게 꺼냄# GPT 쓸 때 → SDK 다르고, 응답 형식 다름from openai import OpenAIclient = OpenAI()response = client.chat.completions.create( model="gpt-5.4", me..

AI 개발 2026.04.23
반응형