Skip to content

Commit 923b0ff

Browse files
authored
fix(langchain): token counts for vertex (#1197)
1 parent 3dd812a commit 923b0ff

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

langfuse/langchain/CallbackHandler.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -844,9 +844,11 @@ def _parse_usage_model(usage: typing.Union[pydantic.BaseModel, dict]):
844844
and "modality" in item
845845
and "token_count" in item
846846
):
847-
usage_model[f"input_modality_{item['modality']}"] = item[
848-
"token_count"
849-
]
847+
value = item["token_count"]
848+
usage_model[f"input_modality_{item['modality']}"] = value
849+
850+
if "input" in usage_model:
851+
usage_model["input"] = max(0, usage_model["input"] - value)
850852

851853
# Vertex AI
852854
if "candidates_tokens_details" in usage_model and isinstance(
@@ -860,9 +862,11 @@ def _parse_usage_model(usage: typing.Union[pydantic.BaseModel, dict]):
860862
and "modality" in item
861863
and "token_count" in item
862864
):
863-
usage_model[f"output_modality_{item['modality']}"] = item[
864-
"token_count"
865-
]
865+
value = item["token_count"]
866+
usage_model[f"output_modality_{item['modality']}"] = value
867+
868+
if "output" in usage_model:
869+
usage_model["output"] = max(0, usage_model["output"] - value)
866870

867871
# Vertex AI
868872
if "cache_tokens_details" in usage_model and isinstance(
@@ -876,9 +880,11 @@ def _parse_usage_model(usage: typing.Union[pydantic.BaseModel, dict]):
876880
and "modality" in item
877881
and "token_count" in item
878882
):
879-
usage_model[f"cached_modality_{item['modality']}"] = item[
880-
"token_count"
881-
]
883+
value = item["token_count"]
884+
usage_model[f"cached_modality_{item['modality']}"] = value
885+
886+
if "input" in usage_model:
887+
usage_model["input"] = max(0, usage_model["input"] - value)
882888

883889
usage_model = {k: v for k, v in usage_model.items() if not isinstance(v, str)}
884890

0 commit comments

Comments
 (0)