Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-ios-app-updates.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Weave suit les coûts des appels LLM de deux façons :
- Suivi automatique des coûts : pour les intégrations prises en charge, Weave capture l’utilisation des jetons à partir de la réponse de l’API et applique la tarification intégrée du modèle, sans code supplémentaire.
- Suivi personnalisé des coûts : pour les modèles affinés, les modèles auto-hébergés ou les modèles auxquels Weave ne s’intègre pas automatiquement, configurez Weave pour suivre des coûts personnalisés à l’aide des méthodes d’API disponibles.
Le SDK TypeScript de Weave ne prend pas en charge le suivi des coûts pour le moment.
Utiliser le suivi automatique des coûts
Lorsque vous appelez weave.init() et utilisez une intégration LLM prise en charge comme OpenAI, Anthropic, Cohere ou Mistral, Weave enregistre automatiquement la consommation de jetons et calcule le coût de chaque appel. Les coûts apparaissent dans l’arborescence de trace et dans le tableau des appels de l’interface Weave. Ils sont également disponibles par code dans call.summary["weave"]["costs"] lorsque vous exécutez une requête sur les appels avec le paramètre include_costs défini sur true.
Le suivi automatique des coûts nécessite deux conditions :
- Le fournisseur LLM doit être une intégration prise en charge.
- La réponse de l’API doit inclure l’utilisation des jetons (la plupart des fournisseurs la renvoient par défaut).
Si l’une de ces conditions n’est pas remplie, utilisez plutôt le suivi des coûts personnalisé.
L’exemple suivant montre comment récupérer par code les données de coût automatiques :
import weave
from openai import OpenAI
weave.init("your-team/project-name")
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "What is 2 + 2?"}],
)
import time
time.sleep(2)
# Récupérer l'instance actuelle du client Weave
weave_client = weave.get_client()
# Accéder aux appels de l'instance et à leurs coûts
calls = list(weave_client.get_calls(include_costs=True, limit=1))
call = calls[0]
# Accéder à la synthèse de l'appel et récupérer les champs de coûts disponibles
costs = call.summary.get("weave", {}).get("costs", {})
if not costs:
print("No costs found in summary.weave.costs")
for model, cost in costs.items():
print(f"Model: {model}")
print(f" Input cost: ${cost['prompt_tokens_total_cost']:.6f}")
print(f" Output cost: ${cost['completion_tokens_total_cost']:.6f}")
Ajout d’un coût personnalisé
Vous pouvez ajouter un coût personnalisé à l’aide de la méthode add_cost.
Les trois champs requis sont llm_id, prompt_token_cost et completion_token_cost.
llm_id est le nom du LLM (par ex. gpt-4o). prompt_token_cost et completion_token_cost correspondent au coût par jeton du LLM (si le prix du LLM est indiqué par million de jetons, veillez à convertir la valeur).
Vous pouvez également définir effective_date sur une valeur datetime afin que le coût prenne effet à une date précise ; par défaut, la date du jour est utilisée.
import weave
from datetime import datetime
client = weave.init("your-team/project-name")
client.add_cost(
llm_id="your_model_name",
prompt_token_cost=0.01,
completion_token_cost=0.02
)
client.add_cost(
llm_id="your_model_name",
prompt_token_cost=10,
completion_token_cost=20,
effective_date=datetime(2025, 4, 22),
)
Interroger les coûts personnalisés
Vous pouvez interroger les coûts à l’aide de la méthode query_costs.
Il existe plusieurs façons d’interroger les coûts : vous pouvez fournir un ID de coût unique ou une liste de noms de modèles LLM.
import weave
client = weave.init("your-team/project-name")
costs = client.query_costs(llm_ids=["your_model_name"])
cost = client.query_costs(costs[0].id)
Purger un coût personnalisé
Vous pouvez purger un coût personnalisé à l’aide de la méthode purge_costs. Transmettez une liste d’ID de coût, puis les coûts correspondant à ces ID seront purgés.
import weave
client = weave.init("your-team/project-name")
costs = client.query_costs(llm_ids=["your_model_name"])
client.purge_costs([cost.id for cost in costs])
Calcul des coûts personnalisés d’un projet
Vous pouvez calculer les coûts d’un projet à l’aide de get_calls() avec include_costs=True.
import weave
weave.init("your-team/project-name")
@weave.op()
def get_costs_for_project(project_name: str):
total_cost = 0
requests = 0
client = weave.init(project_name)
calls = list(
client.get_calls(filter={"trace_roots_only": True}, include_costs=True)
)
for call in calls:
if call.summary["weave"] is not None and call.summary["weave"].get("costs", None) is not None:
for k, cost in call.summary["weave"]["costs"].items():
requests += cost["requests"]
total_cost += cost["prompt_tokens_total_cost"]
total_cost += cost["completion_tokens_total_cost"]
return {
"total_cost": total_cost,
"requests": requests,
"calls": len(calls),
}
get_costs_for_project("my_custom_cost_model")
Consultez notre cookbook sur la configuration des coûts d’un modèle personnalisé.