Skip to content

Commit c1b023e

Browse files
authored
fix(vertex-ai-langchain): token count parsing (#1181)
Co-authored-by: @jpaodev Co-authored-by: @ReneFabricius Co-authored-by: @t-miyak
1 parent e46d08d commit c1b023e

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

langfuse/callback/langchain.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1125,6 +1125,54 @@ def _parse_usage_model(usage: typing.Union[pydantic.BaseModel, dict]):
11251125
if "output" in usage_model:
11261126
usage_model["output"] = max(0, usage_model["output"] - value)
11271127

1128+
# Vertex AI
1129+
if "prompt_tokens_details" in usage_model and isinstance(
1130+
usage_model["prompt_tokens_details"], list
1131+
):
1132+
prompt_tokens_details = usage_model.pop("prompt_tokens_details")
1133+
1134+
for item in prompt_tokens_details:
1135+
if (
1136+
isinstance(item, dict)
1137+
and "modality" in item
1138+
and "token_count" in item
1139+
):
1140+
usage_model[f"input_modality_{item['modality']}"] = item[
1141+
"token_count"
1142+
]
1143+
1144+
# Vertex AI
1145+
if "candidates_tokens_details" in usage_model and isinstance(
1146+
usage_model["candidates_tokens_details"], list
1147+
):
1148+
candidates_tokens_details = usage_model.pop("candidates_tokens_details")
1149+
1150+
for item in candidates_tokens_details:
1151+
if (
1152+
isinstance(item, dict)
1153+
and "modality" in item
1154+
and "token_count" in item
1155+
):
1156+
usage_model[f"output_modality_{item['modality']}"] = item[
1157+
"token_count"
1158+
]
1159+
1160+
# Vertex AI
1161+
if "cache_tokens_details" in usage_model and isinstance(
1162+
usage_model["cache_tokens_details"], list
1163+
):
1164+
cache_tokens_details = usage_model.pop("cache_tokens_details")
1165+
1166+
for item in cache_tokens_details:
1167+
if (
1168+
isinstance(item, dict)
1169+
and "modality" in item
1170+
and "token_count" in item
1171+
):
1172+
usage_model[f"cached_modality_{item['modality']}"] = item[
1173+
"token_count"
1174+
]
1175+
11281176
return usage_model if usage_model else None
11291177

11301178

0 commit comments

Comments
 (0)