langtrace-python-sdk 2.1.7__py3-none-any.whl → 2.1.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. langtrace_python_sdk/constants/__init__.py +1 -0
  2. langtrace_python_sdk/instrumentation/anthropic/patch.py +4 -1
  3. langtrace_python_sdk/instrumentation/chroma/patch.py +4 -1
  4. langtrace_python_sdk/instrumentation/cohere/patch.py +7 -4
  5. langtrace_python_sdk/instrumentation/groq/patch.py +5 -2
  6. langtrace_python_sdk/instrumentation/langchain/patch.py +2 -1
  7. langtrace_python_sdk/instrumentation/langchain_community/patch.py +4 -1
  8. langtrace_python_sdk/instrumentation/langchain_core/patch.py +5 -2
  9. langtrace_python_sdk/instrumentation/langgraph/patch.py +4 -1
  10. langtrace_python_sdk/instrumentation/llamaindex/patch.py +5 -2
  11. langtrace_python_sdk/instrumentation/openai/patch.py +9 -6
  12. langtrace_python_sdk/instrumentation/pinecone/patch.py +4 -1
  13. langtrace_python_sdk/instrumentation/qdrant/patch.py +4 -1
  14. langtrace_python_sdk/instrumentation/weaviate/patch.py +4 -1
  15. langtrace_python_sdk/langtrace.py +2 -0
  16. langtrace_python_sdk/utils/__init__.py +8 -0
  17. langtrace_python_sdk/utils/sdk_version_checker.py +53 -0
  18. langtrace_python_sdk/version.py +1 -1
  19. {langtrace_python_sdk-2.1.7.dist-info → langtrace_python_sdk-2.1.9.dist-info}/METADATA +1 -1
  20. {langtrace_python_sdk-2.1.7.dist-info → langtrace_python_sdk-2.1.9.dist-info}/RECORD +29 -28
  21. tests/anthropic/test_anthropic.py +4 -2
  22. tests/cohere/test_cohere_chat.py +4 -2
  23. tests/cohere/test_cohere_embed.py +5 -5
  24. tests/cohere/test_cohere_rerank.py +4 -7
  25. tests/openai/test_chat_completion.py +7 -13
  26. tests/openai/test_image_generation.py +5 -9
  27. tests/pinecone/test_pinecone.py +5 -9
  28. {langtrace_python_sdk-2.1.7.dist-info → langtrace_python_sdk-2.1.9.dist-info}/WHEEL +0 -0
  29. {langtrace_python_sdk-2.1.7.dist-info → langtrace_python_sdk-2.1.9.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1 @@
1
+ LANGTRACE_SDK_NAME = "langtrace-python-sdk"
@@ -26,6 +26,9 @@ from langtrace_python_sdk.constants.instrumentation.common import (
26
26
  LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
27
27
  SERVICE_PROVIDERS,
28
28
  )
29
+ from importlib_metadata import version as v
30
+
31
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
29
32
 
30
33
 
31
34
  def messages_create(original_method, version, tracer):
@@ -54,7 +57,7 @@ def messages_create(original_method, version, tracer):
54
57
  "langtrace.service.name": service_provider,
55
58
  "langtrace.service.type": "llm",
56
59
  "langtrace.service.version": version,
57
- "langtrace.version": "1.0.0",
60
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
58
61
  "url.full": base_url,
59
62
  "llm.api": APIS["MESSAGES_CREATE"]["ENDPOINT"],
60
63
  "llm.model": kwargs.get("model"),
@@ -27,6 +27,9 @@ from langtrace_python_sdk.constants.instrumentation.common import (
27
27
  SERVICE_PROVIDERS,
28
28
  )
29
29
  import json
30
+ from importlib_metadata import version as v
31
+
32
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
30
33
 
31
34
 
32
35
  def collection_patch(method, version, tracer):
@@ -44,7 +47,7 @@ def collection_patch(method, version, tracer):
44
47
  "langtrace.service.name": service_provider,
45
48
  "langtrace.service.type": "vectordb",
46
49
  "langtrace.service.version": version,
47
- "langtrace.version": "1.0.0",
50
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
48
51
  "db.system": "chromadb",
49
52
  "db.operation": api["OPERATION"],
50
53
  "db.query": json.dumps(kwargs.get("query")),
@@ -26,6 +26,9 @@ from langtrace_python_sdk.constants.instrumentation.common import (
26
26
  LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
27
27
  SERVICE_PROVIDERS,
28
28
  )
29
+ from importlib_metadata import version as v
30
+
31
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
29
32
 
30
33
 
31
34
  def rerank(original_method, version, tracer):
@@ -40,7 +43,7 @@ def rerank(original_method, version, tracer):
40
43
  "langtrace.service.name": service_provider,
41
44
  "langtrace.service.type": "llm",
42
45
  "langtrace.service.version": version,
43
- "langtrace.version": "1.0.0",
46
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
44
47
  "url.full": APIS["RERANK"]["URL"],
45
48
  "llm.api": APIS["RERANK"]["ENDPOINT"],
46
49
  "llm.model": kwargs.get("model"),
@@ -132,7 +135,7 @@ def embed(original_method, version, tracer):
132
135
  "langtrace.service.name": service_provider,
133
136
  "langtrace.service.type": "llm",
134
137
  "langtrace.service.version": version,
135
- "langtrace.version": "1.0.0",
138
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
136
139
  "url.full": APIS["EMBED"]["URL"],
137
140
  "llm.api": APIS["EMBED"]["ENDPOINT"],
138
141
  "llm.model": kwargs.get("model"),
@@ -242,7 +245,7 @@ def chat_create(original_method, version, tracer):
242
245
  "langtrace.service.name": service_provider,
243
246
  "langtrace.service.type": "llm",
244
247
  "langtrace.service.version": version,
245
- "langtrace.version": "1.0.0",
248
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
246
249
  "url.full": APIS["CHAT_CREATE"]["URL"],
247
250
  "llm.api": APIS["CHAT_CREATE"]["ENDPOINT"],
248
251
  "llm.model": (
@@ -437,7 +440,7 @@ def chat_stream(original_method, version, tracer):
437
440
  "langtrace.service.name": service_provider,
438
441
  "langtrace.service.type": "llm",
439
442
  "langtrace.service.version": version,
440
- "langtrace.version": "1.0.0",
443
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
441
444
  "url.full": APIS["CHAT_STREAM"]["URL"],
442
445
  "llm.api": APIS["CHAT_STREAM"]["ENDPOINT"],
443
446
  "llm.model": (
@@ -27,6 +27,9 @@ from langtrace_python_sdk.constants.instrumentation.common import (
27
27
  )
28
28
  from langtrace_python_sdk.constants.instrumentation.groq import APIS
29
29
  from langtrace_python_sdk.utils.llm import calculate_prompt_tokens, estimate_tokens
30
+ from importlib_metadata import version as v
31
+
32
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
30
33
 
31
34
 
32
35
  def chat_completions_create(original_method, version, tracer):
@@ -80,7 +83,7 @@ def chat_completions_create(original_method, version, tracer):
80
83
  "langtrace.service.name": service_provider,
81
84
  "langtrace.service.type": "llm",
82
85
  "langtrace.service.version": version,
83
- "langtrace.version": "1.0.0",
86
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
84
87
  "url.full": base_url,
85
88
  "llm.api": APIS["CHAT_COMPLETION"]["ENDPOINT"],
86
89
  "llm.prompts": json.dumps(llm_prompts),
@@ -340,7 +343,7 @@ def async_chat_completions_create(original_method, version, tracer):
340
343
  "langtrace.service.name": service_provider,
341
344
  "langtrace.service.type": "llm",
342
345
  "langtrace.service.version": version,
343
- "langtrace.version": "1.0.0",
346
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
344
347
  "url.full": base_url,
345
348
  "llm.api": APIS["CHAT_COMPLETION"]["ENDPOINT"],
346
349
  "llm.prompts": json.dumps(llm_prompts),
@@ -25,6 +25,7 @@ from langtrace_python_sdk.constants.instrumentation.common import (
25
25
  LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
26
26
  SERVICE_PROVIDERS,
27
27
  )
28
+ from importlib_metadata import version as v
28
29
 
29
30
 
30
31
  def generic_patch(
@@ -43,7 +44,7 @@ def generic_patch(
43
44
  "langtrace.service.name": service_provider,
44
45
  "langtrace.service.type": "framework",
45
46
  "langtrace.service.version": version,
46
- "langtrace.version": "1.0.0",
47
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
47
48
  "langchain.task.name": task,
48
49
  **(extra_attributes if extra_attributes is not None else {}),
49
50
  }
@@ -25,6 +25,9 @@ from langtrace_python_sdk.constants.instrumentation.common import (
25
25
  LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
26
26
  SERVICE_PROVIDERS,
27
27
  )
28
+ from importlib_metadata import version as v
29
+
30
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
28
31
 
29
32
 
30
33
  def generic_patch(
@@ -39,7 +42,7 @@ def generic_patch(
39
42
  "langtrace.service.name": service_provider,
40
43
  "langtrace.service.type": "framework",
41
44
  "langtrace.service.version": version,
42
- "langtrace.version": "1.0.0",
45
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
43
46
  "langchain.task.name": task,
44
47
  **(extra_attributes if extra_attributes is not None else {}),
45
48
  }
@@ -25,6 +25,9 @@ from langtrace_python_sdk.constants.instrumentation.common import (
25
25
  LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
26
26
  SERVICE_PROVIDERS,
27
27
  )
28
+ from importlib_metadata import version as v
29
+
30
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
28
31
 
29
32
 
30
33
  def generic_patch(
@@ -49,7 +52,7 @@ def generic_patch(
49
52
  "langtrace.service.name": service_provider,
50
53
  "langtrace.service.type": "framework",
51
54
  "langtrace.service.version": version,
52
- "langtrace.version": "1.0.0",
55
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
53
56
  "langchain.task.name": task,
54
57
  **(extra_attributes if extra_attributes is not None else {}),
55
58
  }
@@ -115,7 +118,7 @@ def runnable_patch(
115
118
  "langtrace.service.name": service_provider,
116
119
  "langtrace.service.type": "framework",
117
120
  "langtrace.service.version": version,
118
- "langtrace.version": "1.0.0",
121
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
119
122
  "langchain.task.name": task,
120
123
  }
121
124
 
@@ -25,6 +25,9 @@ from langtrace_python_sdk.constants.instrumentation.common import (
25
25
  LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
26
26
  SERVICE_PROVIDERS,
27
27
  )
28
+ from importlib_metadata import version as v
29
+
30
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
28
31
 
29
32
 
30
33
  def patch_graph_methods(method_name, tracer, version):
@@ -37,7 +40,7 @@ def patch_graph_methods(method_name, tracer, version):
37
40
  "langtrace.service.name": service_provider,
38
41
  "langtrace.service.type": "framework",
39
42
  "langtrace.service.version": version,
40
- "langtrace.version": "1.0.0",
43
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
41
44
  **(extra_attributes if extra_attributes is not None else {}),
42
45
  }
43
46
 
@@ -23,6 +23,9 @@ from langtrace_python_sdk.constants.instrumentation.common import (
23
23
  LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
24
24
  SERVICE_PROVIDERS,
25
25
  )
26
+ from importlib_metadata import version as v
27
+
28
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
26
29
 
27
30
 
28
31
  def generic_patch(method, task, tracer, version):
@@ -38,7 +41,7 @@ def generic_patch(method, task, tracer, version):
38
41
  "langtrace.service.name": service_provider,
39
42
  "langtrace.service.type": "framework",
40
43
  "langtrace.service.version": version,
41
- "langtrace.version": "1.0.0",
44
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
42
45
  "llamaindex.task.name": task,
43
46
  **(extra_attributes if extra_attributes is not None else {}),
44
47
  }
@@ -80,7 +83,7 @@ def async_generic_patch(method, task, tracer, version):
80
83
  "langtrace.service.name": service_provider,
81
84
  "langtrace.service.type": "framework",
82
85
  "langtrace.service.version": version,
83
- "langtrace.version": "1.0.0",
86
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
84
87
  "llamaindex.task.name": task,
85
88
  **(extra_attributes if extra_attributes is not None else {}),
86
89
  }
@@ -27,6 +27,9 @@ from langtrace_python_sdk.constants.instrumentation.common import (
27
27
  )
28
28
  from langtrace_python_sdk.constants.instrumentation.openai import APIS
29
29
  from langtrace_python_sdk.utils.llm import calculate_prompt_tokens, estimate_tokens
30
+ from importlib_metadata import version as v
31
+
32
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
30
33
 
31
34
 
32
35
  def images_generate(original_method, version, tracer):
@@ -48,7 +51,7 @@ def images_generate(original_method, version, tracer):
48
51
  "langtrace.service.name": service_provider,
49
52
  "langtrace.service.type": "llm",
50
53
  "langtrace.service.version": version,
51
- "langtrace.version": "1.0.0",
54
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
52
55
  "url.full": base_url,
53
56
  "llm.api": APIS["IMAGES_GENERATION"]["ENDPOINT"],
54
57
  "llm.model": kwargs.get("model"),
@@ -125,7 +128,7 @@ def async_images_generate(original_method, version, tracer):
125
128
  "langtrace.service.name": service_provider,
126
129
  "langtrace.service.type": "llm",
127
130
  "langtrace.service.version": version,
128
- "langtrace.version": "1.0.0",
131
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
129
132
  "url.full": base_url,
130
133
  "llm.api": APIS["IMAGES_GENERATION"]["ENDPOINT"],
131
134
  "llm.model": kwargs.get("model"),
@@ -235,7 +238,7 @@ def chat_completions_create(original_method, version, tracer):
235
238
  "langtrace.service.name": service_provider,
236
239
  "langtrace.service.type": "llm",
237
240
  "langtrace.service.version": version,
238
- "langtrace.version": "1.0.0",
241
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
239
242
  "url.full": base_url,
240
243
  "llm.api": APIS["CHAT_COMPLETION"]["ENDPOINT"],
241
244
  "llm.prompts": json.dumps(llm_prompts),
@@ -495,7 +498,7 @@ def async_chat_completions_create(original_method, version, tracer):
495
498
  "langtrace.service.name": service_provider,
496
499
  "langtrace.service.type": "llm",
497
500
  "langtrace.service.version": version,
498
- "langtrace.version": "1.0.0",
501
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
499
502
  "url.full": base_url,
500
503
  "llm.api": APIS["CHAT_COMPLETION"]["ENDPOINT"],
501
504
  "llm.prompts": json.dumps(llm_prompts),
@@ -725,7 +728,7 @@ def embeddings_create(original_method, version, tracer):
725
728
  "langtrace.service.name": service_provider,
726
729
  "langtrace.service.type": "llm",
727
730
  "langtrace.service.version": version,
728
- "langtrace.version": "1.0.0",
731
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
729
732
  "url.full": base_url,
730
733
  "llm.api": APIS["EMBEDDINGS_CREATE"]["ENDPOINT"],
731
734
  "llm.model": kwargs.get("model"),
@@ -792,7 +795,7 @@ def async_embeddings_create(original_method, version, tracer):
792
795
  "langtrace.service.name": service_provider,
793
796
  "langtrace.service.type": "llm",
794
797
  "langtrace.service.version": version,
795
- "langtrace.version": "1.0.0",
798
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
796
799
  "url.full": base_url,
797
800
  "llm.api": APIS["EMBEDDINGS_CREATE"]["ENDPOINT"],
798
801
  "llm.model": kwargs.get("model"),
@@ -28,6 +28,9 @@ from langtrace_python_sdk.constants.instrumentation.common import (
28
28
  from langtrace_python_sdk.constants.instrumentation.pinecone import APIS
29
29
  from langtrace_python_sdk.utils import set_span_attribute
30
30
  from langtrace_python_sdk.utils.silently_fail import silently_fail
31
+ from importlib_metadata import version as v
32
+
33
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
31
34
 
32
35
 
33
36
  def generic_patch(operation_name, version, tracer):
@@ -44,7 +47,7 @@ def generic_patch(operation_name, version, tracer):
44
47
  "langtrace.service.name": service_provider,
45
48
  "langtrace.service.type": "vectordb",
46
49
  "langtrace.service.version": version,
47
- "langtrace.version": "1.0.0",
50
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
48
51
  "db.system": "pinecone",
49
52
  "db.operation": api["OPERATION"],
50
53
  "db.query": json.dumps(kwargs.get("query")),
@@ -27,6 +27,9 @@ from langtrace_python_sdk.constants.instrumentation.common import (
27
27
  SERVICE_PROVIDERS,
28
28
  )
29
29
  from langtrace_python_sdk.constants.instrumentation.qdrant import APIS
30
+ from importlib_metadata import version as v
31
+
32
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
30
33
 
31
34
 
32
35
  def collection_patch(method, version, tracer):
@@ -44,7 +47,7 @@ def collection_patch(method, version, tracer):
44
47
  "langtrace.service.name": service_provider,
45
48
  "langtrace.service.type": "vectordb",
46
49
  "langtrace.service.version": version,
47
- "langtrace.version": "1.0.0",
50
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
48
51
  "db.system": "qdrant",
49
52
  "db.operation": api["OPERATION"],
50
53
  "db.query": json.dumps(kwargs.get("query")),
@@ -27,6 +27,9 @@ from langtrace_python_sdk.constants.instrumentation.common import (
27
27
  )
28
28
  from langtrace_python_sdk.constants.instrumentation.weaviate import APIS
29
29
  from langtrace_python_sdk.utils.misc import extract_input_params, to_iso_format
30
+ from importlib_metadata import version as v
31
+
32
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
30
33
 
31
34
  # Predefined metadata response attributes
32
35
  METADATA_ATTRIBUTES = [
@@ -118,7 +121,7 @@ def create_traced_method(method_name, version, tracer, get_collection_name=None)
118
121
  "langtrace.service.name": service_provider,
119
122
  "langtrace.service.type": "vectordb",
120
123
  "langtrace.service.version": version,
121
- "langtrace.version": "1.0.0",
124
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
122
125
  "db.system": "weaviate",
123
126
  "db.operation": api["OPERATION"],
124
127
  "db.collection.name": collection_name,
@@ -45,6 +45,7 @@ from langtrace_python_sdk.instrumentation import (
45
45
  )
46
46
  from opentelemetry.instrumentation.sqlalchemy import SQLAlchemyInstrumentor
47
47
  from colorama import Fore
48
+ from langtrace_python_sdk.utils import check_if_sdk_is_outdated
48
49
 
49
50
 
50
51
  def init(
@@ -55,6 +56,7 @@ def init(
55
56
  api_host: Optional[str] = None,
56
57
  disable_instrumentations: Optional[DisableInstrumentations] = None,
57
58
  ):
59
+ check_if_sdk_is_outdated()
58
60
  print(Fore.GREEN + "Initializing Langtrace SDK.." + Fore.RESET)
59
61
  provider = TracerProvider(resource=Resource.create({"service.name": sys.argv[0]}))
60
62
 
@@ -1,5 +1,13 @@
1
+ from .sdk_version_checker import SDKVersionChecker
2
+
3
+
1
4
  def set_span_attribute(span, name, value):
2
5
  if value is not None:
3
6
  if value != "":
4
7
  span.set_attribute(name, value)
5
8
  return
9
+
10
+
11
+ def check_if_sdk_is_outdated():
12
+ SDKVersionChecker().check()
13
+ return
@@ -0,0 +1,53 @@
1
+ from importlib.metadata import version
2
+ import time
3
+ import requests
4
+ from colorama import Fore
5
+
6
+
7
+ class SDKVersionChecker:
8
+ _cache: None
9
+ _cache_duration: int
10
+ _current_version: str
11
+ _latest_version: str
12
+
13
+ def __init__(self):
14
+ self._cache = {"timestamp": 0, "latest_version": None}
15
+ self._cache_duration = 3600 # Cache for 1 hour
16
+ self._current_version = version("langtrace_python_sdk")
17
+
18
+ def fetch_latest(self):
19
+ try:
20
+ current_time = time.time()
21
+ if (
22
+ current_time - self._cache["timestamp"] < self._cache_duration
23
+ and self._cache["latest_version"]
24
+ ):
25
+ return self._cache["latest_version"]
26
+
27
+ response = requests.get(
28
+ "https://api.github.com/repos/Scale3-Labs/langtrace-python-sdk/releases/latest",
29
+ timeout=20,
30
+ )
31
+ response.raise_for_status()
32
+ latest_version = response.json()["tag_name"]
33
+ self._cache.update(
34
+ {"timestamp": current_time, "latest_version": latest_version}
35
+ )
36
+ self._latest_version = latest_version
37
+ return latest_version
38
+ except Exception as err:
39
+ return None
40
+
41
+ def is_outdated(self):
42
+ latest_version = self.fetch_latest()
43
+ if latest_version:
44
+ return self._current_version < latest_version
45
+ return False
46
+
47
+ def check(self):
48
+ if self.is_outdated():
49
+ print(
50
+ Fore.YELLOW
51
+ + f"Warning: Your Langtrace SDK version {self._current_version} is outdated. Please upgrade to {self._latest_version}."
52
+ + Fore.RESET
53
+ )
@@ -1 +1 @@
1
- __version__ = "2.1.7"
1
+ __version__ = "2.1.9"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: langtrace-python-sdk
3
- Version: 2.1.7
3
+ Version: 2.1.9
4
4
  Summary: Python SDK for LangTrace
5
5
  Project-URL: Homepage, https://github.com/Scale3-Labs/langtrace-python-sdk
6
6
  Author-email: Scale3 Labs <engineering@scale3labs.com>
@@ -37,9 +37,9 @@ examples/qdrant_example/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
37
37
  examples/qdrant_example/basic.py,sha256=DCMjHSuBZKkhEjCkwy5d5La9WMyW0lCWqtcZWiFCEm4,1425
38
38
  examples/weaviate_example/query_text.py,sha256=iE9OiHsibjsprbCGzabE03eZsGN06e6ym2iS1A9P3ig,64650
39
39
  langtrace_python_sdk/__init__.py,sha256=R4dv73QARUw4WRfCdSKkKzZTLDumF9jcSdwtVrzWhb4,962
40
- langtrace_python_sdk/langtrace.py,sha256=h168V4kyqSezozDnMVar2Xgbi764WvVA_PpSgVuBzz0,6560
41
- langtrace_python_sdk/version.py,sha256=f8a2MVmX1Pzg6y0vb9wOlUWlRzaM1t0oaZBemKhaz6M,22
42
- langtrace_python_sdk/constants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ langtrace_python_sdk/langtrace.py,sha256=_qJsbLo-4GqhXd8apg3W7A_l3ZnFYEX1wOA-_rg-TZA,6655
41
+ langtrace_python_sdk/version.py,sha256=Gf0zUMmdRLkPmvwnoP7oCpWn7Ep93jlNIlBD6nifugI,22
42
+ langtrace_python_sdk/constants/__init__.py,sha256=P8QvYwt5czUNDZsKS64vxm9Dc41ptGbuF1TFtAF6nv4,44
43
43
  langtrace_python_sdk/constants/exporter/langtrace_exporter.py,sha256=5MNjnAOg-4am78J3gVMH6FSwq5N8TOj72ugkhsw4vi0,46
44
44
  langtrace_python_sdk/constants/instrumentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
45
  langtrace_python_sdk/constants/instrumentation/anthropic.py,sha256=YX3llt3zwDY6XrYk3CB8WEVqgrzRXEw_ffyk56JoF3k,126
@@ -56,48 +56,49 @@ langtrace_python_sdk/extensions/langtrace_exporter.py,sha256=Fj--DzBr4AwTM_iS3lR
56
56
  langtrace_python_sdk/instrumentation/__init__.py,sha256=htP583cfv32IUvWeck6edRiPQxhk0uzUa1l1vgbtjtY,1042
57
57
  langtrace_python_sdk/instrumentation/anthropic/__init__.py,sha256=donrurJAGYlxrSRA3BIf76jGeUcAx9Tq8CVpah68S0Y,101
58
58
  langtrace_python_sdk/instrumentation/anthropic/instrumentation.py,sha256=-srgE8qumAn0ulQYZxMa8ch-9IBH0XgBW_rfEnGk6LI,1684
59
- langtrace_python_sdk/instrumentation/anthropic/patch.py,sha256=koAo6bA6nnRDk01fcrArqnyAmgzjxV20ofITMQyKVws,8427
59
+ langtrace_python_sdk/instrumentation/anthropic/patch.py,sha256=52GRkW7fhF2VB9JvYGMaPwOvWH3Q5rsIEaVlnFm_Zz0,8548
60
60
  langtrace_python_sdk/instrumentation/chroma/__init__.py,sha256=pNZ5UO8Q-d5VkXSobBf79reB6AmEl_usnnTp5Itv818,95
61
61
  langtrace_python_sdk/instrumentation/chroma/instrumentation.py,sha256=nT6PS6bsrIOO9kLV5GuUeRjMe6THHHAZGvqWBP1dYog,1807
62
- langtrace_python_sdk/instrumentation/chroma/patch.py,sha256=1FvA4YvGw9temfBC2g33xGEzIcL1rVdABXwMVTPm3aM,8750
62
+ langtrace_python_sdk/instrumentation/chroma/patch.py,sha256=ignW4qVzG6F4_J_SUT_b8AbaVgM0YHc_qMPG9gn3HsQ,8871
63
63
  langtrace_python_sdk/instrumentation/cohere/__init__.py,sha256=sGUSLdTUyYf36Tm6L5jQflhzCqvmWrhnBOMYHjvp6Hs,95
64
64
  langtrace_python_sdk/instrumentation/cohere/instrumentation.py,sha256=YQFHZIBd7SSPD4b6Va-ZR0thf_AuBCqj5yzHLHJVWnM,2121
65
- langtrace_python_sdk/instrumentation/cohere/patch.py,sha256=hdSWArP0cdfGs0Q5KhkaowkwrYQIzxvF8NpY4sg8p2Q,26563
65
+ langtrace_python_sdk/instrumentation/cohere/patch.py,sha256=uGjZm_c1-xpZilHD8ljGr4AqQB3UNU04SKl9s2alGzs,26726
66
66
  langtrace_python_sdk/instrumentation/groq/__init__.py,sha256=ZXeq_nrej6Lm_uoMFEg8wbSejhjB2UJ5IoHQBPc2-C0,91
67
67
  langtrace_python_sdk/instrumentation/groq/instrumentation.py,sha256=Ttf07XVKhdYY1_fqJc7QWiSdmgEhEVyQB_3Az2_wqYo,1832
68
- langtrace_python_sdk/instrumentation/groq/patch.py,sha256=Fo5QbNwScFwhvmXZQezbjF0AdajsHQ8a0f8nKsVFjF8,26068
68
+ langtrace_python_sdk/instrumentation/groq/patch.py,sha256=eWHH1fxpmj0CHV0_jxIcGFdmpnQJe-U7dgtvsEA96bA,26203
69
69
  langtrace_python_sdk/instrumentation/langchain/__init__.py,sha256=-7ZkqQFu64F-cxSFd1ZPrciODKqmUIyUbQQ-eHuQPyM,101
70
70
  langtrace_python_sdk/instrumentation/langchain/instrumentation.py,sha256=_Z4AeNb2hBPSCvMRxE-mUfmkUO_wP_tGGtu-jppWPiI,3462
71
- langtrace_python_sdk/instrumentation/langchain/patch.py,sha256=2BT_-DjfSPTmyHDqnpj-gVrMFxRSZugVC-YRPXnuupU,3796
71
+ langtrace_python_sdk/instrumentation/langchain/patch.py,sha256=aa4WG70n-9ssECMKFH9H1yFLmDfFPjtuW4ilTqfJD3c,3854
72
72
  langtrace_python_sdk/instrumentation/langchain_community/__init__.py,sha256=mj5RR_cfkjMql7W9OyyhmviT2GZ-4Pv9XJfGwJufp_E,119
73
73
  langtrace_python_sdk/instrumentation/langchain_community/instrumentation.py,sha256=-9E2-8-XR5PQ5ON-_ib53p5Tp0uD4MT4Ioh4MlWlF2k,5192
74
- langtrace_python_sdk/instrumentation/langchain_community/patch.py,sha256=uyRUp02M9mYjLsr36ZBCvJC7s40AGry3R_EcjvXaoWk,3751
74
+ langtrace_python_sdk/instrumentation/langchain_community/patch.py,sha256=F6wCJlBxFUyQyUFQb_Z8IzOfveUiz1G8W-tMXFX8_wk,3872
75
75
  langtrace_python_sdk/instrumentation/langchain_core/__init__.py,sha256=kumE_reeqgM-ZvEZ6-XxyT-F-HAdKq_v_PKvsLb4EZQ,110
76
76
  langtrace_python_sdk/instrumentation/langchain_core/instrumentation.py,sha256=KNXHtlnq80akLACF-vbPCo9oVXhnVjYIM1Lo7kNRwEg,5937
77
- langtrace_python_sdk/instrumentation/langchain_core/patch.py,sha256=Kqpv77ZKrZ4QMit36JtN59ubtWE8pX6t8gg6OOmIii0,8458
77
+ langtrace_python_sdk/instrumentation/langchain_core/patch.py,sha256=DmNuc8cTniuhEeYZIR4TfNBYDrleQtYWam031o_pl94,8593
78
78
  langtrace_python_sdk/instrumentation/langgraph/__init__.py,sha256=eitlHloY-aZ4ZuIEJx61AadEA3G7siyecP-V-lziAr8,101
79
79
  langtrace_python_sdk/instrumentation/langgraph/instrumentation.py,sha256=SUZZhWSIbcfsF1S5NtEqW8QzkRM_pKAuXB7pwk5tsOU,2526
80
- langtrace_python_sdk/instrumentation/langgraph/patch.py,sha256=fr90kuPokwxP2BGP2tU793ReDOp2FtehKMcsxS9tS_0,4589
80
+ langtrace_python_sdk/instrumentation/langgraph/patch.py,sha256=umxfyrpRX01WgqKNv8El7BSFPaghP49jGrGAniIZ6LI,4710
81
81
  langtrace_python_sdk/instrumentation/llamaindex/__init__.py,sha256=rHvuqpuQKLj57Ow7vuKRqxAN5jT0b5NBeHwhXbbnRa4,103
82
82
  langtrace_python_sdk/instrumentation/llamaindex/instrumentation.py,sha256=8iAg-Oxwf2W4S60qRfO5mvzORYxublgq7FdGWqUB4q8,2965
83
- langtrace_python_sdk/instrumentation/llamaindex/patch.py,sha256=q99qmEBNH54Oi_sHCIGBQFpIE4zaNKVjIWARlX8fJ-M,4189
83
+ langtrace_python_sdk/instrumentation/llamaindex/patch.py,sha256=LwnI9DCC5wcnixPUOmwIWSE7ryTk1J0xFBYdJja8t_Q,4324
84
84
  langtrace_python_sdk/instrumentation/openai/__init__.py,sha256=VPHRNCQEdkizIVP2d0Uw_a7t8XOTSTprEIB8oboJFbs,95
85
85
  langtrace_python_sdk/instrumentation/openai/instrumentation.py,sha256=G2HSZfr6DuP2n-8v0h91M60m0DJWFBcru4-1FQJl-5A,2726
86
- langtrace_python_sdk/instrumentation/openai/patch.py,sha256=xi87lLHoj81xSx6MiqTAKWr3MLxXpMf84NzJ5uDm134,37288
86
+ langtrace_python_sdk/instrumentation/openai/patch.py,sha256=Og6_W3MqnNrzOfQ_WBLnCQUy0xsNZol1bsoScajiI2E,37479
87
87
  langtrace_python_sdk/instrumentation/pinecone/__init__.py,sha256=DzXyGh9_MGWveJvXULkFwdkf7PbG2s3bAWtT1Dmz7Ok,99
88
88
  langtrace_python_sdk/instrumentation/pinecone/instrumentation.py,sha256=mxQXe3oAOPLsMJGlEzAe6zpgK7RtWfqmcNmGW_gQXX4,1900
89
- langtrace_python_sdk/instrumentation/pinecone/patch.py,sha256=8uenVh4TCTJVuBGepm7nhTZBuW7HyjlZS4wPx7zi9cg,4879
89
+ langtrace_python_sdk/instrumentation/pinecone/patch.py,sha256=nZUHZ_1HfLjByJS0gkvrDRj69JbdnfWpezk6zl1EMvU,5000
90
90
  langtrace_python_sdk/instrumentation/qdrant/__init__.py,sha256=TaIGSAEPysrL23KJ5FcEL1tfQogrKCtEQ75_u62eqso,95
91
91
  langtrace_python_sdk/instrumentation/qdrant/instrumentation.py,sha256=vl2eKSP55aqDo1JiRlvOUBrr6kddvG9Z5dCYew2OG08,1816
92
- langtrace_python_sdk/instrumentation/qdrant/patch.py,sha256=KcUWmvnS3PgPStzs1oWmlZsyomKBl3dmg8nXuR0T1C0,4654
92
+ langtrace_python_sdk/instrumentation/qdrant/patch.py,sha256=Teho0q6m9XQGsIkptZ42891eIzpW922tEFqcjFb3svc,4775
93
93
  langtrace_python_sdk/instrumentation/weaviate/__init__.py,sha256=Mc-Je6evPo-kKQzerTG7bd1XO5JOh4YGTE3wBxaUBwg,99
94
94
  langtrace_python_sdk/instrumentation/weaviate/instrumentation.py,sha256=Dn2wMj__nNZkUtDw_jEYslE8-bz2KGkdAU_t8qzWjuA,2281
95
- langtrace_python_sdk/instrumentation/weaviate/patch.py,sha256=ig2fc33hNydEcH5cJWRycFnMXiXiJr731J-Vg5Ze4No,5634
95
+ langtrace_python_sdk/instrumentation/weaviate/patch.py,sha256=boHMRwQC9CIukoX3dTCZCF5L9TL1R5Mlu2o_UUrO7Yg,5755
96
96
  langtrace_python_sdk/types/__init__.py,sha256=-j8cuz3bhUdOqj7N2c0w5y-j3UmcxwEgNh8BWeXwHoI,813
97
- langtrace_python_sdk/utils/__init__.py,sha256=MbBqT4NpDCNTqqvZ0lG4tRiFFZ-tlM8Dwophg4xyrRw,148
97
+ langtrace_python_sdk/utils/__init__.py,sha256=E0nQyBE-4O_GR2PM9y_l7shx4hJLo5xRThR_LMx97M0,278
98
98
  langtrace_python_sdk/utils/llm.py,sha256=CiASOvObFvsN6T7ogWywNXfXGzI__u9misgolLxyeZk,2161
99
99
  langtrace_python_sdk/utils/misc.py,sha256=CD9NWRLxLpFd0YwlHJqzlpFNedXVWtAKGOjQWnDCo8k,838
100
100
  langtrace_python_sdk/utils/prompt_registry.py,sha256=7FFB4Pj0414qgf02h5zL5vXBZgNBf74g4Iq7GdFaIO0,2689
101
+ langtrace_python_sdk/utils/sdk_version_checker.py,sha256=FzjIWZjn53cX0LEVPdipQd1fO9lG8iGVUEVUs9Hyk6M,1713
101
102
  langtrace_python_sdk/utils/silently_fail.py,sha256=F_9EteXCO9Cyq-8MA1OT2Zy_dx8n06nt31I7t7ui24E,478
102
103
  langtrace_python_sdk/utils/types.py,sha256=l-N6o7cnWUyrD6dBvW7W3Pf5CkPo5QaoT__k1XLbrQg,383
103
104
  langtrace_python_sdk/utils/with_root_span.py,sha256=rSPrTnKndJo6cFUWL4907IkJFbtLwqMS87paADUxD6A,5957
@@ -105,16 +106,16 @@ tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
106
  tests/conftest.py,sha256=0Jo6iCZTXbdvyJVhG9UpYGkLabL75378oauCzmt-Sa8,603
106
107
  tests/utils.py,sha256=hP8sTH-M8WO6zlLkSFHPf6483ZcKEcnxul6JIIb1pLM,1396
107
108
  tests/anthropic/conftest.py,sha256=ht1zF3q4Xb1UiZ3BL_L-CQ3YWrd52Dqb4WTZ3f-GdG4,739
108
- tests/anthropic/test_anthropic.py,sha256=p4WhcECJ_zctirtkAX6WejrlNfZzo90fSSxqQkit0Ls,3175
109
+ tests/anthropic/test_anthropic.py,sha256=4Jna7looFNGAOkW-QpSVijyaKdJeNmKjhvilUJ8mbXU,3309
109
110
  tests/anthropic/cassettes/test_anthropic.yaml,sha256=z7YAqA_BBgI-hw7uyVMdLoIZdBYhKwl9cuTzUu9nAZs,2332
110
111
  tests/anthropic/cassettes/test_anthropic_streaming.yaml,sha256=D0w4-6dfsgrhbNLJEj8gZBV0yXfrAfA9u90Yu8Ac-TY,11675
111
112
  tests/anthropic/cassettes/test_async_anthropic_streaming.yaml,sha256=hQZPY2vwBaW3BWllLd0lcGQ73DjA8C3Ips1Hx9pA-ao,8373
112
113
  tests/chroma/conftest.py,sha256=kqb4VydCnlVpkvBX5Bu-pfnVS-ZZfju9cp6vq76tkJI,309
113
114
  tests/chroma/test_chroma.py,sha256=-KJHunvvVi1OoKKOcKCeHO1s399Gm9vJfd-EzgllQmk,1220
114
115
  tests/cohere/conftest.py,sha256=jBbyg-tut-ZJN5_5D64sGmaPIhT_nQQQAiW43kl5Rz4,621
115
- tests/cohere/test_cohere_chat.py,sha256=MioEIXB5e-4t99Vt-KpLlxd4diPbp3S6eNfnPWjEDXM,4564
116
- tests/cohere/test_cohere_embed.py,sha256=bFKDzUnypMyLefAOHR-6dEgvt0yys2Yw7-F0zc0uQyc,1250
117
- tests/cohere/test_cohere_rerank.py,sha256=ZDzvXsY9l1fiytOAKGQidpBkop3fxV6d8xEy_gQt9jE,2279
116
+ tests/cohere/test_cohere_chat.py,sha256=rn6qU9lFOzjA_P-ucOikIzswQ2ZcvZ89ijvh0Yzndwg,4698
117
+ tests/cohere/test_cohere_embed.py,sha256=VM2Q9eBrSSFsNuw9OMNL9BmdXG8g1CGQ2A1uIERyAZw,1315
118
+ tests/cohere/test_cohere_rerank.py,sha256=yNi1GNCIujxRrGMFLsYSnNmb7zyro-owm-kGbouPSDs,2247
118
119
  tests/cohere/cassettes/test_cohere_chat.yaml,sha256=iQIhJwmWe2AQDmdguL6L0SZOPMD6B3mhDVUKPSLodA4,3271
119
120
  tests/cohere/cassettes/test_cohere_chat_streaming.yaml,sha256=tMlz7IPZYRCJUeMCwyXrA4O4zpcqIPpQ5hU9I5f352Q,8174
120
121
  tests/cohere/cassettes/test_cohere_embed.yaml,sha256=Svcyw8WkVMVw4cocWQzGOdUVmWi5AM6Gb9t9VLlyOjM,27320
@@ -123,21 +124,21 @@ tests/langchain/conftest.py,sha256=f29apdevxg7AM0mPQ1LoEd-yStGruqGLTQUp29heLJo,1
123
124
  tests/langchain/test_langchain.py,sha256=QP11RdNDX_ztF1ppPnUiui3SsxYYdzVsDgtI-1OGH48,893
124
125
  tests/langchain/cassettes/test_langchain.yaml,sha256=KPBTVIYMUPFaSNpwrTDgWzsu4p3hHj_yNDoudDa-Jis,3755
125
126
  tests/openai/conftest.py,sha256=BkehS6heg-O91Nzoc4546OSiAzy8KgSgk7VCO3A11zM,700
126
- tests/openai/test_chat_completion.py,sha256=-TwCAF2czsiGZqETQvMOgmIJgdFWycJ9nOeO5q65AJs,5804
127
+ tests/openai/test_chat_completion.py,sha256=CG8dYAqopOnhyWRDTbl7Knw77r7uKHELuH-TR5GOuAc,5768
127
128
  tests/openai/test_embeddings.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
- tests/openai/test_image_generation.py,sha256=0zANtoltorKPel37fSbut-icpJ-wKSN4unoKZOBBsjQ,4397
129
+ tests/openai/test_image_generation.py,sha256=xewPlPf1Ucb0ECKgoasGk1uDlaL4v-mKjUMjVXVsLDQ,4382
129
130
  tests/openai/cassettes/test_async_chat_completion_streaming.yaml,sha256=0aZHFy9NvXegEDjGWyoG-_ItLr7JYAKbaBLIPSl-pfM,6844
130
131
  tests/openai/cassettes/test_async_image_generation.yaml,sha256=_LYZcrqxrnSqcWVQn2Y0XMVGxF-wBrSAd-v3LTAIAeo,3597
131
132
  tests/openai/cassettes/test_chat_completion.yaml,sha256=YkNFgK9VHAzNqGWuxFcTiE194GdEie8eDf1FSsffjd8,2944
132
133
  tests/openai/cassettes/test_chat_completion_streaming.yaml,sha256=nkx_TemQMYSZxUF_b-LCEFwCRDm0AkQHLf4sdJVuZBw,2592394
133
134
  tests/openai/cassettes/test_image_generation.yaml,sha256=gn5aSVp6V6_hb_rt2NnkAWd_idzDxo-7VzhZII0Wslw,3562
134
135
  tests/pinecone/conftest.py,sha256=EY1m5M6MKSOktbVEe__wYNjCW9A7H0xdC-aXhU8JEOg,916
135
- tests/pinecone/test_pinecone.py,sha256=JMe3S15cfBWjTArC-FTCarRRYBFylkv4BwQgL2BmUfw,3614
136
+ tests/pinecone/test_pinecone.py,sha256=o1NnY4QirQU4JgMAi21kl9ejuXsGhF9EjyS9C2HuWtU,3599
136
137
  tests/pinecone/cassettes/test_query.yaml,sha256=b5v9G3ssUy00oG63PlFUR3JErF2Js-5AIqHnMsvJM8w,103821
137
138
  tests/pinecone/cassettes/test_upsert.yaml,sha256=neWmQ1v3d03V8WoLl8FoFeeCYImb8pxlJBWnFd_lITU,38607
138
139
  tests/qdrant/conftest.py,sha256=9n0uHxxIjWk9fbYc4bx-uP8lSAgLBVx-cV9UjnsyCHM,381
139
140
  tests/qdrant/test_qdrant.py,sha256=pzjAjVY2kmsmGfrI2Gs2xrolfuaNHz7l1fqGQCjp5_o,3353
140
- langtrace_python_sdk-2.1.7.dist-info/METADATA,sha256=H9c6_Gh8svD7ffbYCi3WSUEBItnwNzyX_CPpVf4Bueg,11859
141
- langtrace_python_sdk-2.1.7.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
142
- langtrace_python_sdk-2.1.7.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
143
- langtrace_python_sdk-2.1.7.dist-info/RECORD,,
141
+ langtrace_python_sdk-2.1.9.dist-info/METADATA,sha256=z55Vy4oeKQROK5MlKoeYpJfzHxqMvhlfEXjr2PSXAZc,11859
142
+ langtrace_python_sdk-2.1.9.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
143
+ langtrace_python_sdk-2.1.9.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
144
+ langtrace_python_sdk-2.1.9.dist-info/RECORD,,
@@ -2,7 +2,9 @@ import pytest
2
2
  import json
3
3
  import importlib
4
4
  from langtrace_python_sdk.constants.instrumentation.anthropic import APIS
5
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
5
6
  from tests.utils import assert_response_format, assert_token_count
7
+ from importlib_metadata import version as v
6
8
 
7
9
 
8
10
  @pytest.mark.vcr()
@@ -30,7 +32,7 @@ def test_anthropic(anthropic_client, exporter):
30
32
  assert attributes.get("langtrace.service.version") == importlib.metadata.version(
31
33
  "anthropic"
32
34
  )
33
- assert attributes.get("langtrace.version") == "1.0.0"
35
+ assert attributes.get("langtrace.version") == v(LANGTRACE_SDK_NAME)
34
36
  assert attributes.get("url.full") == "https://api.anthropic.com"
35
37
  assert attributes.get("llm.api") == APIS["MESSAGES_CREATE"]["ENDPOINT"]
36
38
  assert attributes.get("llm.model") == llm_model_value
@@ -72,7 +74,7 @@ def test_anthropic_streaming(anthropic_client, exporter):
72
74
  assert attributes.get("langtrace.service.version") == importlib.metadata.version(
73
75
  "anthropic"
74
76
  )
75
- assert attributes.get("langtrace.version") == "1.0.0"
77
+ assert attributes.get("langtrace.version") == v(LANGTRACE_SDK_NAME)
76
78
  assert attributes.get("url.full") == "https://api.anthropic.com"
77
79
  assert attributes.get("llm.api") == APIS["MESSAGES_CREATE"]["ENDPOINT"]
78
80
  assert attributes.get("llm.model") == llm_model_value
@@ -3,7 +3,9 @@ from langtrace_python_sdk.constants.instrumentation.cohere import APIS
3
3
  from langtrace_python_sdk.constants.instrumentation.common import SERVICE_PROVIDERS
4
4
  import pytest
5
5
  import importlib
6
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
6
7
  from tests.utils import assert_response_format, assert_token_count
8
+ from importlib_metadata import version as v
7
9
 
8
10
 
9
11
  @pytest.mark.vcr
@@ -39,7 +41,7 @@ def test_cohere_chat(cohere_client, exporter):
39
41
  "cohere"
40
42
  )
41
43
 
42
- assert attributes.get("langtrace.version") == "1.0.0"
44
+ assert attributes.get("langtrace.version") == v(LANGTRACE_SDK_NAME)
43
45
  assert attributes.get("url.full") == APIS["CHAT_CREATE"]["URL"]
44
46
  assert attributes.get("llm.api") == APIS["CHAT_CREATE"]["ENDPOINT"]
45
47
  assert attributes.get("llm.model") == llm_model_value
@@ -97,7 +99,7 @@ def test_cohere_chat_streaming(cohere_client, exporter):
97
99
  "cohere"
98
100
  )
99
101
 
100
- assert attributes.get("langtrace.version") == "1.0.0"
102
+ assert attributes.get("langtrace.version") == v(LANGTRACE_SDK_NAME)
101
103
  assert attributes.get("url.full") == APIS["CHAT_STREAM"]["URL"]
102
104
  assert attributes.get("llm.api") == APIS["CHAT_STREAM"]["ENDPOINT"]
103
105
  assert attributes.get("llm.model") == llm_model_value
@@ -1,7 +1,9 @@
1
1
  from langtrace_python_sdk.constants.instrumentation.cohere import APIS
2
2
  from langtrace_python_sdk.constants.instrumentation.common import SERVICE_PROVIDERS
3
3
  import pytest
4
- import importlib
4
+ from importlib_metadata import version as v
5
+
6
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
5
7
 
6
8
 
7
9
  @pytest.mark.vcr
@@ -25,11 +27,9 @@ def test_cohere_embed(cohere_client, exporter):
25
27
  assert attributes.get("langtrace.sdk.name") == "langtrace-python-sdk"
26
28
  assert attributes.get("langtrace.service.name") == SERVICE_PROVIDERS["COHERE"]
27
29
  assert attributes.get("langtrace.service.type") == "llm"
28
- assert attributes.get("langtrace.service.version") == importlib.metadata.version(
29
- "cohere"
30
- )
30
+ assert attributes.get("langtrace.service.version") == v("cohere")
31
31
 
32
- assert attributes.get("langtrace.version") == "1.0.0"
32
+ assert attributes.get("langtrace.version") == v(LANGTRACE_SDK_NAME)
33
33
  assert attributes.get("url.full") == APIS["EMBED"]["URL"]
34
34
  assert attributes.get("llm.api") == APIS["EMBED"]["ENDPOINT"]
35
35
  assert attributes.get("llm.model") == llm_model_value
@@ -1,10 +1,9 @@
1
1
  from langtrace_python_sdk.constants.instrumentation.common import SERVICE_PROVIDERS
2
2
  import pytest
3
3
  import json
4
- import importlib
5
4
  from langtrace_python_sdk.constants.instrumentation.cohere import APIS
6
- from tests.utils import assert_response_format, assert_token_count
7
- import pprint
5
+ from tests.utils import assert_token_count
6
+ from importlib_metadata import version as v
8
7
 
9
8
 
10
9
  @pytest.mark.vcr
@@ -34,11 +33,9 @@ def test_cohere_rerank(cohere_client, exporter):
34
33
  assert attributes.get("langtrace.sdk.name") == "langtrace-python-sdk"
35
34
  assert attributes.get("langtrace.service.name") == SERVICE_PROVIDERS["COHERE"]
36
35
  assert attributes.get("langtrace.service.type") == "llm"
37
- assert attributes.get("langtrace.service.version") == importlib.metadata.version(
38
- "cohere"
39
- )
36
+ assert attributes.get("langtrace.service.version") == v("cohere")
40
37
 
41
- assert attributes.get("langtrace.version") == "1.0.0"
38
+ assert attributes.get("langtrace.version") == v("langtrace-python-sdk")
42
39
  assert attributes.get("url.full") == APIS["RERANK"]["URL"]
43
40
  assert attributes.get("llm.api") == APIS["RERANK"]["ENDPOINT"]
44
41
  assert attributes.get("llm.model") == llm_model_value
@@ -1,8 +1,8 @@
1
1
  import pytest
2
- import importlib
3
2
  import json
4
3
  from langtrace_python_sdk.constants.instrumentation.openai import APIS
5
4
  from tests.utils import assert_response_format, assert_token_count
5
+ from importlib_metadata import version as v
6
6
 
7
7
 
8
8
  @pytest.mark.vcr()
@@ -25,10 +25,8 @@ def test_chat_completion(exporter, openai_client):
25
25
  assert attributes.get("langtrace.sdk.name") == "langtrace-python-sdk"
26
26
  assert attributes.get("langtrace.service.name") == "OpenAI"
27
27
  assert attributes.get("langtrace.service.type") == "llm"
28
- assert attributes.get("langtrace.service.version") == importlib.metadata.version(
29
- "openai"
30
- )
31
- assert attributes.get("langtrace.version") == "1.0.0"
28
+ assert attributes.get("langtrace.service.version") == v("openai")
29
+ assert attributes.get("langtrace.version") == v("langtrace-python-sdk")
32
30
  assert attributes.get("url.full") == "https://api.openai.com/v1/"
33
31
  assert attributes.get("llm.api") == APIS["CHAT_COMPLETION"]["ENDPOINT"]
34
32
  assert attributes.get("llm.model") == "gpt-4-0613"
@@ -78,10 +76,8 @@ def test_chat_completion_streaming(exporter, openai_client):
78
76
  assert attributes.get("langtrace.sdk.name") == "langtrace-python-sdk"
79
77
  assert attributes.get("langtrace.service.name") == "OpenAI"
80
78
  assert attributes.get("langtrace.service.type") == "llm"
81
- assert attributes.get("langtrace.service.version") == importlib.metadata.version(
82
- "openai"
83
- )
84
- assert attributes.get("langtrace.version") == "1.0.0"
79
+ assert attributes.get("langtrace.service.version") == v("openai")
80
+ assert attributes.get("langtrace.version") == v("langtrace-python-sdk")
85
81
  assert attributes.get("url.full") == "https://api.openai.com/v1/"
86
82
  assert attributes.get("llm.api") == APIS["CHAT_COMPLETION"]["ENDPOINT"]
87
83
  assert attributes.get("llm.model") == "gpt-4-0613"
@@ -135,10 +131,8 @@ async def test_async_chat_completion_streaming(exporter, async_openai_client):
135
131
  assert attributes.get("langtrace.sdk.name") == "langtrace-python-sdk"
136
132
  assert attributes.get("langtrace.service.name") == "OpenAI"
137
133
  assert attributes.get("langtrace.service.type") == "llm"
138
- assert attributes.get("langtrace.service.version") == importlib.metadata.version(
139
- "openai"
140
- )
141
- assert attributes.get("langtrace.version") == "1.0.0"
134
+ assert attributes.get("langtrace.service.version") == v("openai")
135
+ assert attributes.get("langtrace.version") == v("langtrace-python-sdk")
142
136
  assert attributes.get("url.full") == "https://api.openai.com/v1/"
143
137
  assert attributes.get("llm.api") == APIS["CHAT_COMPLETION"]["ENDPOINT"]
144
138
  assert attributes.get("llm.model") == "gpt-4-0613"
@@ -1,7 +1,7 @@
1
1
  import pytest
2
2
  import json
3
- import importlib
4
3
  from langtrace_python_sdk.constants.instrumentation.openai import APIS
4
+ from importlib_metadata import version as v
5
5
 
6
6
 
7
7
  @pytest.mark.vcr()
@@ -23,10 +23,8 @@ def test_image_generation(openai_client, exporter):
23
23
  assert attributes.get("langtrace.sdk.name") == "langtrace-python-sdk"
24
24
  assert attributes.get("langtrace.service.name") == "OpenAI"
25
25
  assert attributes.get("langtrace.service.type") == "llm"
26
- assert attributes.get("langtrace.service.version") == importlib.metadata.version(
27
- "openai"
28
- )
29
- assert attributes.get("langtrace.version") == "1.0.0"
26
+ assert attributes.get("langtrace.service.version") == v("openai")
27
+ assert attributes.get("langtrace.version") == v("langtrace-python-sdk")
30
28
  assert attributes.get("url.full") == "https://api.openai.com/v1/"
31
29
  assert attributes.get("llm.api") == APIS["IMAGES_GENERATION"]["ENDPOINT"]
32
30
  assert attributes.get("llm.model") == llm_model_value
@@ -66,10 +64,8 @@ async def test_async_image_generation(async_openai_client, exporter):
66
64
  assert attributes.get("langtrace.sdk.name") == "langtrace-python-sdk"
67
65
  assert attributes.get("langtrace.service.name") == "OpenAI"
68
66
  assert attributes.get("langtrace.service.type") == "llm"
69
- assert attributes.get("langtrace.service.version") == importlib.metadata.version(
70
- "openai"
71
- )
72
- assert attributes.get("langtrace.version") == "1.0.0"
67
+ assert attributes.get("langtrace.service.version") == v("openai")
68
+ assert attributes.get("langtrace.version") == v("langtrace-python-sdk")
73
69
  assert attributes.get("url.full") == "https://api.openai.com/v1/"
74
70
  assert attributes.get("llm.api") == APIS["IMAGES_GENERATION"]["ENDPOINT"]
75
71
  assert attributes.get("llm.model") == llm_model_value
@@ -1,8 +1,8 @@
1
1
  import pytest
2
- import importlib
3
2
  import json
4
3
  from langtrace_python_sdk.constants.instrumentation.common import SERVICE_PROVIDERS
5
4
  from langtrace_python_sdk.constants.instrumentation.pinecone import APIS
5
+ from importlib_metadata import version as v
6
6
 
7
7
 
8
8
  def create_embedding(openai_client):
@@ -34,10 +34,8 @@ def test_upsert(openai_client, pinecone_client, exporter):
34
34
  assert attributes.get("langtrace.sdk.name") == "langtrace-python-sdk"
35
35
  assert attributes.get("langtrace.service.name") == SERVICE_PROVIDERS["PINECONE"]
36
36
  assert attributes.get("langtrace.service.type") == "vectordb"
37
- assert attributes.get("langtrace.service.version") == importlib.metadata.version(
38
- "pinecone-client"
39
- )
40
- assert attributes.get("langtrace.version") == "1.0.0"
37
+ assert attributes.get("langtrace.service.version") == v("pinecone-client")
38
+ assert attributes.get("langtrace.version") == v("langtrace-python-sdk")
41
39
  assert attributes.get("db.system") == "pinecone"
42
40
  assert attributes.get("db.operation") == APIS["UPSERT"]["OPERATION"]
43
41
 
@@ -69,10 +67,8 @@ def test_query(openai_client, pinecone_client, exporter):
69
67
  assert attributes.get("langtrace.sdk.name") == "langtrace-python-sdk"
70
68
  assert attributes.get("langtrace.service.name") == SERVICE_PROVIDERS["PINECONE"]
71
69
  assert attributes.get("langtrace.service.type") == "vectordb"
72
- assert attributes.get("langtrace.service.version") == importlib.metadata.version(
73
- "pinecone-client"
74
- )
75
- assert attributes.get("langtrace.version") == "1.0.0"
70
+ assert attributes.get("langtrace.service.version") == v("pinecone-client")
71
+ assert attributes.get("langtrace.version") == v("langtrace-python-sdk")
76
72
  assert attributes.get("db.system") == "pinecone"
77
73
  assert attributes.get("db.operation") == APIS["QUERY"]["OPERATION"]
78
74
  assert attributes.get("db.query.top_k") == 3