mozilla-ai/any-llm

Communicate with an LLM provider using a single interface

What it solves

LLM 제공자 인터페이스가 분산되는 문제를 해결합니다. OpenAI, Anthropic, Mistral 등 각 AI 제공자마다 다른 코드를 작성할 필요 없이, 단일 통합 인터페이스만으로 지원되는 모든 모델과 통신할 수 있어, 제공자를 전환해도 애플리케이션 로직을 다시 작성할 필요가 없습니다.

How it works

any-llm 은 공식 제공자 SDK를 활용하는 가벼운 래퍼로, 최대 호환성을 보장합니다. 두 가지 주요 사용 방법을 제공합니다:

  • Direct API Functions: 상태가 없는 completion 함수로, 빠른 스크립트와 노트북에 적합합니다.
  • AnyLLM Class: 상태를 유지하는 클래스이며, 클라이언트와 연결 풀을 재사용해 프로덕션 애플리케이션에 최적화됩니다.

스트리밍, 툴 사용, OpenAI 호환 Responses API 등 표준 기능을 지원하며, providermodel을 별도로 지정하거나 provider:model 형태의 문자열로 모델을 지정할 수 있습니다.

Who it’s for

LLM 기반 애플리케이션을 구축하고 싶지만 특정 AI 벤더에 종속되지 않거나 별도의 프록시 서버를 관리하고 싶지 않은 개발자를 위한 솔루션입니다.

Highlights

  • Unified Interface: 문자열 하나만 바꾸면 제공자를 손쉽게 전환할 수 있습니다.
  • Official SDK Integration: 공식 SDK를 사용해 인터페이스를 재구현하지 않음으로써 호환성 문제를 최소화합니다.
  • Framework Agnostic: 특정 에이전트 프레임워크에 얽매이지 않고 어떤 프로젝트에도 통합할 수 있습니다.
  • Type-Safe: 완전한 Python 타입 힌트를 제공해 IDE 지원을 강화합니다.
  • No Proxy Required: 중간 서버 없이 직접 제공자에 연결합니다.