Skip to content

Commit 3bb9c43

Browse files
committed
push
1 parent 7036a75 commit 3bb9c43

1 file changed

Lines changed: 23 additions & 10 deletions

File tree

langfuse/langchain/CallbackHandler.py

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -875,15 +875,28 @@ def _parse_usage_model(usage: typing.Union[pydantic.BaseModel, dict]) -> Any:
875875
usage_model = cast(Dict, usage.copy()) # Copy all existing key-value pairs
876876

877877
# Skip OpenAI usage types as they are handled server side
878-
if all(
879-
openai_key in usage_model
880-
for openai_key in [
881-
"prompt_tokens",
882-
"completion_tokens",
883-
"total_tokens",
884-
"prompt_tokens_details",
885-
"completion_tokens_details",
886-
]
878+
if (
879+
all(
880+
openai_key in usage_model
881+
for openai_key in [
882+
"prompt_tokens",
883+
"completion_tokens",
884+
"total_tokens",
885+
"prompt_tokens_details",
886+
"completion_tokens_details",
887+
]
888+
)
889+
and len(usage_model.keys()) == 5
890+
) or (
891+
all(
892+
openai_key in usage_model
893+
for openai_key in [
894+
"prompt_tokens",
895+
"completion_tokens",
896+
"total_tokens",
897+
]
898+
)
899+
and len(usage_model.keys()) == 3
887900
):
888901
return usage_model
889902

@@ -971,7 +984,7 @@ def _parse_usage_model(usage: typing.Union[pydantic.BaseModel, dict]) -> Any:
971984
if "input" in usage_model:
972985
usage_model["input"] = max(0, usage_model["input"] - value)
973986

974-
usage_model = {k: v for k, v in usage_model.items() if type(v) is int}
987+
usage_model = {k: v for k, v in usage_model.items() if isinstance(v, int)}
975988

976989
return usage_model if usage_model else None
977990

0 commit comments

Comments
 (0)