Litelm - 비대함을 덜어낸 LiteLLM

6 days ago 14

litelm은 LiteLLM의 모델 라우팅과 메시지 변환 등 호출 경로만 추려, 약 2,900줄과 기본 의존성 2개인 openai, httpx로 구현한 라이브러리임 19개 제공자를 provider/model 형식으로 호출하며, 스트리밍, 도구 사용, 임베딩, 텍스트 완성, OpenAI Responses API를 지원함 LiteLLM과 같은 함수명, 인자, 응답 타입을 사용하지만, 부하 분산과 대체 경로를 담당하는 Router, 프록시, 캐싱, 비용 추적 등은 제공하지 않음 Alpha 단계이며, 자체 테스트 262개와 현재 범위에 맞춰 이식한 LiteLLM 테스트 75개가 통과함. 호환성 검증은 선언한 라우팅/포맷 변환/DSPy 범위에 한정되며 LiteLLM 전체 호환성을 보장하지 않음 DSPy 대체 연동은 Predict, CoT, 타입 지정 시그니처, 스트리밍, 임베딩, 도구 사용, 다중 출력의 7개 실행 경로에서 실제 호출로 검증됨 호출 경로에 집중한 설계 litelm은 제공자 간 LLM 호출 라우팅과 메시지 형식 변환에 집중함 LiteLLM에는 프록시 서버, 캐싱 계층, 비용 추적 등 여러 기능을 포함한 10만 줄 이상의 코드가 있음 litelm은 모델 라우팅, 메시지 변환, 스트리밍, 도구 사용, 임베딩 등 호출 경로만 약 2,900줄로 추림 기본 의존성은 openai, httpx 두 개임 Anthropic SDK와 Bedrock용 boto3는 선택 의존성으로 추가할 수 있음 API와 지원 범위 LiteLLM과 동일한 함수명, 인자, 응답 타입을 사용하며, 지원하는 호출 API는 import의 litellm을 litelm으로 바꾸는 방식으로 전환할 수 있음 completion, embedding 등을 제공함 모든 함수에 비동기 변형이 있으며, acompletion, aembedding, aresponses, atext_completion을 사용할 수 있음 스트리밍과 도구 사용을 지원함 stream=True로 스트리밍을 활성화하며, stream_chunk_builder도 제공함 tools와 tool_choice로 함수 호출을 요청하고, 응답의 tool_calls에서 함수명과 인자를 읽을 수 있음 텍스트 완성, OpenAI Responses API, 임베딩, 모의 응답을 지원함 Router와 프록시 서버는 제공하지 않음 Router의 부하 분산과 대체 경로, 캐싱/예산 관리/비용 추적, 토큰 수 계산은 지원 ...

Read Entire Article