メインコンテンツへスキップ
このガイドでは、OpenRouter 経由でアクセスする LLM への Call を Weave で自動的にトレースする方法を説明します。これにより、単一のダッシュボードからアプリケーションのモデル使用状況をモニター、デバッグ、評価できます。 OpenRouter は多数の LLM に対応する統一インターフェースで、OpenAI GPT-4、Anthropic Claude、Google Gemini などの基盤モデルに加え、Llama-3、Mixtral、その他 のオープンソースモデルもサポートしています。一部のモデルは無料で提供されています。 OpenRouter は REST API と、Weave が自動的に検出して連携する OpenAI SDK との互換性 を提供しています。詳細については、OpenRouter の クイックスタートガイド を参照してください。Weave は OpenAI SDK を検出するため、既存の OpenAI コードをいくつかの設定変更だけでそのまま再利用できます。 OpenAI SDK のコードを OpenRouter に切り替えるには、APIキーを OpenRouter API キーに変更し、base_urlhttps://openrouter.ai/api/v1 に設定し、モデルを利用可能な chat models のいずれかに設定します。weave.init() を呼び出す際は、トレース用のプロジェクト名を指定してください。指定しない場合、Weave はデフォルトの entity を使用します。デフォルトの entity を確認または更新するには、W&B Models ドキュメントの User Settings を参照してください。次の Example を実行すると、Weave は OpenRouter への Call を Weave プロジェクト内のトレースとして取得します。
import os
import openai
import weave

weave.init('openrouter-weave')

system_content = "You are a travel agent. Be descriptive and helpful."
user_content = "Tell me about San Francisco"

client = openai.OpenAI(
    api_key=os.environ.get("OPENROUTER_API_KEY"),
    base_url="https://openrouter.ai/api/v1",
)
chat_completion = client.chat.completions.create(
    extra_headers={
    "HTTP-Referer": "[YOUR-SITE-URL]", # 省略可。openrouter.ai のランキングにアプリを掲載する場合に指定します。
    "X-Title": "[YOUR-APP-NAME]", # 省略可。openrouter.ai のランキングに表示されます。
    },
    model="meta-llama/llama-3.1-8b-instruct:free",
    messages=[
        {"role": "system", "content": system_content},
        {"role": "user", "content": user_content},
    ],
    temperature=0.7,
    max_tokens=1024,
)
response = chat_completion.choices[0].message.content
print("Model response:\n", response)
これは使い始めるための基本的な例ですが、より複雑なユースケースで独自の関数を Weave と統合する方法の詳細については、OpenAI ガイドを参照してください。