openlit 1.33.9__py3-none-any.whl → 1.33.11__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 (113) hide show
  1. openlit/__helpers.py +78 -0
  2. openlit/__init__.py +41 -13
  3. openlit/instrumentation/ag2/__init__.py +9 -10
  4. openlit/instrumentation/ag2/ag2.py +134 -69
  5. openlit/instrumentation/ai21/__init__.py +6 -5
  6. openlit/instrumentation/ai21/ai21.py +71 -534
  7. openlit/instrumentation/ai21/async_ai21.py +71 -534
  8. openlit/instrumentation/ai21/utils.py +407 -0
  9. openlit/instrumentation/anthropic/__init__.py +3 -3
  10. openlit/instrumentation/anthropic/anthropic.py +5 -5
  11. openlit/instrumentation/anthropic/async_anthropic.py +5 -5
  12. openlit/instrumentation/assemblyai/__init__.py +2 -2
  13. openlit/instrumentation/assemblyai/assemblyai.py +3 -3
  14. openlit/instrumentation/astra/__init__.py +25 -25
  15. openlit/instrumentation/astra/astra.py +7 -7
  16. openlit/instrumentation/astra/async_astra.py +7 -7
  17. openlit/instrumentation/azure_ai_inference/__init__.py +5 -5
  18. openlit/instrumentation/azure_ai_inference/async_azure_ai_inference.py +11 -11
  19. openlit/instrumentation/azure_ai_inference/azure_ai_inference.py +11 -11
  20. openlit/instrumentation/bedrock/__init__.py +2 -2
  21. openlit/instrumentation/bedrock/bedrock.py +3 -3
  22. openlit/instrumentation/chroma/__init__.py +9 -9
  23. openlit/instrumentation/chroma/chroma.py +7 -7
  24. openlit/instrumentation/cohere/__init__.py +7 -7
  25. openlit/instrumentation/cohere/async_cohere.py +10 -10
  26. openlit/instrumentation/cohere/cohere.py +11 -11
  27. openlit/instrumentation/controlflow/__init__.py +4 -4
  28. openlit/instrumentation/controlflow/controlflow.py +5 -5
  29. openlit/instrumentation/crawl4ai/__init__.py +3 -3
  30. openlit/instrumentation/crawl4ai/async_crawl4ai.py +5 -5
  31. openlit/instrumentation/crawl4ai/crawl4ai.py +5 -5
  32. openlit/instrumentation/crewai/__init__.py +3 -3
  33. openlit/instrumentation/crewai/crewai.py +6 -4
  34. openlit/instrumentation/dynamiq/__init__.py +5 -5
  35. openlit/instrumentation/dynamiq/dynamiq.py +5 -5
  36. openlit/instrumentation/elevenlabs/__init__.py +5 -5
  37. openlit/instrumentation/elevenlabs/async_elevenlabs.py +4 -5
  38. openlit/instrumentation/elevenlabs/elevenlabs.py +4 -5
  39. openlit/instrumentation/embedchain/__init__.py +2 -2
  40. openlit/instrumentation/embedchain/embedchain.py +9 -9
  41. openlit/instrumentation/firecrawl/__init__.py +3 -3
  42. openlit/instrumentation/firecrawl/firecrawl.py +5 -5
  43. openlit/instrumentation/google_ai_studio/__init__.py +3 -3
  44. openlit/instrumentation/google_ai_studio/async_google_ai_studio.py +3 -3
  45. openlit/instrumentation/google_ai_studio/google_ai_studio.py +3 -3
  46. openlit/instrumentation/gpt4all/__init__.py +5 -5
  47. openlit/instrumentation/gpt4all/gpt4all.py +350 -225
  48. openlit/instrumentation/gpu/__init__.py +5 -5
  49. openlit/instrumentation/groq/__init__.py +5 -5
  50. openlit/instrumentation/groq/async_groq.py +359 -243
  51. openlit/instrumentation/groq/groq.py +359 -243
  52. openlit/instrumentation/haystack/__init__.py +2 -2
  53. openlit/instrumentation/haystack/haystack.py +5 -5
  54. openlit/instrumentation/julep/__init__.py +7 -7
  55. openlit/instrumentation/julep/async_julep.py +6 -6
  56. openlit/instrumentation/julep/julep.py +6 -6
  57. openlit/instrumentation/langchain/__init__.py +15 -9
  58. openlit/instrumentation/langchain/async_langchain.py +388 -0
  59. openlit/instrumentation/langchain/langchain.py +110 -497
  60. openlit/instrumentation/letta/__init__.py +7 -7
  61. openlit/instrumentation/letta/letta.py +10 -8
  62. openlit/instrumentation/litellm/__init__.py +9 -10
  63. openlit/instrumentation/litellm/async_litellm.py +321 -250
  64. openlit/instrumentation/litellm/litellm.py +319 -248
  65. openlit/instrumentation/llamaindex/__init__.py +2 -2
  66. openlit/instrumentation/llamaindex/llamaindex.py +5 -5
  67. openlit/instrumentation/mem0/__init__.py +2 -2
  68. openlit/instrumentation/mem0/mem0.py +5 -5
  69. openlit/instrumentation/milvus/__init__.py +2 -2
  70. openlit/instrumentation/milvus/milvus.py +7 -7
  71. openlit/instrumentation/mistral/__init__.py +13 -13
  72. openlit/instrumentation/mistral/async_mistral.py +426 -253
  73. openlit/instrumentation/mistral/mistral.py +424 -250
  74. openlit/instrumentation/multion/__init__.py +7 -7
  75. openlit/instrumentation/multion/async_multion.py +9 -7
  76. openlit/instrumentation/multion/multion.py +9 -7
  77. openlit/instrumentation/ollama/__init__.py +19 -39
  78. openlit/instrumentation/ollama/async_ollama.py +137 -563
  79. openlit/instrumentation/ollama/ollama.py +136 -563
  80. openlit/instrumentation/ollama/utils.py +333 -0
  81. openlit/instrumentation/openai/__init__.py +11 -11
  82. openlit/instrumentation/openai/async_openai.py +25 -27
  83. openlit/instrumentation/openai/openai.py +25 -27
  84. openlit/instrumentation/phidata/__init__.py +2 -2
  85. openlit/instrumentation/phidata/phidata.py +6 -4
  86. openlit/instrumentation/pinecone/__init__.py +6 -6
  87. openlit/instrumentation/pinecone/pinecone.py +7 -7
  88. openlit/instrumentation/premai/__init__.py +5 -5
  89. openlit/instrumentation/premai/premai.py +268 -219
  90. openlit/instrumentation/qdrant/__init__.py +2 -2
  91. openlit/instrumentation/qdrant/async_qdrant.py +7 -7
  92. openlit/instrumentation/qdrant/qdrant.py +7 -7
  93. openlit/instrumentation/reka/__init__.py +5 -5
  94. openlit/instrumentation/reka/async_reka.py +93 -55
  95. openlit/instrumentation/reka/reka.py +93 -55
  96. openlit/instrumentation/together/__init__.py +9 -9
  97. openlit/instrumentation/together/async_together.py +284 -242
  98. openlit/instrumentation/together/together.py +284 -242
  99. openlit/instrumentation/transformers/__init__.py +3 -3
  100. openlit/instrumentation/transformers/transformers.py +79 -48
  101. openlit/instrumentation/vertexai/__init__.py +19 -69
  102. openlit/instrumentation/vertexai/async_vertexai.py +333 -990
  103. openlit/instrumentation/vertexai/vertexai.py +333 -990
  104. openlit/instrumentation/vllm/__init__.py +3 -3
  105. openlit/instrumentation/vllm/vllm.py +65 -35
  106. openlit/otel/events.py +85 -0
  107. openlit/otel/tracing.py +3 -13
  108. openlit/semcov/__init__.py +16 -4
  109. {openlit-1.33.9.dist-info → openlit-1.33.11.dist-info}/METADATA +2 -2
  110. openlit-1.33.11.dist-info/RECORD +125 -0
  111. openlit-1.33.9.dist-info/RECORD +0 -121
  112. {openlit-1.33.9.dist-info → openlit-1.33.11.dist-info}/LICENSE +0 -0
  113. {openlit-1.33.9.dist-info → openlit-1.33.11.dist-info}/WHEEL +0 -0
@@ -26,7 +26,7 @@ class VLLMInstrumentor(BaseInstrumentor):
26
26
  tracer = kwargs.get("tracer")
27
27
  metrics = kwargs.get("metrics_dict")
28
28
  pricing_info = kwargs.get("pricing_info", {})
29
- trace_content = kwargs.get("trace_content", False)
29
+ capture_message_content = kwargs.get("capture_message_content", False)
30
30
  disable_metrics = kwargs.get("disable_metrics")
31
31
  version = importlib.metadata.version("vllm")
32
32
 
