diff --git a/langfuse/langchain/utils.py b/langfuse/langchain/utils.py index 5880e9624..abbd9e70d 100644 --- a/langfuse/langchain/utils.py +++ b/langfuse/langchain/utils.py @@ -53,12 +53,25 @@ def _extract_model_name( return kwargs.get("invocation_params").get("model_name") deployment_name = None - if serialized.get("kwargs").get("openai_api_version"): - deployment_name = serialized.get("kwargs").get("deployment_version") deployment_version = None + + if serialized.get("kwargs").get("openai_api_version"): + deployment_version = serialized.get("kwargs").get("deployment_version") + if serialized.get("kwargs").get("deployment_name"): deployment_name = serialized.get("kwargs").get("deployment_name") - return deployment_name + "-" + deployment_version + + if not isinstance(deployment_name, str): + return None + + if not isinstance(deployment_version, str): + return deployment_name + + return ( + deployment_name + "-" + deployment_version + if deployment_version not in deployment_name + else deployment_name + ) # Third, for some models, we are unable to extract the model by a path in an object. Langfuse provides us with a string representation of the model pbjects # We use regex to extract the model from the repr string