最近Andrew Ng氏によって発表された、現在利用可能なもっとも一般的な大規模言語モデル(LLM)に対してOpenAIライクなAPIを提供することを目的としたaisuite
は、開発者がコードを変更することなく簡単にLLMを試して結果を比較したり、あるLLMから別のLLMに切り替えることを可能にする。
Andrew Ng氏によると同じアプリケーションで複数のLLMプロバイダーを使うのは面倒なことだが、aisuite
は目的のLLMプロバイダーを選択するためにメインコンポーネントをインスタンス化する際、1つの文字列のみ変更する程度に簡単にすることを目指している。例えば、OpenAI GPT-4oを使用するにはaisuite
チャット補完エージェント生成呼び出しのmodel
引数として「openai:gpt-4o」を渡す。これは次のコードスニペットに示されている:
import aisuite as aiclient = ai.Client()messages = [ {"role":"system", "content": "Respond in Pirate English."}, {"role":"user", "content": "Tell me a joke."},]response = client.chat.completions.create( model="openai:gpt-4o", messages=messages, temperature=0.75)print(response.choices[0].message.content)response = client.chat.completions.create( model="anthropic:claude-3-5-sonnet-20240620", messages=messages, temperature=0.75)print(response.choices[0].message.content)
aisuite
をインストールするには単にpip install aisuite
を実行するだけだ。このライブラリはLLMプロバイダーライブラリをインストールするショートカットも提供している。例えばpip install 'aisuite[anthropic]'
を実行すると、基本ライブラリとAnthropicサポートがインストールされる。
複数のXユーザーがNg氏の発表にリプライし、aisuite
が LLMデプロイ時の実際の課題に対処しているという同様の感覚を共有している。Redditユーザーは、例えばテスト環境のsqliteから本番環境の別データベースに切り替え可能にするような、aisuite
からデータベース抽象化層のようなプロキシライブラリの利用可能性を比較した。
全体的な評判はおおむね好意的であったが、一部のXやRedditユーザーはまだストリーミングをサポートしていないことや、レート制限、トークン使用量のモニタリングなどの細かい点を含め、aisuite
のいくつかの制限をハイライトした。同様に、aisuite
が現在クラウドにデプロイされたカスタムLLMの使用をどの程度サポートしているかは不明である。いずれにせよ、このライブラリはまだ発展途上にあり、活発な開発が行われていることを忘れてはならない。
aisuite
はLLMのクロスコンパティビリティに対する唯一のソリューションではない。特にLiteLLMは同様のOpenAIライクなAPIを使用して複数のLLMを呼び出せ、プロジェクトごとのレート制限と予算制限のサポートも含むより成熟し機能が充実したソリューションである。さらに特筆すべきはOpenRouterで、独自のWebベースUIを提供している。
aisuite
は現在、OpenAI、Anthropic、Azure、Google、AWS、Groq、Mistral、HuggingFace、Ollamaをサポートしている。ライブラリはPythonで書かれており、開発者は使用したいLLMプロバイダーのAPIキーを所有している必要がある。ライブラリは安定性を最大化するために各LLMプロバイダーが公開しているAPIまたはSDKを使用している。現在は主にチャット補完にフォーカスしているが、将来的に新しいユースケースもカバーする予定だと保守担当者は述べている。