@@ -34,8 +34,8 @@ class VLLMInstrumentor(BaseInstrumentor):
34
34
  wrap_function_wrapper(
35
35
  "vllm",
36
36
  "LLM.generate",
37
- generate("vllm.generate", version, environment, application_name,
38
- tracer, pricing_info, trace_content, metrics, disable_metrics),
37
+ generate(version, environment, application_name,
38
+ tracer, pricing_info, capture_message_content, metrics, disable_metrics),
39
39
  )
40
40
 
41
41
  def _uninstrument(self, **kwargs):
@@ -1,30 +1,35 @@
1
- # pylint: disable=duplicate-code, broad-exception-caught, too-many-statements, unused-argument, possibly-used-before-assignment
2
1
  """
3
2
  Module for monitoring vLLM API calls.
4
3
  """
5
4
 
6
5
  import logging
6
+ import time
7
7
  from opentelemetry.trace import SpanKind, Status, StatusCode
8
- from opentelemetry.sdk.resources import TELEMETRY_SDK_NAME
9
- from openlit.__helpers import handle_exception, general_tokens
8
+ from opentelemetry.sdk.resources import SERVICE_NAME, TELEMETRY_SDK_NAME, DEPLOYMENT_ENVIRONMENT
9
+ from openlit.__helpers import (
10
+ get_chat_model_cost,
11
+ handle_exception,
12
+ general_tokens,
13
+ create_metrics_attributes,
14
+ set_server_address_and_port
15
+ )
10
16
  from openlit.semcov import SemanticConvetion
11
17
 
12
18
  # Initialize logger for logging potential issues and operations
13
19
  logger = logging.getLogger(__name__)
14
20
 
15
- def generate(gen_ai_endpoint, version, environment, application_name,
16
- tracer, pricing_info, trace_content, metrics, disable_metrics):
21
+ def generate(version, environment, application_name,
22
+ tracer, pricing_info, capture_message_content, metrics, disable_metrics):
17
23
  """
18
24
  Generates a telemetry wrapper for generate to collect metrics.
19
25
 
20
26
  Args:
21
- gen_ai_endpoint: Endpoint identifier for logging and tracing.
22
27
  version: Version of the monitoring package.
23
28
  environment: Deployment environment (e.g., production, staging).
24
29
  application_name: Name of the application using the vLLM API.
25
30
  tracer: OpenTelemetry tracer for creating spans.
26
31
  pricing_info: Information used for calculating the cost of vLLM usage.
27
- trace_content: Flag indicating whether to trace the actual content.
32
+ capture_message_content: Flag indicating whether to trace the actual content.
28
33
 
29
34
  Returns:
30
35
  A function that wraps the generate method to add telemetry.
@@ -47,33 +52,52 @@ def generate(gen_ai_endpoint, version, environment, application_name,
47
52
  The response from the original 'generate' method.
48
53
  """
49
54
 
55
+ server_address, server_port = set_server_address_and_port(instance, "api.cohere.com", 443)
56
+ request_model = instance.llm_engine.model_config.model or "facebook/opt-125m"
57
+
58
+ span_name = f"{SemanticConvetion.GEN_AI_OPERATION_TYPE_CHAT} {request_model}"
59
+
50
60
  # pylint: disable=line-too-long
51
- with tracer.start_as_current_span(gen_ai_endpoint, kind= SpanKind.CLIENT) as span:
61
+ with tracer.start_as_current_span(span_name, kind= SpanKind.CLIENT) as span:
62
+ start_time = time.time()
52
63
  response = wrapped(*args, **kwargs)
64
+ end_time = time.time()
53
65
 
54
66
  try:
55
- model = instance.llm_engine.model_config.model or "facebook/opt-125m"
56
67
  # Set base span attribues
57
68
  span.set_attribute(TELEMETRY_SDK_NAME, "openlit")
58
69
  span.set_attribute(SemanticConvetion.GEN_AI_SYSTEM,
59
70
  SemanticConvetion.GEN_AI_SYSTEM_VLLM)
60
71
  span.set_attribute(SemanticConvetion.GEN_AI_OPERATION,
61
72
  SemanticConvetion.GEN_AI_OPERATION_TYPE_CHAT)
62
- span.set_attribute(SemanticConvetion.GEN_AI_ENDPOINT,
63
- gen_ai_endpoint)
64
- span.set_attribute(SemanticConvetion.GEN_AI_ENVIRONMENT,
65
- environment)
66
- span.set_attribute(SemanticConvetion.GEN_AI_APPLICATION_NAME,
67
- application_name)
73
+ span.set_attribute(SemanticConvetion.SERVER_PORT,
74
+ server_port)
68
75
  span.set_attribute(SemanticConvetion.GEN_AI_REQUEST_MODEL,
69
- model)
76
+ request_model)
77
+ span.set_attribute(SemanticConvetion.GEN_AI_RESPONSE_MODEL,
78
+ request_model)
79
+ span.set_attribute(SemanticConvetion.SERVER_ADDRESS,
80
+ server_address)
81
+ span.set_attribute(SemanticConvetion.GEN_AI_OUTPUT_TYPE,
82
+ "text")
83
+
84
+ # Set base span attribues (Extras)
85
+ span.set_attribute(DEPLOYMENT_ENVIRONMENT,
86
+ environment)
87
+ span.set_attribute(SERVICE_NAME,
88
+ application_name)
70
89
  span.set_attribute(SemanticConvetion.GEN_AI_REQUEST_IS_STREAM,
71
90
  False)
91
+ span.set_attribute(SemanticConvetion.GEN_AI_SERVER_TTFT,
92
+ end_time - start_time)
93
+ span.set_attribute(SemanticConvetion.GEN_AI_SDK_VERSION,
94
+ version)
95
+
72
96
  input_tokens = 0
73
97
  output_tokens = 0
74
98
  cost = 0
75
99
 
76
- if trace_content:
100
+ if capture_message_content:
77
101
  prompt_attributes = {}
78
102
  completion_attributes = {}
79
103
 
@@ -95,37 +119,43 @@ def generate(gen_ai_endpoint, version, environment, application_name,
95
119
  attributes=completion_attributes,
96
120
  )
97
121
 
98
- total_tokens = input_tokens + output_tokens
99
-
100
122
  span.set_attribute(SemanticConvetion.GEN_AI_USAGE_INPUT_TOKENS,
101
123
  input_tokens)
102
124
  span.set_attribute(SemanticConvetion.GEN_AI_USAGE_OUTPUT_TOKENS,
103
125
  output_tokens)
104
126
  span.set_attribute(SemanticConvetion.GEN_AI_USAGE_TOTAL_TOKENS,
105
- total_tokens)
127
+ input_tokens + output_tokens)
128
+
129
+ # Calculate cost of the operation
130
+ cost = get_chat_model_cost(request_model, pricing_info,
131
+ input_tokens, output_tokens)
106
132
  span.set_attribute(SemanticConvetion.GEN_AI_USAGE_COST,
107
133
  cost)
108
134
 
109
135
  span.set_status(Status(StatusCode.OK))
110
136
 
111
137
  if disable_metrics is False:
112
- attributes = {
113
- TELEMETRY_SDK_NAME:
114
- "openlit",
115
- SemanticConvetion.GEN_AI_APPLICATION_NAME:
116
- application_name,
117
- SemanticConvetion.GEN_AI_SYSTEM:
118
- SemanticConvetion.GEN_AI_SYSTEM_VLLM,
119
- SemanticConvetion.GEN_AI_ENVIRONMENT:
120
- environment,
121
- SemanticConvetion.GEN_AI_OPERATION:
122
- SemanticConvetion.GEN_AI_OPERATION_TYPE_CHAT,
123
- SemanticConvetion.GEN_AI_REQUEST_MODEL:
124
- model
125
- }
138
+ attributes = create_metrics_attributes(
139
+ service_name=application_name,
140
+ deployment_environment=environment,
141
+ operation=SemanticConvetion.GEN_AI_OPERATION_TYPE_CHAT,
142
+ system=SemanticConvetion.GEN_AI_SYSTEM_VLLM,
143
+ request_model=request_model,
144
+ server_address=server_address,
145
+ server_port=server_port,
146
+ response_model=request_model,
147
+ )
126
148
 
149
+ metrics["genai_client_usage_tokens"].record(
150
+ input_tokens + output_tokens, attributes
151
+ )
152
+ metrics["genai_client_operation_duration"].record(
153
+ end_time - start_time, attributes
154
+ )
155
+ metrics["genai_server_ttft"].record(
156
+ end_time - start_time, attributes
157
+ )
127
158
  metrics["genai_requests"].add(1, attributes)
128
- metrics["genai_total_tokens"].add(total_tokens, attributes)
129
159
  metrics["genai_completion_tokens"].add(output_tokens, attributes)
130
160
  metrics["genai_prompt_tokens"].add(input_tokens, attributes)
131
161
  metrics["genai_cost"].record(cost, attributes)
