メインコンテンツへスキップ
多くの開発者は、Llama 3、Mixtral、Gemma、Phi などのオープンソースモデルを手元のハードウェアで実行しています。Weave は、OpenAI SDK との互換性を備えていれば、複数のローカルモデルランナーを標準でサポートします。 このガイドでは、ローカルで実行しているモデルへの Call を Weave でトレースし、ホスト型の LLM プロバイダと同じように入力、出力、メタデータを取得する方法を説明します。対象は、自分のマシンでオープンソースモデルを実行し、それらの Call の可観測性を確保したい開発者です。

ローカルモデルの関数を @weave.op() でラップする

ローカルモデルが OpenAI 互換のランナー経由でアクセスされていない場合でも、独自のモデル呼び出し関数をラップすることでトレースを取得できます。weave.init('<your-project-name>') で Weave を初期化し、LLM への Call を weave.op() でラップするだけで、任意の LLM を簡単に Weave と統合できます。詳しくは、トレースガイド を参照してください。

ローカルモデルを使用するように OpenAI SDK のコードを更新する

ローカルモデルのランナーが OpenAI SDK をサポートしている場合は、2 つ変更するだけで、既存の OpenAI クライアントの接続先をそのランナーに向けられます。 主な変更点は、openai.OpenAI() の初期化時に base_url パラメーターを指定することです。これにより、OpenAI SDK は OpenAI がホストする API ではなく、ローカルサーバーにリクエストを送信します。
client = openai.OpenAI(
    base_url="http://localhost:1234",
)
ローカルモデルの場合、api_key には任意の string を指定できますが、必ず明示的に上書きする必要があります。そうしないと、OpenAI SDK が環境変数から api_key を読み取ってエラーを表示します。

サポートされているローカルモデルランナー

以下のランナーを使用すると、Hugging Face からモデルをダウンロードし、お使いのコンピュータで実行できます。各ランナーは OpenAI 互換のエンドポイントを提供しているため、前述の変更を使用して OpenAI SDK の接続先として指定できます。