編集

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!

編集