openlit/otel/events.py ADDED
@@ -0,0 +1,85 @@
1
+ """
2
+ Setups up OpenTelemetry events emitter
3
+ """
4
+
5
+ import os
6
+ from opentelemetry import _events, _logs
7
+ from opentelemetry.sdk.resources import SERVICE_NAME, TELEMETRY_SDK_NAME, DEPLOYMENT_ENVIRONMENT
8
+ from opentelemetry.sdk.resources import Resource
9
+ from opentelemetry.sdk._events import EventLoggerProvider
10
+ from opentelemetry.sdk._logs.export import BatchLogRecordProcessor, SimpleLogRecordProcessor
11
+ from opentelemetry.sdk._logs import LoggerProvider
12
+ from opentelemetry.sdk._logs.export import ConsoleLogExporter
13
+
14
+ if os.environ.get("OTEL_EXPORTER_OTLP_PROTOCOL") == "grpc":
15
+ from opentelemetry.exporter.otlp.proto.grpc._log_exporter import OTLPLogExporter
16
+ else:
17
+ from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
18
+
19
+ # Global flag to check if the events provider initialization is complete.
20
+ EVENTS_SET = False
21
+
22
+ def setup_events(application_name, environment, event_logger, otlp_endpoint, otlp_headers, disable_batch):
23
+ """Setup OpenTelemetry events with the given configuration.
24
+
25
+ Args:
26
+ application_name: Name of the application
27
+ environment: Deployment environment
28
+ event_logger: Optional pre-configured event logger provider
29
+ otlp_endpoint: Optional OTLP endpoint for exporter
30
+ otlp_headers: Optional headers for OTLP exporter
31
+
32
+ Returns:
33
+ EventLoggerProvider: The configured event logger provider
34
+ """
35
+ # If an external events_logger is provided, return it immediately.
36
+ if event_logger:
37
+ return event_logger
38
+
39
+ # Proceed with setting up a new events or configuration only if EVENTS_SET is False.
40
+ global EVENTS_SET
41
+
42
+ try:
43
+ if not EVENTS_SET:
44
+ # Create resource with service and environment information
45
+ resource = Resource.create(attributes={
46
+ SERVICE_NAME: application_name,
47
+ DEPLOYMENT_ENVIRONMENT: environment,
48
+ TELEMETRY_SDK_NAME: "openlit"}
49
+ )
50
+
51
+ # Initialize the LoggerProvider with the created resource.
52
+ logger_provider = LoggerProvider(resource=resource)
53
+
54
+ # Only set environment variables if you have a non-None value.
55
+ if otlp_endpoint is not None:
56
+ os.environ["OTEL_EXPORTER_OTLP_ENDPOINT"] = otlp_endpoint
57
+
58
+ if otlp_headers is not None:
59
+ if isinstance(otlp_headers, dict):
60
+ headers_str = ','.join(f"{key}={value}" for key, value in otlp_headers.items())
61
+ else:
62
+ headers_str = otlp_headers
63
+
64
+ os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = headers_str
65
+
66
+ # Configure the span exporter and processor based on whether the endpoint is effectively set.
67
+ if os.getenv("OTEL_EXPORTER_OTLP_ENDPOINT"):
68
+ event_exporter = OTLPLogExporter()
69
+ # pylint: disable=line-too-long
70
+ logger_provider.add_log_record_processor(SimpleLogRecordProcessor(event_exporter)) if disable_batch else logger_provider.add_log_record_processor(BatchLogRecordProcessor(event_exporter))
71
+ else:
72
+ event_exporter = ConsoleLogExporter()
73
+ logger_provider.add_log_record_processor(SimpleLogRecordProcessor(event_exporter))
74
+
75
+ _logs.set_logger_provider(logger_provider)
76
+ event_provider = EventLoggerProvider()
77
+ _events.set_event_logger_provider(event_provider)
78
+
79
+ EVENTS_SET = True
80
+
81
+ return _events.get_event_logger(__name__)
82
+
83
+ # pylint: disable=bare-except
84
+ except:
85
+ return None
openlit/otel/tracing.py CHANGED
@@ -1,4 +1,3 @@
1
- # pylint: disable=duplicate-code, line-too-long, ungrouped-imports
2
1
  """
3
2
  Setups up OpenTelemetry tracer
4
3
  """
@@ -21,17 +20,8 @@ TRACER_SET = False
21
20
 
22
21
  def setup_tracing(application_name, environment, tracer, otlp_endpoint, otlp_headers, disable_batch):
23
22
  """
24
- Sets up tracing with OpenTelemetry. Initializes the tracer provider and configures the span processor and exporter.
25
-
26
- Params:
27
- application_name (str): The name of the application to be used in traces.
28
- tracer (Tracer): Optional custom tracer. If provided, it is immediately returned and no setup is performed.
29
- otlp_endpoint (str): The OTLP exporter endpoint. Falls back to the OTEL_EXPORTER_OTLP_ENDPOINT environment variable if not specified.
30
- otlp_headers (dict): Headers for the OTLP request. Falls back to the OTEL_EXPORTER_OTLP_HEADERS environment variable if not specified.
31
- disable_batch (bool): Flag to disable the batch span processor in favor of a simpler processor for exporting.
32
-
33
- Returns:
34
- The provided custom tracer if not None; otherwise, a tracer instance configured according to the given parameters or environment variables.
23
+ Sets up tracing with OpenTelemetry.
24
+ Initializes the tracer provider and configures the span processor and exporter.
35
25
  """
36
26
 
37
27
  # If an external tracer is provided, return it immediately.
