Skip to content

Commit bd5f72f

Browse files
authored
feat(openai): add openrouter cost tracking (#1311)
1 parent 827fd1d commit bd5f72f

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

langfuse/openai.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,7 @@ def _create_langfuse_update(
494494

495495
if usage is not None:
496496
update["usage_details"] = _parse_usage(usage)
497+
update["cost_details"] = _parse_cost(usage)
497498

498499
generation.update(**update)
499500

@@ -523,6 +524,18 @@ def _parse_usage(usage: Optional[Any] = None) -> Any:
523524
return usage_dict
524525

525526

527+
def _parse_cost(usage: Optional[Any] = None) -> Any:
528+
if usage is None:
529+
return
530+
531+
# OpenRouter is returning total cost of the invocation
532+
# https://openrouter.ai/docs/use-cases/usage-accounting#cost-breakdown
533+
if hasattr(usage, "cost") and isinstance(getattr(usage, "cost"), float):
534+
return {"total": getattr(usage, "cost")}
535+
536+
return None
537+
538+
526539
def _extract_streamed_response_api_response(chunks: Any) -> Any:
527540
completion, model, usage = None, None, None
528541
metadata = {}

0 commit comments

Comments
 (0)