Skip to content

Commit 0c16350

Browse files
authored
fix(langchain): anthropic usage parsing (#1194)
1 parent 9723fc6 commit 0c16350

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

langfuse/callback/langchain.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,12 @@
5656

5757
try:
5858
from langgraph.errors import GraphBubbleUp
59+
5960
CONTROL_FLOW_EXCEPTION_TYPES.add(GraphBubbleUp)
6061
except ImportError:
6162
pass
6263

64+
6365
class LangchainCallbackHandler(
6466
LangchainBaseCallbackHandler, LangfuseBaseCallbackHandler
6567
):
@@ -1173,6 +1175,16 @@ def _parse_usage_model(usage: typing.Union[pydantic.BaseModel, dict]):
11731175
"token_count"
11741176
]
11751177

1178+
usage_model = (
1179+
{
1180+
k: v
1181+
for k, v in usage_model.items()
1182+
if v is not None and not isinstance(v, str)
1183+
}
1184+
if isinstance(usage_model, dict)
1185+
else usage_model
1186+
)
1187+
11761188
return usage_model if usage_model else None
11771189

11781190

langfuse/extract_model.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,10 @@ def _extract_model_name(
106106

107107

108108
def _extract_model_from_repr_by_pattern(
109-
id: str, serialized: Optional[Dict[str, Any]], pattern: str, default: Optional[str] = None
109+
id: str,
110+
serialized: Optional[Dict[str, Any]],
111+
pattern: str,
112+
default: Optional[str] = None,
110113
):
111114
if serialized is None:
112115
return None

0 commit comments

Comments
 (0)