@@ -72,7 +62,7 @@ def setup_tracing(application_name, environment, tracer, otlp_endpoint, otlp_hea
72
62
  # Configure the span exporter and processor based on whether the endpoint is effectively set.
73
63
  if os.getenv("OTEL_EXPORTER_OTLP_ENDPOINT"):
74
64
  span_exporter = OTLPSpanExporter()
75
-
65
+ # pylint: disable=line-too-long
76
66
  span_processor = BatchSpanProcessor(span_exporter) if not disable_batch else SimpleSpanProcessor(span_exporter)
77
67
  else:
78
68
  span_exporter = ConsoleSpanExporter()
@@ -28,6 +28,13 @@ class SemanticConvetion:
28
28
  GEN_AI_SERVER_TBT = "gen_ai.server.time_per_output_token"
29
29
  GEN_AI_SERVER_TTFT = "gen_ai.server.time_to_first_token"
30
30
 
31
+ # GenAI Event Names (OTel Semconv)
32
+ GEN_AI_USER_MESSAGE = "gen_ai.user.message"
33
+ GEN_AI_SYSTEM_MESSAGE = "gen_ai.system.message"
34
+ GEN_AI_ASSISTANT_MESSAGE = "gen_ai.assistant.message"
35
+ GEN_AI_TOOL_MESSAGE = "gen_ai.tools.message"
36
+ GEN_AI_CHOICE = "gen_ai.choice"
37
+
31
38
  # GenAI Request Attributes (OTel Semconv)
32
39
  GEN_AI_OPERATION = "gen_ai.operation.name"
33
40
  GEN_AI_SYSTEM = "gen_ai.system"
@@ -64,6 +71,7 @@ class SemanticConvetion:
64
71
  GEN_AI_OPERATION_TYPE_FRAMEWORK = "framework"
65
72
  GEN_AI_OPERATION_TYPE_AGENT = "agent"
66
73
  GEN_AI_OPERATION_TYPE_CREATE_AGENT = "create_agent"
74
+ GEN_AI_OPERATION_TYPE_EXECUTE_AGENT_TASK = "execute_task"
67
75
 
68
76
  # GenAI Output Types (OTel Semconv)
69
77
  GEN_AI_OUTPUT_TYPE_IMAGE = "image"
@@ -88,9 +96,9 @@ class SemanticConvetion:
88
96
  GEN_AI_SYSTEM_XAI = "xai"
89
97
 
90
98
  # GenAI OpenAI Attributes (OTel Semconv)
91
- GEN_AI_OPENAI_REQUEST_SERVICE_TIER = "gen_ai.openai.request.service_tier"
92
- GEN_AI_OPENAI_RESPONSE_SERVICE_TIER = "gen_ai.openai.response.service_tier"
93
- GEN_AI_OPENAI_RESPONSE_SYSTEM_FINGERPRINT = "gen_ai.openai.response.system_fingerprint"
99
+ GEN_AI_REQUEST_SERVICE_TIER = "gen_ai.request.service_tier"
100
+ GEN_AI_RESPONSE_SERVICE_TIER = "gen_ai.response.service_tier"
101
+ GEN_AI_RESPONSE_SYSTEM_FINGERPRINT = "gen_ai.response.system_fingerprint"
94
102
 
95
103
  # GenAI System Names (Extra)
96
104
  GEN_AI_SYSTEM_HUGGING_FACE = "huggingface"
@@ -221,8 +229,12 @@ class SemanticConvetion:
221
229
  DB_SYSTEM_MILVUS = "milvus"
222
230
  DB_SYSTEM_ASTRA = "astra"
223
231
 
224
- # Agents
232
+ # GenAI Request Attributes (OTel Semconv)
225
233
  GEN_AI_AGENT_ID = "gen_ai.agent.id"
234
+ GEN_AI_AGENT_NAME = "gen_ai.agent.name"
235
+ GEN_AI_AGENT_DESCRIPTION = "gen_ai.agent.description"
236
+
237
+
226
238
  GEN_AI_AGENT_TYPE = "gen_ai.agent.type"
227
239
  GEN_AI_AGENT_TASK_ID = "gen_ai.agent.task.id"
228
240
  GEN_AI_AGENT_ROLE = "gen_ai.agent.role"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: openlit
3
- Version: 1.33.9
3
+ Version: 1.33.11
4
4
  Summary: OpenTelemetry-native Auto instrumentation library for monitoring LLM Applications and GPUs, facilitating the integration of observability into your GenAI-driven projects
5
5
  License: Apache-2.0
6
6
  Keywords: OpenTelemetry,otel,otlp,llm,tracing,openai,anthropic,claude,cohere,llm monitoring,observability,monitoring,gpt,Generative AI,chatGPT,gpu
@@ -220,7 +220,7 @@ Below is a detailed overview of the configuration options available, allowing yo
220
220
  | `otlp_endpoint` | Specifies the OTLP endpoint for transmitting telemetry data. | `None` | No |
221
221
  | `otlp_headers` | Defines headers for the OTLP exporter, useful for backends requiring authentication. | `None` | No |
222
222
  | `disable_batch` | A flag to disable batch span processing, favoring immediate dispatch. | `False` | No |
223
- | `trace_content` | Enables tracing of content for deeper insights. | `True` | No |
223
+ | `capture_message_content` | Enables tracing of content for deeper insights. | `True` | No |
224
224
  | `disabled_instrumentors`| List of instrumentors to disable. | `None` | No |
225
225
  | `disable_metrics` | If set, disables the collection of metrics. | `False` | No |
226
226
  | `pricing_json` | URL or file path of the pricing JSON file. | `https://github.com/openlit/openlit/blob/main/assets/pricing.json` | No |
@@ -0,0 +1,125 @@
1
+ openlit/__helpers.py,sha256=mu3guF9gH4GEkXhKj3ufhqKo-oitkENY-gXGTqFpdEQ,12281
2
+ openlit/__init__.py,sha256=87uE_wi6YF2FKkmVy0VLmRKeNMuJ9e6XrycIbad9T6A,23755
3
+ openlit/evals/__init__.py,sha256=nJe99nuLo1b5rf7pt9U9BCdSDedzbVi2Fj96cgl7msM,380
4
+ openlit/evals/all.py,sha256=oWrue3PotE-rB5WePG3MRYSA-ro6WivkclSHjYlAqGs,7154
5
+ openlit/evals/bias_detection.py,sha256=mCdsfK7x1vX7S3psC3g641IMlZ-7df3h-V6eiICj5N8,8154
6
+ openlit/evals/hallucination.py,sha256=Yn5OfWVJKynAiImV_aAqCvc0zqYjdJ3XUppCnMTy1pg,7507
7
+ openlit/evals/toxicity.py,sha256=Ii_kX2GToO9fDstDBuK4iN0tEQUkMoPWUBDMFFfeMC4,7000
8
+ openlit/evals/utils.py,sha256=lXgxyh1OZHeQzlzTLBAEnIYVaUt0YqYA6Uaygjpbv0s,8472
9
+ openlit/guard/__init__.py,sha256=B-D7iPadGFn5i7nEsQfVbS6feL1ViRht3zWTQ45Jgkg,417
10
+ openlit/guard/all.py,sha256=VNHQERad-4qAMWsJJrpW9QNkhM7U8v_wy20KtDtQgzM,9755
11
+ openlit/guard/prompt_injection.py,sha256=3e4DKxB7QDzM-xPCpwEuureiH_2s_OTJ9BSckknPpzY,5784
12
+ openlit/guard/restrict_topic.py,sha256=KTuWa7XeMsV4oXxOrD1CYZV0wXWxTfA0H3p_6q_IOsk,6444
13
+ openlit/guard/sensitive_topic.py,sha256=RgVw_laFERv0nNdzBsAd2_3yLomMOK-gVq-P7oj1bTk,5552
14
+ openlit/guard/utils.py,sha256=x0-_hAtNa_ogYR2GfnwiBF1rlqaXtaJ-rJeGguTDe-Q,7663
15
+ openlit/instrumentation/ag2/__init__.py,sha256=3CTrFvM4PyD8fdg456CNKHz4uMYUf2PVsp_L-3ovSHs,1839
16
+ openlit/instrumentation/ag2/ag2.py,sha256=o6wuvcUbboK2__RRpfmAqJ6w-1mjW5YHiaTI8xV5S_o,6908
17
+ openlit/instrumentation/ai21/__init__.py,sha256=uEAd9wWjEc9aR3IRAGciJqLD50eqvpnL6aTcZqQQIWg,2727
18
+ openlit/instrumentation/ai21/ai21.py,sha256=VmChUo-5V6qn2h4cxLPGPfEZhuYazcUj7dIfHWzapFI,6869
19
+ openlit/instrumentation/ai21/async_ai21.py,sha256=G7AesXLU4rB1t-KJsiZ65aCF71c4LRpAhday2tvF9dk,6973
20
+ openlit/instrumentation/ai21/utils.py,sha256=75Yy1Bi0qi1EqRsvxbiEo0qgoWr2w_UAVkPPCWlDVV0,19566
21
+ openlit/instrumentation/anthropic/__init__.py,sha256=d0NVazGdZRQ-cI0SRErP5OAoe1mUY9q0xhD9WqEUPFQ,1927
22
+ openlit/instrumentation/anthropic/anthropic.py,sha256=bpxHFyfCa50GgNUIWkghwcQ3vK7pEUhPv1NFPhvoaEI,22372
23
+ openlit/instrumentation/anthropic/async_anthropic.py,sha256=6EzI3SM7dqEfCD3vZgyOGHcMOyeBrEoE7VwOI5O-A8s,22458
24
+ openlit/instrumentation/assemblyai/__init__.py,sha256=AS6tEzcyEG7RP6bNDW_Kf4_rN-u-O1BNjJ3khX3AEUs,1565
25
+ openlit/instrumentation/assemblyai/assemblyai.py,sha256=18AQ7wrigCZd9RXwNZ36mn9fc3M3p2WkAHlT_sD5M3c,6292
26
+ openlit/instrumentation/astra/__init__.py,sha256=mEHT_p4q3bl9IiXAFqutGEvw37k6CCuWbmlI9Gx3xKY,8314
27
+ openlit/instrumentation/astra/astra.py,sha256=BHU2iaM8ihDfdyXZQZ3Hdv0sfciSOS1QEsqrLPNGnAk,12081
28
+ openlit/instrumentation/astra/async_astra.py,sha256=rlZeU5eIM_onR7rSxMRO0VSZL_p1eLpsU7nabTgBVlo,12093
29
+ openlit/instrumentation/azure_ai_inference/__init__.py,sha256=H4x-9lyEwen2Bk_Dltpd7z8RGOk1hltjjbuJBXq35HQ,2681
30
+ openlit/instrumentation/azure_ai_inference/async_azure_ai_inference.py,sha256=xI0GDqKmsbSp58IHalpNvEapM_h65oGYDbe24UVyXqg,29974
31
+ openlit/instrumentation/azure_ai_inference/azure_ai_inference.py,sha256=dgQ8GuSO-j0J6K77tcwK0mZSK3JnIdmT60kjwAV1dt8,29870
32
+ openlit/instrumentation/bedrock/__init__.py,sha256=ZdCBjgwK92cclnbFfF90NC6AsRreom3nT3CklbM7EmM,1555
33
+ openlit/instrumentation/bedrock/bedrock.py,sha256=jBDzm005Y9rbcTLxo-yShOtRb65NCDFyUYtggi0XRF0,12264
34
+ openlit/instrumentation/chroma/__init__.py,sha256=4ZeHY1OInRKQbb4qg8BVvGJtWN1XdzW6mosqi7-6ruE,3353
35
+ openlit/instrumentation/chroma/chroma.py,sha256=RGgRVpHdIdxBIZSa9FdaUUEmNOSV84jGkuucC75LdwY,10533
36
+ openlit/instrumentation/cohere/__init__.py,sha256=TIRq1obu-zqBji0HhMbFGfI2q5m-zw0nWbToKeZqpg4,2905
37
+ openlit/instrumentation/cohere/async_cohere.py,sha256=OhhDrQNr6Kc3iNx1oG2FK9WphtDCi1Rdcq0vxowKB1M,30657
38
+ openlit/instrumentation/cohere/cohere.py,sha256=e_GIwa1wrwWaU62wRYjg5veAFSiildWA9gtDOD-mNek,30540
39
+ openlit/instrumentation/controlflow/__init__.py,sha256=Y5xSj6bwkGufG989YtRGujzj8qrV4T5kXr4hzGb2nGk,2168
40
+ openlit/instrumentation/controlflow/controlflow.py,sha256=uWnCRa9nIVgfTpN3_Fc0PSW_3iGeqsoPj-QZ3NW35lg,5558
41
+ openlit/instrumentation/crawl4ai/__init__.py,sha256=TTFFeZkTgPZJAD1Tlr2LK-CTH2A7NkZK-5SHKFfFOtU,1947
42
+ openlit/instrumentation/crawl4ai/async_crawl4ai.py,sha256=TC3Pz4UGsLtPrpKgtHerET1W96p4sJUJ0YPbGdqITAs,4879
43
+ openlit/instrumentation/crawl4ai/crawl4ai.py,sha256=sQ5rL4QSorlBK37Y80vxIIbnMCaq91XWOYj9UEN_cow,4861
44
+ openlit/instrumentation/crewai/__init__.py,sha256=Yh-evzhxG-x3E2oRf71S1NIx_36JGu4TeIqFl1-2H5w,1834
45
+ openlit/instrumentation/crewai/crewai.py,sha256=1HBF04j-WZR5dxZCeFyaq3viaX8GsRR3wotW9wRzgOA,7201
46
+ openlit/instrumentation/dynamiq/__init__.py,sha256=LuIYSQpQH5Pk5Ngl_3Jy3bImGjZgh61La6sbVJfC1Io,2391
47
+ openlit/instrumentation/dynamiq/dynamiq.py,sha256=QKR-O6NupKaXyOAjOrON0V55mQrrY6lZfEUIj7yJGp4,5280
48
+ openlit/instrumentation/elevenlabs/__init__.py,sha256=LNbHWxnkq3ZPOnXKP01Wo0ger-YwC0G2rNzquivYMGQ,2691
49
+ openlit/instrumentation/elevenlabs/async_elevenlabs.py,sha256=eEr-0SIz28JhvJc4zYlcN9o9kNHoUskYVVd8RYclHWM,6822
50
+ openlit/instrumentation/elevenlabs/elevenlabs.py,sha256=5L1mpOYt8zRx5GWC5DzFMmKKE1zFVLKhvl9FNp__NcM,6805
51
+ openlit/instrumentation/embedchain/__init__.py,sha256=x2_qvJTwWog_mH6IY987Bp9mWxHtasqX2nZ3rwA7mb4,1959
52
+ openlit/instrumentation/embedchain/embedchain.py,sha256=CE5AdyQ1j4GhqPXfetTtk8KLS2z0Ul8INcLl5kDBboo,7914
53
+ openlit/instrumentation/firecrawl/__init__.py,sha256=kyVsAiDBC2djifqT2w1cPRAotiEyEabNvnBeSQxi9N8,1876
54
+ openlit/instrumentation/firecrawl/firecrawl.py,sha256=iltF8Qqexz8eL4QddJ5SEYC9fnL9snUWbE1z-bEljGA,3816
55
+ openlit/instrumentation/google_ai_studio/__init__.py,sha256=qKWyN5_BQyRnb0XG-v864Pe8t3OXa0ARYNVeE8mxgSE,2049
56
+ openlit/instrumentation/google_ai_studio/async_google_ai_studio.py,sha256=KsK9T7mLJF1RsW4S5iSOZjzZgLhwD27A5LYe6Dk1JeQ,11036
57
+ openlit/instrumentation/google_ai_studio/google_ai_studio.py,sha256=Q5neTYRDZ692JvABNmLZrSfBusKRHPGrnfO67OUv5sQ,11018
58
+ openlit/instrumentation/gpt4all/__init__.py,sha256=cO8mi3hhPDXcNwb9AwQ3-wQ_ydnOeBRwb0cptlQmAM4,1805
59
+ openlit/instrumentation/gpt4all/gpt4all.py,sha256=Ihzn8vj6uJXn_7Re2tm_VYfiGq-4MUI2MCObU6TaSHs,24107
60
+ openlit/instrumentation/gpu/__init__.py,sha256=flcKWN18lqrSiuqsQAGM7x7gPUr5YuZNSPlrocC1zcE,11028
61
+ openlit/instrumentation/groq/__init__.py,sha256=RszPvlPMD1j_uRu9MweyO_F_BRIqEExuB6sVQB2py4o,1901
62
+ openlit/instrumentation/groq/async_groq.py,sha256=ruBpy5amPZIG4as4s13-4X4B2PzthfzndCy1oyZ8TrM,24696
63
+ openlit/instrumentation/groq/groq.py,sha256=n8_UHC2mJlPHc6KFogDDt1gFhWPa5jAcZznr7nI-_xY,24610
64
+ openlit/instrumentation/haystack/__init__.py,sha256=jZPAXRilKTD1vww_4_K4jhYWNrMXngcs5pI29NTnFvI,1788
65
+ openlit/instrumentation/haystack/haystack.py,sha256=83Dbu6WdtpNXOZbzy8w46FWkfHmFB-fQQFtgkJ80pPI,3921
66
+ openlit/instrumentation/julep/__init__.py,sha256=g-hwXjvXAb5IDs5DR_P8rKsnD4beB9tupAzuuviQT3k,3216
67
+ openlit/instrumentation/julep/async_julep.py,sha256=URZQsxXEaQ4nHmOTeM1tsADRp4xQSe2-4BfCWVwGWDw,5313
68
+ openlit/instrumentation/julep/julep.py,sha256=0bGlsdW32JGu1fEdsfc-MDbOqqbcCrlkl-ojE98Zqys,5316
69
+ openlit/instrumentation/langchain/__init__.py,sha256=cNlumZ8fwLMlGVFMjNEndOIzooD4FQEOINX9tGVksII,3853
70
+ openlit/instrumentation/langchain/async_langchain.py,sha256=u_f7FZThF9VdsOPBlh8W6aytUUTRt9d5z2KD1zbz4UI,18302
71
+ openlit/instrumentation/langchain/langchain.py,sha256=cba9_cIDw652XGmdDXd35zRtoCqa6jQqO274MlPOxKw,18248
72
+ openlit/instrumentation/letta/__init__.py,sha256=K8PtRKxuueyqEYE3LzxWJ74IieNKSI6dmk9sNRd8Mt0,3031
73
+ openlit/instrumentation/letta/letta.py,sha256=y8yZWGtY6lDv4sA2UlUTZjktXxUOYyXatwz_yso-akA,8455
74
+ openlit/instrumentation/litellm/__init__.py,sha256=qRqfwDMhP5adKGI2vRaelAkN12i0e8jtJrT31VFFM5A,2374
75
+ openlit/instrumentation/litellm/async_litellm.py,sha256=BKUdGeJRV0J7ezsYkpVilPUcupcngIJIhEbO93RVTQs,30408
76
+ openlit/instrumentation/litellm/litellm.py,sha256=r6vdeWHiw9BvMXhQdnRxNrhBEYe7bBcHBXa8tpHLgUk,30314
77
+ openlit/instrumentation/llamaindex/__init__.py,sha256=2pmd9BKw3ab0OJ4yuJEg0-Jkn_haDbXvbUm5r2-rOCU,2007
78
+ openlit/instrumentation/llamaindex/llamaindex.py,sha256=MWPM_R1tAaEekMagCwMKpV87ATMNi3VLPbIPj3yMFp4,4078
79
+ openlit/instrumentation/mem0/__init__.py,sha256=IadP3bKgz2HCbnrh9S7AW24uDauGkzsIWeOQaGkOCc4,2447
80
+ openlit/instrumentation/mem0/mem0.py,sha256=ZKMU9W2n_mlWhmiQkGMrwR8OqAZuek6tRbdCDyakDIU,5335
81
+ openlit/instrumentation/milvus/__init__.py,sha256=qQqI-mOXEIsXGYwLyUGLEECcIHCm_6_KQZq0vFL90LY,2991
82
+ openlit/instrumentation/milvus/milvus.py,sha256=4unbncKnGLIAhudJMcxbd1ZmkzvBxLNNCwmHTV6sWkI,9123
83
+ openlit/instrumentation/mistral/__init__.py,sha256=5hh5s2-kudMbfkWD6Lhe5IQvrlZ5qA-Sv3laeXwyaPA,3060
84
+ openlit/instrumentation/mistral/async_mistral.py,sha256=8EDNnLHKei8vdlw4SeOpl6hiYSo7t2M2IlF0EwAvoaM,31099
85
+ openlit/instrumentation/mistral/mistral.py,sha256=U3X2DplgJwULmAtNzy6ZnxvXOI0Rv75PbPiHPi84hh4,30995
86
+ openlit/instrumentation/multion/__init__.py,sha256=Wr3lcDyG_YbOLkCUzBFhraAedF6E113tce8eSWlcz10,3149
87
+ openlit/instrumentation/multion/async_multion.py,sha256=HKp73QOMXxYuou4-S-9WAq3Jigm2Cvc_AysQ8v7loEw,6071
88
+ openlit/instrumentation/multion/multion.py,sha256=SrO25cv7dob1H4r00MsAa13Bj-WNsEwOeCoVfaCxeK8,6053
89
+ openlit/instrumentation/ollama/__init__.py,sha256=JjxSqEegmRoRqIVz7ZAq9dLyXPZ2DqV2wGmgXCENNpw,3004
90
+ openlit/instrumentation/ollama/async_ollama.py,sha256=LhDQPy3wLyNO9JWksUEeCx-DK9oIV3K98Cgwnp4RfKg,6538
91
+ openlit/instrumentation/ollama/ollama.py,sha256=wVyaX0quoiiCj1J3tyTiQx5Du5CmaWmt9e_lpCr7s6A,6434
92
+ openlit/instrumentation/ollama/utils.py,sha256=4QrOtBHHxfDY0iZbymk149-fGwv8rvmqGQOJD73t5LY,14582
93
+ openlit/instrumentation/openai/__init__.py,sha256=dfgMBHd2wAT24uckVBBqTy7pzN34ESzeymKzkUy6t58,4893
94
+ openlit/instrumentation/openai/async_openai.py,sha256=8-I6SMT1bFxNGLf2GW1Yfpny-lCvIcR5coKvytKL_yE,50635
95
+ openlit/instrumentation/openai/openai.py,sha256=t1-9KY1CCqeRno2_gXd3PxFkWm1ySwFweno4st2T3bE,50469
96
+ openlit/instrumentation/phidata/__init__.py,sha256=tqls5-UI6FzbjxYgq_qqAfALhWJm8dHn2NtgqiQA4f8,1557
97
+ openlit/instrumentation/phidata/phidata.py,sha256=-BU_g3FpGcttOt-W-QIER5qquCRORob2UFLdaOW3F_s,4819
98
+ openlit/instrumentation/pinecone/__init__.py,sha256=0guSEPmObaZiOF8yHExpOGY-qW_egHXfZGog3rKGi8M,2596
99
+ openlit/instrumentation/pinecone/pinecone.py,sha256=KtiBqh7QA9_-S8Daj2GsEByy5eLB_Uji-EAbPU4q1T4,8767
100
+ openlit/instrumentation/premai/__init__.py,sha256=uyw3sn5iHuO1Clg7iLs6LYpOWg1ahJp_orb2tySshZE,1836
101
+ openlit/instrumentation/premai/premai.py,sha256=rK039lmhuCLNgOB5Ap_Negz18mth6nrRlzwn1eX457g,27960
102
+ openlit/instrumentation/qdrant/__init__.py,sha256=5prYH46yQt2hSA5zgg7kKM6P_F_7s9OQtfRE_lqsaVc,8970
103
+ openlit/instrumentation/qdrant/async_qdrant.py,sha256=3IMiOt4X6C4JeXgnvpGFY5adyiEu07FJWmYipEk1wRc,15073
104
+ openlit/instrumentation/qdrant/qdrant.py,sha256=KAPvjmUMQO7SAL6seNX54Q_zSUKEEdTt1xoLHJ32NVU,15490
105
+ openlit/instrumentation/reka/__init__.py,sha256=39ZKj44PPUue8feG3bivAejfL66yD23pCJQ8hHnQKbY,1884
106
+ openlit/instrumentation/reka/async_reka.py,sha256=3ZBOlOtcAbyzE1A0XRUxdqxQr-sStrRiyaoUop7rqRc,9413
107
+ openlit/instrumentation/reka/reka.py,sha256=EkOrmAa9quIhmPcA-BcHfiGSXN93wWh_87aH9pYyULk,9395
108
+ openlit/instrumentation/together/__init__.py,sha256=MLLL2t8FyrytpfMueqcwekiqTKn-JN40HBD_LbZS_jQ,2661
109
+ openlit/instrumentation/together/async_together.py,sha256=MLfLI347GjPuT0JP51v-Zo-K7Iqg9ME6QCbmzDgjxpY,30544
110
+ openlit/instrumentation/together/together.py,sha256=D5xRFlgHtv0gszkOXOHcXVjGtrh8OVuqU9JbDgm0zI4,30440
111
+ openlit/instrumentation/transformers/__init__.py,sha256=f-kWX6_VdiOXqDa64iK6oJyYF3xkHuKxIBPTll-W7Lw,1467
112
+ openlit/instrumentation/transformers/transformers.py,sha256=gJpOiDZ76XRqgfOSLnFgLvmwzXAXBpOzSUtiU-nt_3g,9148
113
+ openlit/instrumentation/vertexai/__init__.py,sha256=mT28WCBvQfRCkAWGL6bd0EjEPHvMjaNcz6T3jsLZh8k,3745
114
+ openlit/instrumentation/vertexai/async_vertexai.py,sha256=BNnVQS_4tXWXAknonBmWBCN8rkoBKIr_RW0rwnlJTCI,23022
115
+ openlit/instrumentation/vertexai/vertexai.py,sha256=-wrsYOpFxHOikT4lsBHG58r0Aa_e0NU-j_pWrvW3TQ8,22936
116
+ openlit/instrumentation/vllm/__init__.py,sha256=8Su4DEpxdT2wr4Qr17heakzoGSbuq6ey1MmSVR_vbOA,1508
117
+ openlit/instrumentation/vllm/vllm.py,sha256=MD02lonL6QP0GYUF9sZx-ZC0R-je442ufiE1bH5dNeU,7754
118
+ openlit/otel/events.py,sha256=VrMjTpvnLtYRBHCiFwJojTQqqNpRCxoD4yJYeQrtPsk,3560
119
+ openlit/otel/metrics.py,sha256=URL7gzQbnxaNQJSX7oHRa15v6xi1GFmANn-5uFNL-aY,6378
120
+ openlit/otel/tracing.py,sha256=tjV2bEbEDPUB1Z46gE-UsJsb04sRdFrfbhIDkxViZc0,3103
121
+ openlit/semcov/__init__.py,sha256=kUd-ZSmXkXBo-osVve4ce_XEgr0fgEN7nXxoNm7kfEQ,12798
122
+ openlit-1.33.11.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
123
+ openlit-1.33.11.dist-info/METADATA,sha256=61sZfrJudmaPtlHZeZF0a5uCx0P41aBenq-2-Rqmlak,23512
124
+ openlit-1.33.11.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
125
+ openlit-1.33.11.dist-info/RECORD,,
@@ -1,121 +0,0 @@
1
- openlit/__helpers.py,sha256=-3OHwF5O9E1FbyA716kxlHLiwarCBgu5P7QJmlQMKcw,9615
2
- openlit/__init__.py,sha256=BxiPuq4jUzSai3RnOyWEX5HTUII5SKBNqclvrFnDerI,22412
3
- openlit/evals/__init__.py,sha256=nJe99nuLo1b5rf7pt9U9BCdSDedzbVi2Fj96cgl7msM,380
4
- openlit/evals/all.py,sha256=oWrue3PotE-rB5WePG3MRYSA-ro6WivkclSHjYlAqGs,7154
5
- openlit/evals/bias_detection.py,sha256=mCdsfK7x1vX7S3psC3g641IMlZ-7df3h-V6eiICj5N8,8154
6
- openlit/evals/hallucination.py,sha256=Yn5OfWVJKynAiImV_aAqCvc0zqYjdJ3XUppCnMTy1pg,7507
7
- openlit/evals/toxicity.py,sha256=Ii_kX2GToO9fDstDBuK4iN0tEQUkMoPWUBDMFFfeMC4,7000
8
- openlit/evals/utils.py,sha256=lXgxyh1OZHeQzlzTLBAEnIYVaUt0YqYA6Uaygjpbv0s,8472
9
- openlit/guard/__init__.py,sha256=B-D7iPadGFn5i7nEsQfVbS6feL1ViRht3zWTQ45Jgkg,417
10
- openlit/guard/all.py,sha256=VNHQERad-4qAMWsJJrpW9QNkhM7U8v_wy20KtDtQgzM,9755
11
- openlit/guard/prompt_injection.py,sha256=3e4DKxB7QDzM-xPCpwEuureiH_2s_OTJ9BSckknPpzY,5784
12
- openlit/guard/restrict_topic.py,sha256=KTuWa7XeMsV4oXxOrD1CYZV0wXWxTfA0H3p_6q_IOsk,6444
13
- openlit/guard/sensitive_topic.py,sha256=RgVw_laFERv0nNdzBsAd2_3yLomMOK-gVq-P7oj1bTk,5552
14
- openlit/guard/utils.py,sha256=x0-_hAtNa_ogYR2GfnwiBF1rlqaXtaJ-rJeGguTDe-Q,7663
15
- openlit/instrumentation/ag2/__init__.py,sha256=Nf9cDoXB16NYgZisvVQduFYJ5fpU90CNlMrIF4pSH-Y,1827
16
- openlit/instrumentation/ag2/ag2.py,sha256=9CGX7ZgpPkaRtmK5pYkbpmK5wYT_kr36He33dhwTJ_8,4459
17
- openlit/instrumentation/ai21/__init__.py,sha256=Wk23syYEbHuKBzdIabD3dfjZJTW-qzu7LgJPbG8mNHY,2549
18
- openlit/instrumentation/ai21/ai21.py,sha256=qADQ1jl86INPJGlWmDaXNkxgTts9VFR2AlgicI6zmSQ,33634
19
- openlit/instrumentation/ai21/async_ai21.py,sha256=hmdxM2P1AnPvLY1nZSIntfRPcCypA4J2wDEz9vXlRiM,33738
20
- openlit/instrumentation/anthropic/__init__.py,sha256=IoWGApFQ72DQYp9jN-LRDr0uRW3OamDgHG-mO23OSzs,1887
21
- openlit/instrumentation/anthropic/anthropic.py,sha256=n8FWAPXTA8ubqASoA1SU0spAQLY_qfP64M75xYoobAk,22356
22
- openlit/instrumentation/anthropic/async_anthropic.py,sha256=BIXG8R5GQRhLiXNIz8y-Msu0gUO7s8mJZIRtMAtPRuw,22442
23
- openlit/instrumentation/assemblyai/__init__.py,sha256=6uSNexxRJXIX-ZLitD3ow7ej3WK_N_W4ZxeIFb_eseY,1535
24
- openlit/instrumentation/assemblyai/assemblyai.py,sha256=dLCdL9SyfOocmzvT0iYG4UwM3giom_nKFlCoTQix5Bk,6262
25
- openlit/instrumentation/astra/__init__.py,sha256=G4alCOR6hXQvUQPDCS8lY1rj0Mz-KmrW5vVWk5loO78,8054
26
- openlit/instrumentation/astra/astra.py,sha256=ZG_q9mrgYE6T8nHSICiJpgksy8jegf13HL3pxI3m5d8,12109
27
- openlit/instrumentation/astra/async_astra.py,sha256=gVj7dHq7NZl2X0UYdKL0JaZiVCcAUp76qyXSQUA2_mo,12121
28
- openlit/instrumentation/azure_ai_inference/__init__.py,sha256=xmDk8eK0VB6C1TsH5oIciVnxAhIrXiqDzyqHgy6u51Q,2621
29
- openlit/instrumentation/azure_ai_inference/async_azure_ai_inference.py,sha256=oBXmNHdK39M6E7_QHvb0xG_t2fEov0_UjDJ5voeRyz4,29938
30
- openlit/instrumentation/azure_ai_inference/azure_ai_inference.py,sha256=2NAHgJLw0Vzp74IUBSIzK2CuhmgJdDtu3knNPTgYQ6k,29834
31
- openlit/instrumentation/bedrock/__init__.py,sha256=i32hjjdBu2JUGS1eytWjV2WX2_xvXw-iqrbXADSpHx0,1525
32
- openlit/instrumentation/bedrock/bedrock.py,sha256=IwV2y3e0yXcK11_6VJ6HjeaC9ic0Xc3rd4hqNyMBY6I,12234
33
- openlit/instrumentation/chroma/__init__.py,sha256=61lFpHlUEQUobsUJZHXdvOViKwsOH8AOvSfc4VgCmiM,3253
34
- openlit/instrumentation/chroma/chroma.py,sha256=yU2Ec09jmxrNtQdu3J2RmhgN5CtJwYSijfLIfvKFPi4,10561
35
- openlit/instrumentation/cohere/__init__.py,sha256=P8w30qt_RoXeQ5VsdW0KB4G1-WaWS9DkhTqaoCZuDeI,2825
36
- openlit/instrumentation/cohere/async_cohere.py,sha256=oNeugmNZJvqlyBTbo189cEBLRfDJJHoiXz_WDQxhcNY,30588
37
- openlit/instrumentation/cohere/cohere.py,sha256=kq9C3UKmofaGsAr5PD9aUDrHE64IweBlfr79rOIpc0s,30472
38
- openlit/instrumentation/controlflow/__init__.py,sha256=iKZ08IANfoN_n4o1TZJIK_C_t6RZQ6AS1H7kMfyBbYA,2118
39
- openlit/instrumentation/controlflow/controlflow.py,sha256=e_EeeyJMKEn5eQ1o-5N5tOY_-_tscDdfhQ2hJsPkv94,5543
40
- openlit/instrumentation/crawl4ai/__init__.py,sha256=CGkcbQijpKae_8GD_1ybDnCCk0MVu2AdV-ppFOg8mAA,1907
41
- openlit/instrumentation/crawl4ai/async_crawl4ai.py,sha256=Pjd0XgftrBuRT3mwatvosuHIBv4VOXB-vdQC5J9HRUQ,4864
42
- openlit/instrumentation/crawl4ai/crawl4ai.py,sha256=oS9sYjHt5tTTCL3FvkLiUNsP7SD94-zfwJ3nq7g-qQc,4846
43
- openlit/instrumentation/crewai/__init__.py,sha256=cETkkwnKYEMAKlMrHbZ9-RvcRUPYaSNqNIhy2-vCDK8,1794
44
- openlit/instrumentation/crewai/crewai.py,sha256=FbHXCrb525fu7wcvv7z0pcksY_cOHIoUM9-T0BjkWhk,7064
45
- openlit/instrumentation/dynamiq/__init__.py,sha256=2uIHHxFWca0g2YLO2RBfi2Al6uWUYvVZBfDiPOHCdpQ,2331
46
- openlit/instrumentation/dynamiq/dynamiq.py,sha256=Me8jSmm424kVrd1C8GwT8vw_ILX81S4q2TCJ2CkYq2w,5265
47
- openlit/instrumentation/elevenlabs/__init__.py,sha256=BZjAe-kzFJpKxT0tKksXVfZgirvgEp8qM3SfegWU5co,2631
48
- openlit/instrumentation/elevenlabs/async_elevenlabs.py,sha256=Q_owe_rNLcDHUvJZjmn9VMXYD080GWFKQ5-pFQle9go,6889
49
- openlit/instrumentation/elevenlabs/elevenlabs.py,sha256=Ky5K0d-rs5PSbq6zzZyiFK9SVuc002vABZVdk4EgcEQ,6872
50
- openlit/instrumentation/embedchain/__init__.py,sha256=8TYk1OEbz46yF19dr-gB_x80VZMagU3kJ8-QihPXTeA,1929
51
- openlit/instrumentation/embedchain/embedchain.py,sha256=rp5WmVS3uZ9taPH1YFYQ-IW4CIvy8If9cJUkMOyZSts,7922
52
- openlit/instrumentation/firecrawl/__init__.py,sha256=2QTcpPoaximsApdp68WD2iYR1_vZnKlkbAd4RHhgeOo,1836
53
- openlit/instrumentation/firecrawl/firecrawl.py,sha256=62FfdXgPqq3visLDzsmMgE1o2Up81GsWWDKSY7XOAk8,3801
54
- openlit/instrumentation/google_ai_studio/__init__.py,sha256=n_vOdZeccUvw8W_NYEpiw468sywqnD5O_E1CjuElXYM,2009
55
- openlit/instrumentation/google_ai_studio/async_google_ai_studio.py,sha256=vYPfpwvHQh1vLgR2JMhpzXLJ4e7vPU5NhjjsAR7UNwM,11006
56
- openlit/instrumentation/google_ai_studio/google_ai_studio.py,sha256=4EfHmAQG9Auihs0DaaSx1wBmC8FV-1gDAGh5cnltMIE,10988
57
- openlit/instrumentation/gpt4all/__init__.py,sha256=-59CP2B3-HGZJ_vC-fI9Dt-0BuQXRhSCWCjnaGeU15Q,1802
58
- openlit/instrumentation/gpt4all/gpt4all.py,sha256=lUV5Er5dvsEHm52edkQiKbTisETiJ8JuvEmqqtYFlnY,18866
59
- openlit/instrumentation/gpu/__init__.py,sha256=niMQS-tmVcHSFPGC39JWOnQK306Ve6GhsOUCMneOC88,11076
60
- openlit/instrumentation/groq/__init__.py,sha256=uW_0G6HSanQyK2dIXYhzR604pDiyPQfybzc37DsfSew,1911
61
- openlit/instrumentation/groq/async_groq.py,sha256=oui0qeQE9b86KiOhxS0sI9Q9p7p0URT8jhTFar0WY4U,20056
62
- openlit/instrumentation/groq/groq.py,sha256=WmkTD9TCm_LQOu72bJjMWOR93LgWuuiurT2ORulPXJ8,20020
63
- openlit/instrumentation/haystack/__init__.py,sha256=QK6XxxZUHX8vMv2Crk7rNBOc64iOOBLhJGL_lPlAZ8s,1758
64
- openlit/instrumentation/haystack/haystack.py,sha256=AZrDy9zlNyHlG0mroiWrVOyTRRNpVGVr0eYOqe1nsJc,3906
65
- openlit/instrumentation/julep/__init__.py,sha256=oonEVK41P5g4SYRm0E_H4zCVH9NM4aJ-UswXzF3Oiv0,3136
66
- openlit/instrumentation/julep/async_julep.py,sha256=CrxGpPDiEtb4UwnbBLBQDkg5oIAMDiB4HuAnHaBVTPU,5288
67
- openlit/instrumentation/julep/julep.py,sha256=2FdsXfWNyXjZbXosC5Gv_K2o5ylcwoUwGS5_8D_SUp0,5291
68
- openlit/instrumentation/langchain/__init__.py,sha256=gVtPZJifx-H8rqdZlU3GXdy3NtRF8yVb7PW7gE-ddJk,3592
69
- openlit/instrumentation/langchain/langchain.py,sha256=b5QHEqikX98qUzn-2bkvMr4e96a2_BeSADcZWPZaH5g,38968
70
- openlit/instrumentation/letta/__init__.py,sha256=sjjOuMvZ1EPGEluNW0WTuSXYPhrb453cBIizt88Ta3g,2951
71
- openlit/instrumentation/letta/letta.py,sha256=_oDJscvwSgY5qDKNPpagckoWFIiEAuj-lGFktACoVaA,8317
72
- openlit/instrumentation/litellm/__init__.py,sha256=Z-LsVHKJdPganHfJA_rWg7xAfQYkvLfpLdF-eckU4qY,2401
73
- openlit/instrumentation/litellm/async_litellm.py,sha256=0ITCQk40aVejM9azBm5F3z-3WsgNrVs4PxsOiElj8zE,27618
74
- openlit/instrumentation/litellm/litellm.py,sha256=wZ3YhDOMh0stnqHfNNM9J2SwizRwKs8EV8hv44qkGvI,27524
75
- openlit/instrumentation/llamaindex/__init__.py,sha256=vPtK65G6b-TwJERowVRUVl7f_nBSlFdwPBtpg8dOGos,1977
76
- openlit/instrumentation/llamaindex/llamaindex.py,sha256=fYmtx-kQatVEPBYdwXiEOoHthiHl-nR_WpcxIEJe6n4,4063
77
- openlit/instrumentation/mem0/__init__.py,sha256=guOkLoSKvHSVSmEWhCHMVRMUGEa5JzqI8CIluHtwirQ,2417
78
- openlit/instrumentation/mem0/mem0.py,sha256=crF9FVxDCWVy3m6npDAEcy02QbCLyXBG_VRVqC-rnDg,5320
79
- openlit/instrumentation/milvus/__init__.py,sha256=qi1yfmMrvkDtnrN_6toW8qC9BRL78bq7ayWpObJ8Bq4,2961
80
- openlit/instrumentation/milvus/milvus.py,sha256=O9vimn2i_8fUQt8afQejtIamG7NNVhDx2IgEeRjtrL4,9151
81
- openlit/instrumentation/mistral/__init__.py,sha256=niWn0gYNOTPS5zoTjtCciDqQVj-iJehnpdh7ElB-H9w,3088
82
- openlit/instrumentation/mistral/async_mistral.py,sha256=lyzBHR_ibNx0WwNOPHRMZg2l2BI1jcSmzgZW-dNvwG0,22325
83
- openlit/instrumentation/mistral/mistral.py,sha256=ljRz2cdYwu2gNOMvA1bw_-Ga6VlK5AcL_0la9sS-CyU,22166
84
- openlit/instrumentation/multion/__init__.py,sha256=DUt70uINLYi4xTxZ6D3bxKUBHYi1FpKbliQ6E7D_SeQ,3069
85
- openlit/instrumentation/multion/async_multion.py,sha256=SP6mToFM-NQBtwsEHsUBAF50vY5kJe81e7M44Agnm4s,5904
86
- openlit/instrumentation/multion/multion.py,sha256=6jbYcAxPrUAbrBShKD8ZIukBhk6ZLDRJw4ye-5q46Z0,5886
87
- openlit/instrumentation/ollama/__init__.py,sha256=cOax8PiypDuo_FC4WvDCYBRo7lH5nV9xU92h7k-eZbg,3812
88
- openlit/instrumentation/ollama/async_ollama.py,sha256=Q7ll9G6ILR6IGInsJVjfy64pj99jFtn0pSGoxqEHMcY,31495
89
- openlit/instrumentation/ollama/ollama.py,sha256=PlZdK0IJnM1WcloPC8ovt1eWxQZitlXKTJfo8FWHndc,31406
90
- openlit/instrumentation/openai/__init__.py,sha256=54pwkndSO1IS78Qqx1A-QNkObx5eJnsvWeMtDZj2lD8,4773
91
- openlit/instrumentation/openai/async_openai.py,sha256=4EXOLeubGI9AZrW0XmC4uc-HW-LpQuazJJe3jT8zWzs,50589
92
- openlit/instrumentation/openai/openai.py,sha256=qvJKRnfWNVuyNY-j01z126_YDLRd4agVVGUkezD7OLM,50418
93
- openlit/instrumentation/phidata/__init__.py,sha256=rfPCXYOIsJbxChee2p269UzkJ1Z-pvQbii7Fgrw1v2g,1527
94
- openlit/instrumentation/phidata/phidata.py,sha256=0a79IC4dZPB1V6HkzAjIiT4BoajBdLA1kG9FwhOa0uc,4682
95
- openlit/instrumentation/pinecone/__init__.py,sha256=Mv9bElqNs07_JQkYyNnO0wOM3hdbprmw7sttdMeKC7g,2526
96
- openlit/instrumentation/pinecone/pinecone.py,sha256=9YhMpseeHYQwR93dteiuRCzQYTJ1AOOtblSdZsbIYeU,8795
97
- openlit/instrumentation/premai/__init__.py,sha256=g7kBjxEsldQIiZpxH4LgXFmU-WSmqywW4aFxqwH-ptA,1844
98
- openlit/instrumentation/premai/premai.py,sha256=Igu6AS_4UUuAvB4quj5uk9UzhNdwX8lJhH9E8DF-0Ec,26648
99
- openlit/instrumentation/qdrant/__init__.py,sha256=GMlZgRBKoQMgrL4cFbAKwytfdTHLzJEIuTQMxp0uZO0,8940
100
- openlit/instrumentation/qdrant/async_qdrant.py,sha256=WLhPe94-ys-X-V3KFHjDVtwGnnA5edsyjpjRTZMoyv8,15101
101
- openlit/instrumentation/qdrant/qdrant.py,sha256=NHpGMQl6ssMzgxVIs2ptG2OM2r_VJv3I96r5EwTJqCI,15518
102
- openlit/instrumentation/reka/__init__.py,sha256=X0zZ8Q18Z_6pIpksa7pdWldK4SKZM7U24zNc2UeRXC8,1870
103
- openlit/instrumentation/reka/async_reka.py,sha256=5tSQQ9OKAICvHIDMoPU1RFf-H2kidKmlxTP7gwWVw2c,7464
104
- openlit/instrumentation/reka/reka.py,sha256=Q0N05FO7TcvtzTFQE8PzCdF5XNuv6Ame4O98GcWBLPc,7446
105
- openlit/instrumentation/together/__init__.py,sha256=pg3gNqT4HjL3E-QHvAkM0UNdF3obii0HHp2xRx32gRc,2713
106
- openlit/instrumentation/together/async_together.py,sha256=dMs-6kaBD6sJkcS-RNRhfX7SFO34xrUTQr547UmcOzo,29195
107
- openlit/instrumentation/together/together.py,sha256=m0f8Ijt-X65ULhTSHQC9QwfBKMOG_LdDkAQelk1zoeA,29099
108
- openlit/instrumentation/transformers/__init__.py,sha256=4GBtjzcJU4XiPexIUYEqF3pNZMeQw4Gm5B-cyumaFjs,1468
109
- openlit/instrumentation/transformers/transformers.py,sha256=gtlS_Cp49nMNAhIrh681CQbQYGyaKHzTqjJqpF2Wxag,7900
110
- openlit/instrumentation/vertexai/__init__.py,sha256=N3E9HtzefD-zC0fvmfGYiDmSqssoavp_i59wfuYLyMw,6079
111
- openlit/instrumentation/vertexai/async_vertexai.py,sha256=GiiGBHXdjahzb5XETTQ3bgih4DQB5F_MoANN2j1NeP0,55427
112
- openlit/instrumentation/vertexai/vertexai.py,sha256=wCx1PQzkjEKgWb11csC42SJc3_aOuwFPz76EtAw8UQ4,55180
113
- openlit/instrumentation/vllm/__init__.py,sha256=OVWalQ1dXvip1DUsjUGaHX4J-2FrSp-T-qCVOfw7OZo,1495
114
- openlit/instrumentation/vllm/vllm.py,sha256=U8qBWkQOQ7DzffMtjTxTJj77_iaNb9XVNNnriUawoTs,6552
115
- openlit/otel/metrics.py,sha256=URL7gzQbnxaNQJSX7oHRa15v6xi1GFmANn-5uFNL-aY,6378
116
- openlit/otel/tracing.py,sha256=fG3vl-flSZ30whCi7rrG25PlkIhhr8PhnfJYCkZzCD0,3895
117
- openlit/semcov/__init__.py,sha256=-yCgdM8BOl2gIUCZtAy2vMPfq7nLOBzt1PgkwTDl-E4,12358
118
- openlit-1.33.9.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
119
- openlit-1.33.9.dist-info/METADATA,sha256=EbxHxQa81i_AaPxejPp7zllnp7FZSDLy8V1E1medojU,23501
120
- openlit-1.33.9.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
121
- openlit-1.33.9.dist-info/RECORD,,