Skip to content

Commit 1065560

Browse files
committed
fix(vertex-ai-langchain): token count parsing
1 parent 84420c6 commit 1065560

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

langfuse/callback/langchain.py

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

1117+
# Vertex AI
1118+
if "prompt_tokens_details" in usage_model and isinstance(
1119+
usage_model["prompt_tokens_details"], list
1120+
):
1121+
prompt_tokens_details = usage_model.pop("prompt_tokens_details")
1122+
1123+
for item in prompt_tokens_details:
1124+
if (
1125+
isinstance(item, dict)
1126+
and "modality" in item
1127+
and "token_count" in item
1128+
):
1129+
usage_model[f"input_modality_{item['modality']}"] = item[
1130+
"token_count"
1131+
]
1132+
1133+
# Vertex AI
1134+
if "candidates_tokens_details" in usage_model and isinstance(
1135+
usage_model["candidates_tokens_details"], list
1136+
):
1137+
candidates_tokens_details = usage_model.pop("candidates_tokens_details")
1138+
1139+
for item in candidates_tokens_details:
1140+
if (
1141+
isinstance(item, dict)
1142+
and "modality" in item
1143+
and "token_count" in item
1144+
):
1145+
usage_model[f"output_modality_{item['modality']}"] = item[
1146+
"token_count"
1147+
]
1148+
1149+
# Vertex AI
1150+
if "cache_tokens_details" in usage_model and isinstance(
1151+
usage_model["cache_tokens_details"], list
1152+
):
1153+
cache_tokens_details = usage_model.pop("cache_tokens_details")
1154+
1155+
for item in cache_tokens_details:
1156+
if (
1157+
isinstance(item, dict)
1158+
and "modality" in item
1159+
and "token_count" in item
1160+
):
1161+
usage_model[f"cached_modality_{item['modality']}"] = item[
1162+
"token_count"
1163+
]
1164+
11171165
return usage_model if usage_model else None
11181166

11191167

0 commit comments

Comments
 (0)