Skip to content

Commit 4d47959

Browse files
committed
fix(openai): allow for none values in usage details
1 parent 40cb0e1 commit 4d47959

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

langfuse/openai.py

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
from inspect import isclass
2525
from typing import Optional
2626

27-
2827
import openai.resources
2928
from openai._types import NotGiven
3029
from packaging.version import Version
@@ -452,7 +451,29 @@ def _create_langfuse_update(
452451
update["model"] = model
453452

454453
if usage is not None:
455-
update["usage"] = usage
454+
usage_dict = usage.copy() if isinstance(usage, dict) else usage.__dict__
455+
456+
if (
457+
"prompt_tokens_details" in usage_dict
458+
and usage_dict["prompt_tokens_details"] is not None
459+
):
460+
usage_dict["prompt_tokens_details"] = {
461+
k: v
462+
for k, v in usage_dict["prompt_tokens_details"].entries()
463+
if v is not None
464+
}
465+
466+
if (
467+
"completion_tokens_details" in usage_dict
468+
and usage_dict["completion_tokens_details"] is not None
469+
):
470+
usage_dict["completion_tokens_details"] = {
471+
k: v
472+
for k, v in usage_dict["completion_tokens_details"].entries()
473+
if v is not None
474+
}
475+
476+
update["usage"] = usage_dict
456477

457478
generation.update(**update)
458479

0 commit comments

Comments
 (0)