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 を活用した軽量ラッパーで、最大限の互換性を確保します。主に 2 つの利用方法を提供します:

  • Direct API Functions:ステートレスな completion 関数。スクリプトやノートブックでの素早い利用に最適です。
  • AnyLLM Class:ステートフルなクラス。クライアントやコネクションプーリングを再利用でき、プロダクション向けアプリに適しています。

ストリーミング、ツール使用、OpenAI 互換の Responses API など標準機能をサポートし、providermodel を別々に指定するか、provider:model 形式の文字列でモデルを指定できます。

Who it’s for

LLM を活用したアプリケーションを構築したいが、特定ベンダーにロックインしたくない、あるいはプロキシサーバーを自前で管理したくない開発者向けです。

Highlights

  • Unified Interface:文字列一つ変更するだけでプロバイダー間を切り替え可能。
  • Official SDK Integration:公式 SDK を使用し、インターフェースの再実装を避けて互換性問題を低減。
  • Framework Agnostic:特定のエージェントフレームワークに縛られず、任意のプロジェクトに組み込めます。
  • Type-Safe:完全な Python 型ヒントを提供し、IDE のサポートを向上。
  • No Proxy Required:中間サーバー不要でプロバイダーへ直接接続。