From 69d2c564c3350e85361b52b8e9d3bad17af971f7 Mon Sep 17 00:00:00 2001 From: Obinna Okafor Date: Wed, 4 Jun 2025 17:18:33 +0100 Subject: [PATCH 1/5] fix aws bedrock streaming bug --- .../instrumentation/aws_bedrock/patch.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/langtrace_python_sdk/instrumentation/aws_bedrock/patch.py b/src/langtrace_python_sdk/instrumentation/aws_bedrock/patch.py index 2f354d86..df938372 100644 --- a/src/langtrace_python_sdk/instrumentation/aws_bedrock/patch.py +++ b/src/langtrace_python_sdk/instrumentation/aws_bedrock/patch.py @@ -17,6 +17,7 @@ import json from wrapt import ObjectProxy +from itertools import tee from .stream_body_wrapper import BufferedStreamBody from functools import wraps from langtrace.trace_attributes import ( @@ -128,7 +129,9 @@ def traced_method(*args, **kwargs): response = original_method(*args, **kwargs) if span.is_recording(): - set_span_streaming_response(span, response) + stream1, stream2 = tee(response["stream"]) + set_span_streaming_response(span, stream1) + response["stream"] = stream2 return response return traced_method @@ -442,10 +445,10 @@ def _set_response_attributes(span, kwargs, result): ) -def set_span_streaming_response(span, response): +def set_span_streaming_response(span, response_stream): streaming_response = "" role = None - for event in response["stream"]: + for event in response_stream: if "messageStart" in event: role = event["messageStart"]["role"] elif "contentBlockDelta" in event: From c81b1711f6d3b0df7a92f30b5af2c859e497c064 Mon Sep 17 00:00:00 2001 From: Obinna Okafor Date: Wed, 4 Jun 2025 17:19:05 +0100 Subject: [PATCH 2/5] bump version --- src/langtrace_python_sdk/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/langtrace_python_sdk/version.py b/src/langtrace_python_sdk/version.py index 91d803c2..c10bada7 100644 --- a/src/langtrace_python_sdk/version.py +++ b/src/langtrace_python_sdk/version.py @@ -1 +1 @@ -__version__ = "3.8.18" +__version__ = "3.8.19" From cfb6224dcb83b633433252ea0320fd5c358d6db1 Mon Sep 17 00:00:00 2001 From: Obinna Okafor Date: Thu, 5 Jun 2025 10:12:51 +0100 Subject: [PATCH 3/5] add deprecated dependency --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index b1bf393d..00b3633c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,6 +34,7 @@ dependencies = [ "ujson>=5.10.0", "boto3", "setuptools", + "Deprecated==1.2.18", ] requires-python = ">=3.9" From 2c5919a4d73e8d8964b27765950c8c1b121f5835 Mon Sep 17 00:00:00 2001 From: Obinna Okafor Date: Thu, 5 Jun 2025 16:01:14 +0100 Subject: [PATCH 4/5] restrict current pinecone instrumentation to v6.0.2 --- pyproject.toml | 2 +- .../instrumentation/pinecone/instrumentation.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 00b3633c..2dfa5dea 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,7 +48,7 @@ dev = [ "qdrant-client", "graphlit-client", "python-dotenv", - "pinecone", + "pinecone>=3.1.0,<=6.0.2", "langchain", "langchain-community", "langchain-openai", diff --git a/src/langtrace_python_sdk/instrumentation/pinecone/instrumentation.py b/src/langtrace_python_sdk/instrumentation/pinecone/instrumentation.py index 7608e901..8ad3f27b 100644 --- a/src/langtrace_python_sdk/instrumentation/pinecone/instrumentation.py +++ b/src/langtrace_python_sdk/instrumentation/pinecone/instrumentation.py @@ -33,7 +33,7 @@ class PineconeInstrumentation(BaseInstrumentor): The PineconeInstrumentation class represents the Pinecone instrumentation""" def instrumentation_dependencies(self) -> Collection[str]: - return ["pinecone >= 3.1.0"] + return ["pinecone >= 3.1.0", "pinecone <= 6.0.2"] def _instrument(self, **kwargs): tracer_provider = kwargs.get("tracer_provider") From 8cd37a37b58ddc3ec5e7edee9af7b6fe4c99889f Mon Sep 17 00:00:00 2001 From: Obinna Okafor Date: Thu, 5 Jun 2025 16:42:59 +0100 Subject: [PATCH 5/5] hard code boto3 dependency version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2dfa5dea..260311b2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,7 +32,7 @@ dependencies = [ "transformers>=4.11.3", "sentry-sdk>=2.14.0", "ujson>=5.10.0", - "boto3", + "boto3==1.38.0", "setuptools", "Deprecated==1.2.18", ]