From f4881237eb230e94f00945f7e016597cefde5a4b Mon Sep 17 00:00:00 2001 From: Hassieb Pakzad <68423100+hassiebp@users.noreply.github.com> Date: Mon, 3 Feb 2025 11:41:57 +0100 Subject: [PATCH 1/3] fix(openai): handle usage object without mutation --- langfuse/openai.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langfuse/openai.py b/langfuse/openai.py index d7e250444..d780e0de1 100644 --- a/langfuse/openai.py +++ b/langfuse/openai.py @@ -460,7 +460,7 @@ def _parse_usage(usage=None): if usage is None: return - usage_dict = usage.copy() if isinstance(usage, dict) else usage.__dict__ + usage_dict = usage.copy() if isinstance(usage, dict) else usage.__dict__.copy() for tokens_details in ["prompt_tokens_details", "completion_tokens_details"]: if tokens_details in usage_dict and usage_dict[tokens_details] is not None: From fb02aab11b13e9fcb7654af732ca996ec6825172 Mon Sep 17 00:00:00 2001 From: Hassieb Pakzad <68423100+hassiebp@users.noreply.github.com> Date: Mon, 3 Feb 2025 13:28:31 +0100 Subject: [PATCH 2/3] fix test --- tests/test_openai.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_openai.py b/tests/test_openai.py index 5dc991ef4..02cb64307 100644 --- a/tests/test_openai.py +++ b/tests/test_openai.py @@ -70,7 +70,7 @@ def test_openai_chat_completion(): {"content": "1 + 1 = ", "role": "user"}, ] assert generation.data[0].type == "GENERATION" - assert generation.data[0].model == "gpt-3.5-turbo-0125" + assert "gpt-3.5-turbo-0125" in generation.data[0].model assert generation.data[0].start_time is not None assert generation.data[0].end_time is not None assert generation.data[0].start_time < generation.data[0].end_time @@ -135,7 +135,7 @@ def test_openai_chat_completion_stream(): assert generation.data[0].input == [{"content": "1 + 1 = ", "role": "user"}] assert generation.data[0].type == "GENERATION" - assert generation.data[0].model == "gpt-3.5-turbo-0125" + assert "gpt-3.5-turbo-0125" in generation.data[0].model assert generation.data[0].start_time is not None assert generation.data[0].end_time is not None assert generation.data[0].start_time < generation.data[0].end_time From 979ce0b3051617c29bce0272e87521433806c658 Mon Sep 17 00:00:00 2001 From: Hassieb Pakzad <68423100+hassiebp@users.noreply.github.com> Date: Mon, 3 Feb 2025 13:50:23 +0100 Subject: [PATCH 3/3] fix test --- tests/test_openai.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_openai.py b/tests/test_openai.py index 02cb64307..31176bfae 100644 --- a/tests/test_openai.py +++ b/tests/test_openai.py @@ -536,7 +536,7 @@ def test_openai_completion(): assert completion.choices[0].text == generation.data[0].output assert generation.data[0].input == "1 + 1 = " assert generation.data[0].type == "GENERATION" - assert generation.data[0].model == "gpt-3.5-turbo-instruct" + assert "gpt-3.5-turbo-instruct" in generation.data[0].model assert generation.data[0].start_time is not None assert generation.data[0].end_time is not None assert generation.data[0].start_time < generation.data[0].end_time @@ -587,7 +587,7 @@ def test_openai_completion_stream(): assert generation.data[0].input == "1 + 1 = " assert generation.data[0].type == "GENERATION" - assert generation.data[0].model == "gpt-3.5-turbo-instruct" + assert "gpt-3.5-turbo-instruct" in generation.data[0].model assert generation.data[0].start_time is not None assert generation.data[0].end_time is not None assert generation.data[0].start_time < generation.data[0].end_time