any-llm-go公開、複数プロバイダのLLMを統一インフェースで利用可能
Mozillaが複数プロバイダ(OpenAI、Anthropic、Mistral等)のLLMを単一のインターフェースで実行できるGo言語向けライブラリ「any-llm-go」をリリース。Python版の「any-llm」の思想を引き継ぎつつ、Goの特性に合わせて設計されている。
主な特徴:
- 統一されたインターフェース
- OpenAI、Anthropic、Mistralなど8つのプロバイダに対応
- レスポンスの形式やエラーの意味付けを正規化し、プロバイダ間の違いを吸収
- 環境変数や設定のみでプロバイダの切り替えが可能
- Go向けの設計
- ストリーミング処理にチャネルを使用
- エラーは型付きのセンティネルエラー(
ErrRateLimitなど)として正規化 - Functional Optionsパターンを用いた設定や
context.Contextに対応
- OpenAI互換ベース
- Groq、DeepSeekなどOpenAI互換APIを持つプロバイダへの追加対応が約50行で可能
利用例:
go
import (
anyllm "github.com/mozilla-ai/any-llm-go"
"github.com/mozilla-ai/any-llm-go/providers/openai"
)
provider, err := openai.New()
if err != nil {
log.Fatal(err)
}
response, err := provider.Completion(ctx, anyllm.CompletionParams{
Model: "gpt-4o-mini",
Messages: []anyllm.Message{
{Role: anyllm.RoleUser, Content: "Hello!"},
},
})出展:Run OpenAI, Claude, Mistral, llamafile, and more from one interface, now in Go!