このプロジェクトについて

openai-shim は、複数の LLM プロバイダーへのアクセスを統一することを目的とした、軽量で依存関係のない Python ライブラリです。各プロバイダーの API を OpenAI のチャット完了形式に変換します。Anthropic、Ollama、カスタムエンドポイントなどのプロバイダー間でのフェイルオーバーをサポートし、レートリミットやエラー、空のレスポンスなどで失敗した場合に自動的に切り替えます。ライブラリは API 構造の違い(例:ロールの欠如、トークン数の計算、ストリーミング動作)を処理するため、コード側での適応は不要です。任意のエンドポイント向けにカスタムアダプタを定義でき(プレーンテキストの HTTP サービスでも可)、プロバイダーの優先順位リストを通じてリクエストをルーティングできます。また、ストリーミング、トークン推定、モデルの廃止追跡、ビジョン/ツール機能のフィルタリングを組み込みでサポートしています。クライアントロジックを書き換えることなく、耐障害性の高いマルチプロバイダーゲートウェイや LLM 呼び出しのプロキシを構築するのに最適です。純粋な標準ライブラリのみで実装され、モックトランスポートを用いた大規模なテストが行われており、実運用にも適しています。