メインコンテンツへスキップ
Openrouter.ai は多くの LLM を扱う統合インターフェースであり、OpenAI GPT-4、Anthropic Claude、Google Gemini のような基盤モデルだけでなく、LLama-3、Mixtral などのオープンソースモデルやその他多数もサポートしています。一部のモデルは無料でも提供されています。 OpenRouter は REST API と OpenAI SDK 互換のインターフェース(ドキュメント)を提供しており、Weave はこれを自動的に検出してインテグレーションします(詳しくは OpenRouter のクイックスタートを参照してください)。 OpenAI SDK のコードを OpenRouter に切り替えるには、APIキーをあなたの OpenRouter API キーに変更し、base_urlhttps://openrouter.ai/api/v1 に、モデルを多数あるチャットモデルのいずれかに設定します。weave.init() を呼び出す際に、トレース用のプロジェクト名を指定してください。指定しない場合は、デフォルトのエンティティが使用されます。デフォルトのエンティティを確認または更新するには、W&B Models ドキュメントの User Settings を参照してください。
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ガイドを参照してください。