promptlayer 1.0.17__tar.gz → 1.0.19__tar.gz

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.

Potentially problematic release.


This version of promptlayer might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: promptlayer
3
- Version: 1.0.17
3
+ Version: 1.0.19
4
4
  Summary: PromptLayer is a platform for prompt engineering and tracks your LLM requests.
5
5
  License: Apache-2.0
6
6
  Author: Magniv
@@ -1,4 +1,4 @@
1
1
  from .promptlayer import PromptLayer
2
2
 
3
- __version__ = "1.0.17"
3
+ __version__ = "1.0.19"
4
4
  __all__ = ["PromptLayer", "__version__"]
@@ -5,7 +5,6 @@ from copy import deepcopy
5
5
  from functools import wraps
6
6
  from typing import Any, Dict, List, Literal, Union
7
7
 
8
- from opentelemetry import trace
9
8
  from opentelemetry.sdk.resources import Resource
10
9
  from opentelemetry.sdk.trace import TracerProvider
11
10
  from opentelemetry.sdk.trace.export import BatchSpanProcessor
@@ -74,7 +73,9 @@ class PromptLayer:
74
73
  self.api_key = api_key
75
74
  self.templates = TemplateManager(api_key)
76
75
  self.group = GroupManager(api_key)
77
- self.tracer = self._initialize_tracer(api_key, enable_tracing)
76
+ self.tracer_provider, self.tracer = self._initialize_tracer(
77
+ api_key, enable_tracing
78
+ )
78
79
  self.track = TrackManager(api_key)
79
80
 
80
81
  def __getattr__(
@@ -132,10 +133,10 @@ class PromptLayer:
132
133
  promptlayer_exporter = PromptLayerSpanExporter(api_key=api_key)
133
134
  span_processor = BatchSpanProcessor(promptlayer_exporter)
134
135
  tracer_provider.add_span_processor(span_processor)
135
- trace.set_tracer_provider(tracer_provider)
136
- return trace.get_tracer(__name__)
136
+ tracer = tracer_provider.get_tracer(__name__)
137
+ return tracer_provider, tracer
137
138
  else:
138
- return None
139
+ return None, None
139
140
 
140
141
  @staticmethod
141
142
  def _prepare_get_prompt_template_params(
@@ -355,12 +356,13 @@ class PromptLayer:
355
356
  else:
356
357
  return self._run_internal(**_run_internal_kwargs)
357
358
 
358
- def traceable(self, attributes=None):
359
+ def traceable(self, attributes=None, name=None):
359
360
  def decorator(func):
360
361
  @wraps(func)
361
362
  def sync_wrapper(*args, **kwargs):
362
363
  if self.tracer:
363
- with self.tracer.start_as_current_span(func.__name__) as span:
364
+ span_name = name or func.__name__
365
+ with self.tracer.start_as_current_span(span_name) as span:
364
366
  if attributes:
365
367
  for key, value in attributes.items():
366
368
  span.set_attribute(key, value)
@@ -378,7 +380,8 @@ class PromptLayer:
378
380
  @wraps(func)
379
381
  async def async_wrapper(*args, **kwargs):
380
382
  if self.tracer:
381
- with self.tracer.start_as_current_span(func.__name__) as span:
383
+ span_name = name or func.__name__
384
+ with self.tracer.start_as_current_span(span_name) as span:
382
385
  if attributes:
383
386
  for key, value in attributes.items():
384
387
  span.set_attribute(key, value)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "promptlayer"
3
- version = "1.0.17"
3
+ version = "1.0.19"
4
4
  description = "PromptLayer is a platform for prompt engineering and tracks your LLM requests."
5
5
  authors = ["Magniv <hello@magniv.io>"]
6
6
  license = "Apache-2.0"
File without changes
File without changes