Passer au contenu principal
OpenRouter.ai est une interface unifiée pour de nombreux LLM, prenant en charge aussi bien des modèles de fondation comme OpenAI GPT-4, Anthropic Claude et Google Gemini que des modèles open source comme LLama-3, Mixtral et bien d’autres. Certains modèles sont même proposés gratuitement. OpenRouter propose une API REST et une compatibilité du SDK OpenAI (docs) que Weave détecte et intègre automatiquement (voir le guide de démarrage rapide d’OpenRouter pour plus de détails). Pour faire passer votre code OpenAI SDK à OpenRouter, remplacez la clé API par votre clé API OpenRouter, base_url par https://openrouter.ai/api/v1 et le modèle par l’un de ses nombreux modèles de chat. Lorsque vous appelez weave.init(), fournissez un nom de projet pour vos traces. S’il n’est pas spécifié, votre entité par défaut est utilisée. Pour trouver ou mettre à jour votre entité par défaut, référez-vous à Paramètres utilisateur dans la documentation W&B Models.
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, # Facultatif, pour inclure votre application dans les classements openrouter.ai.
    "X-Title": $YOUR_APP_NAME, # Facultatif. Apparaît dans les classements sur 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)
Bien qu’il s’agisse d’un exemple simple pour commencer, consultez notre guide OpenAI pour plus de détails sur la manière d’intégrer Weave à vos propres fonctions pour des cas d’utilisation plus complexes.