openlit 1.33.7__py3-none-any.whl → 1.33.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 (78) hide show
  1. openlit/__helpers.py +83 -0
  2. openlit/__init__.py +1 -1
  3. openlit/instrumentation/ag2/ag2.py +2 -2
  4. openlit/instrumentation/ai21/__init__.py +4 -4
  5. openlit/instrumentation/ai21/ai21.py +370 -319
  6. openlit/instrumentation/ai21/async_ai21.py +371 -319
  7. openlit/instrumentation/anthropic/__init__.py +4 -4
  8. openlit/instrumentation/anthropic/anthropic.py +321 -189
  9. openlit/instrumentation/anthropic/async_anthropic.py +323 -190
  10. openlit/instrumentation/assemblyai/__init__.py +1 -1
  11. openlit/instrumentation/assemblyai/assemblyai.py +59 -43
  12. openlit/instrumentation/astra/astra.py +4 -4
  13. openlit/instrumentation/astra/async_astra.py +4 -4
  14. openlit/instrumentation/azure_ai_inference/__init__.py +4 -4
  15. openlit/instrumentation/azure_ai_inference/async_azure_ai_inference.py +406 -252
  16. openlit/instrumentation/azure_ai_inference/azure_ai_inference.py +406 -252
  17. openlit/instrumentation/bedrock/__init__.py +1 -1
  18. openlit/instrumentation/bedrock/bedrock.py +115 -58
  19. openlit/instrumentation/chroma/chroma.py +4 -4
  20. openlit/instrumentation/cohere/__init__.py +33 -10
  21. openlit/instrumentation/cohere/async_cohere.py +610 -0
  22. openlit/instrumentation/cohere/cohere.py +410 -219
  23. openlit/instrumentation/controlflow/controlflow.py +2 -2
  24. openlit/instrumentation/crawl4ai/async_crawl4ai.py +2 -2
  25. openlit/instrumentation/crawl4ai/crawl4ai.py +2 -2
  26. openlit/instrumentation/crewai/crewai.py +2 -2
  27. openlit/instrumentation/dynamiq/dynamiq.py +2 -2
  28. openlit/instrumentation/elevenlabs/async_elevenlabs.py +73 -47
  29. openlit/instrumentation/elevenlabs/elevenlabs.py +73 -52
  30. openlit/instrumentation/embedchain/embedchain.py +4 -4
  31. openlit/instrumentation/firecrawl/firecrawl.py +2 -2
  32. openlit/instrumentation/google_ai_studio/__init__.py +9 -9
  33. openlit/instrumentation/google_ai_studio/async_google_ai_studio.py +183 -219
  34. openlit/instrumentation/google_ai_studio/google_ai_studio.py +183 -220
  35. openlit/instrumentation/gpt4all/gpt4all.py +17 -17
  36. openlit/instrumentation/groq/async_groq.py +14 -14
  37. openlit/instrumentation/groq/groq.py +14 -14
  38. openlit/instrumentation/haystack/haystack.py +2 -2
  39. openlit/instrumentation/julep/async_julep.py +2 -2
  40. openlit/instrumentation/julep/julep.py +2 -2
  41. openlit/instrumentation/langchain/langchain.py +36 -31
  42. openlit/instrumentation/letta/letta.py +6 -6
  43. openlit/instrumentation/litellm/async_litellm.py +20 -20
  44. openlit/instrumentation/litellm/litellm.py +20 -20
  45. openlit/instrumentation/llamaindex/llamaindex.py +2 -2
  46. openlit/instrumentation/mem0/mem0.py +2 -2
  47. openlit/instrumentation/milvus/milvus.py +4 -4
  48. openlit/instrumentation/mistral/async_mistral.py +18 -18
  49. openlit/instrumentation/mistral/mistral.py +18 -18
  50. openlit/instrumentation/multion/async_multion.py +2 -2
  51. openlit/instrumentation/multion/multion.py +2 -2
  52. openlit/instrumentation/ollama/async_ollama.py +29 -29
  53. openlit/instrumentation/ollama/ollama.py +29 -29
  54. openlit/instrumentation/openai/__init__.py +11 -230
  55. openlit/instrumentation/openai/async_openai.py +434 -409
  56. openlit/instrumentation/openai/openai.py +415 -393
  57. openlit/instrumentation/phidata/phidata.py +2 -2
  58. openlit/instrumentation/pinecone/pinecone.py +4 -4
  59. openlit/instrumentation/premai/premai.py +20 -20
  60. openlit/instrumentation/qdrant/async_qdrant.py +4 -4
  61. openlit/instrumentation/qdrant/qdrant.py +4 -4
  62. openlit/instrumentation/reka/async_reka.py +6 -6
  63. openlit/instrumentation/reka/reka.py +6 -6
  64. openlit/instrumentation/together/async_together.py +18 -18
  65. openlit/instrumentation/together/together.py +18 -18
  66. openlit/instrumentation/transformers/transformers.py +6 -6
  67. openlit/instrumentation/vertexai/async_vertexai.py +53 -53
  68. openlit/instrumentation/vertexai/vertexai.py +53 -53
  69. openlit/instrumentation/vllm/vllm.py +6 -6
  70. openlit/otel/metrics.py +98 -7
  71. openlit/semcov/__init__.py +113 -80
  72. {openlit-1.33.7.dist-info → openlit-1.33.9.dist-info}/METADATA +2 -1
  73. openlit-1.33.9.dist-info/RECORD +121 -0
  74. {openlit-1.33.7.dist-info → openlit-1.33.9.dist-info}/WHEEL +1 -1
  75. openlit/instrumentation/openai/async_azure_openai.py +0 -900
  76. openlit/instrumentation/openai/azure_openai.py +0 -898
  77. openlit-1.33.7.dist-info/RECORD +0 -122
  78. {openlit-1.33.7.dist-info → openlit-1.33.9.dist-info}/LICENSE +0 -0
openlit/otel/metrics.py CHANGED
@@ -18,6 +18,75 @@ else:
18
18
  # Global flag to check if the meter provider initialization is complete.
19
19
  METER_SET = False
20
20
 
21
+ _GEN_AI_CLIENT_OPERATION_DURATION_BUCKETS = [
22
+ 0.01,
23
+ 0.02,
24
+ 0.04,
25
+ 0.08,
26
+ 0.16,
27
+ 0.32,
28
+ 0.64,
29
+ 1.28,
30
+ 2.56,
31
+ 5.12,
32
+ 10.24,
33
+ 20.48,
34
+ 40.96,
35
+ 81.92,
36
+ ]
37
+
38
+ _GEN_AI_SERVER_TBT = [
39
+ 0.01,
40
+ 0.025,
41
+ 0.05,
42
+ 0.075,
43
+ 0.1,
44
+ 0.15,
45
+ 0.2,
46
+ 0.3,
47
+ 0.4,
48
+ 0.5,
49
+ 0.75,
50
+ 1.0,
51
+ 2.5
52
+ ]
53
+
54
+ _GEN_AI_SERVER_TFTT = [
55
+ 0.001,
56
+ 0.005,
57
+ 0.01,
58
+ 0.02,
59
+ 0.04,
60
+ 0.06,
61
+ 0.08,
62
+ 0.1,
63
+ 0.25,
64
+ 0.5,
65
+ 0.75,
66
+ 1.0,
67
+ 2.5,
68
+ 5.0,
69
+ 7.5,
70
+ 10.0
71
+ ]
72
+
73
+ _GEN_AI_CLIENT_TOKEN_USAGE_BUCKETS = [
74
+ 1,
75
+ 4,
76
+ 16,
77
+ 64,
78
+ 256,
79
+ 1024,
80
+ 4096,
81
+ 16384,
82
+ 65536,
83
+ 262144,
84
+ 1048576,
85
+ 4194304,
86
+ 16777216,
87
+ 67108864,
88
+ ]
89
+
21
90
  def setup_meter(application_name, environment, meter, otlp_endpoint, otlp_headers):
22
91
  """
23
92
  Sets up OpenTelemetry metrics with a counter for total requests.
@@ -73,26 +142,48 @@ def setup_meter(application_name, environment, meter, otlp_endpoint, otlp_header
73
142
 
74
143
  # Define and create the metrics
75
144
  metrics_dict = {
145
+ # OTel Semconv
146
+ "genai_client_usage_tokens": meter.create_histogram(
147
+ name=SemanticConvetion.GEN_AI_CLIENT_TOKEN_USAGE,
148
+ description="Measures number of input and output tokens used",
149
+ unit="{token}",
150
+ explicit_bucket_boundaries_advisory=_GEN_AI_CLIENT_TOKEN_USAGE_BUCKETS,
151
+ ),
152
+ "genai_client_operation_duration": meter.create_histogram(
153
+ name=SemanticConvetion.GEN_AI_CLIENT_OPERATION_DURATION,
154
+ description="GenAI operation duration",
155
+ unit="s",
156
+ explicit_bucket_boundaries_advisory=_GEN_AI_CLIENT_OPERATION_DURATION_BUCKETS,
157
+ ),
158
+ "genai_server_tbt": meter.create_histogram(
159
+ name=SemanticConvetion.GEN_AI_SERVER_TBT,
160
+ description="Time per output token generated after the first token for successful responses",
161
+ unit="s",
162
+ explicit_bucket_boundaries_advisory=_GEN_AI_SERVER_TBT,
163
+ ),
164
+ "genai_server_ttft": meter.create_histogram(
165
+ name=SemanticConvetion.GEN_AI_SERVER_TTFT,
166
+ description="Time to generate first token for successful responses",
167
+ unit="s",
168
+ explicit_bucket_boundaries_advisory=_GEN_AI_SERVER_TFTT,
169
+ ),
170
+
171
+ # Extra
76
172
  "genai_requests": meter.create_counter(
77
173
  name=SemanticConvetion.GEN_AI_REQUESTS,
78
174
  description="Number of requests to GenAI",
79
175
  unit="1",
80
176
  ),
81
177
  "genai_prompt_tokens": meter.create_counter(
82
- name=SemanticConvetion.GEN_AI_USAGE_PROMPT_TOKENS,
178
+ name=SemanticConvetion.GEN_AI_USAGE_INPUT_TOKENS,
83
179
  description="Number of prompt tokens processed.",
84
180
  unit="1",
85
181
  ),
86
182
  "genai_completion_tokens": meter.create_counter(
87
- name=SemanticConvetion.GEN_AI_USAGE_COMPLETION_TOKENS,
183
+ name=SemanticConvetion.GEN_AI_USAGE_OUTPUT_TOKENS,
88
184
  description="Number of completion tokens processed.",
89
185
  unit="1",
90
186
  ),
91
- "genai_total_tokens": meter.create_counter(
92
- name=SemanticConvetion.GEN_AI_USAGE_TOTAL_TOKENS,
93
- description="Number of total tokens processed.",
94
- unit="1",
95
- ),
96
187
  "genai_cost": meter.create_histogram(
97
188
  name=SemanticConvetion.GEN_AI_USAGE_COST,
98
189
  description="The distribution of GenAI request costs.",
@@ -16,30 +16,114 @@ class SemanticConvetion:
16
16
  the application's data logging and processing functionalities.
17
17
  """
18
18
 
19
- # GenAI General
20
- GEN_AI_ENDPOINT = "gen_ai.endpoint"
21
- GEN_AI_SYSTEM = "gen_ai.system"
22
- GEN_AI_ENVIRONMENT = "gen_ai.environment"
23
- GEN_AI_APPLICATION_NAME = "gen_ai.application_name"
24
- GEN_AI_TYPE = "gen_ai.operation.name"
25
- GEN_AI_HUB_OWNER = "gen_ai.hub.owner"
26
- GEN_AI_HUB_REPO = "gen_ai.hub.repo"
27
- GEN_AI_RETRIEVAL_SOURCE = "gen_ai.retrieval.source"
28
- GEN_AI_REQUESTS = "gen_ai.total.requests"
29
- GEN_AI_DATA_SOURCES = "gen_ai.data_source_count"
19
+ # General Attributes (OTel Semconv)
20
+ SERVER_PORT = "server.port"
21
+ SERVER_ADDRESS = "server.address"
22
+ ERROR_TYPE = "error.type"
30
23
 
31
- # GenAI Request
24
+ # GenAI Metric Names (OTel Semconv)
25
+ GEN_AI_CLIENT_TOKEN_USAGE = "gen_ai.client.token.usage"
26
+ GEN_AI_CLIENT_OPERATION_DURATION = "gen_ai.client.operation.duration"
27
+ GEN_AI_SERVER_REQUEST_DURATION = "gen_ai.server.request.duration"
28
+ GEN_AI_SERVER_TBT = "gen_ai.server.time_per_output_token"
29
+ GEN_AI_SERVER_TTFT = "gen_ai.server.time_to_first_token"
30
+
31
+ # GenAI Request Attributes (OTel Semconv)
32
+ GEN_AI_OPERATION = "gen_ai.operation.name"
33
+ GEN_AI_SYSTEM = "gen_ai.system"
34
+ GEN_AI_OUTPUT_TYPE = "gen_ai.output.type"
35
+ GEN_AI_ENDPOINT = "gen_ai.endpoint"
32
36
  GEN_AI_REQUEST_MODEL = "gen_ai.request.model"
37
+ GEN_AI_REQUEST_SEED = "gen_ai.request.seed"
38
+ GEN_AI_REQUEST_ENCODING_FORMATS = "gen_ai.request.encoding_formats"
39
+ GEN_AI_REQUEST_FREQUENCY_PENALTY = "gen_ai.request.frequency_penalty"
40
+ GEN_AI_REQUEST_MAX_TOKENS = "gen_ai.request.max_tokens"
41
+ GEN_AI_REQUEST_PRESENCE_PENALTY = "gen_ai.request.presence_penalty"
42
+ GEN_AI_REQUEST_STOP_SEQUENCES = "gen_ai.request.stop_sequences"
33
43
  GEN_AI_REQUEST_TEMPERATURE = "gen_ai.request.temperature"
34
- GEN_AI_REQUEST_TOP_P = "gen_ai.request.top_p"
35
44
  GEN_AI_REQUEST_TOP_K = "gen_ai.request.top_k"
36
- GEN_AI_REQUEST_MAX_TOKENS = "gen_ai.request.max_tokens"
45
+ GEN_AI_REQUEST_TOP_P = "gen_ai.request.top_p"
46
+
47
+ # GenAI Response Attributes (OTel Semconv)
48
+ GEN_AI_TOKEN_TYPE = "gen_ai.token.type"
49
+ GEN_AI_RESPONSE_FINISH_REASON = "gen_ai.response.finish_reasons"
50
+ GEN_AI_RESPONSE_ID = "gen_ai.response.id"
51
+ GEN_AI_RESPONSE_MODEL = "gen_ai.response.model"
52
+ GEN_AI_USAGE_INPUT_TOKENS = "gen_ai.usage.input_tokens"
53
+ GEN_AI_USAGE_OUTPUT_TOKENS = "gen_ai.usage.output_tokens"
54
+ GEN_AI_TOOL_CALL_ID = "gen_ai.tool.call.id"
55
+ GEN_AI_TOOL_NAME = "gen_ai.tool.name"
56
+
57
+ # GenAI Operation Types (OTel Semconv)
58
+ GEN_AI_OPERATION_TYPE_CHAT = "chat"
59
+ GEN_AI_OPERATION_TYPE_TOOLS = "execute_tool"
60
+ GEN_AI_OPERATION_TYPE_EMBEDDING = "embeddings"
61
+ GEN_AI_OPERATION_TYPE_IMAGE = "image"
62
+ GEN_AI_OPERATION_TYPE_AUDIO = "audio"
63
+ GEN_AI_OPERATION_TYPE_VECTORDB = "vectordb"
64
+ GEN_AI_OPERATION_TYPE_FRAMEWORK = "framework"
65
+ GEN_AI_OPERATION_TYPE_AGENT = "agent"
66
+ GEN_AI_OPERATION_TYPE_CREATE_AGENT = "create_agent"
67
+
68
+ # GenAI Output Types (OTel Semconv)
69
+ GEN_AI_OUTPUT_TYPE_IMAGE = "image"
70
+ GEN_AI_OUTPUT_TYPE_JSON = "json"
71
+ GEN_AI_OUTPUT_TYPE_SPEECH = "speech"
72
+ GEN_AI_OUTPUT_TYPE_TEXT = "text"
73
+
74
+ # GenAI System Names (OTel Semconv)
75
+ GEN_AI_SYSTEM_ANTHROPIC = "anthropic"
76
+ GEN_AI_SYSTEM_AWS_BEDROCK = "aws.bedrock"
77
+ GEN_AI_SYSTEM_AZURE_AI_INFERENCE = "az.ai.inference"
78
+ GEN_AI_SYSTEM_AZURE_OPENAI = "az.ai.openai"
79
+ GEN_AI_SYSTEM_COHERE = "cohere"
80
+ GEN_AI_SYSTEM_DEEPSEEK = "deepseek"
81
+ GEN_AI_SYSTEM_GEMINI = "gemini"
82
+ GEN_AI_SYSTEM_GROQ = "groq"
83
+ GEN_AI_SYSTEM_IBM_WATSON = "ibm.watson.ai"
84
+ GEN_AI_SYSTEM_MISTRAL = "mistral_ai"
85
+ GEN_AI_SYSTEM_OPENAI = "openai"
86
+ GEN_AI_SYSTEM_PERPLEXITY = "perplexity"
87
+ GEN_AI_SYSTEM_VERTEXAI = "vertex_ai"
88
+ GEN_AI_SYSTEM_XAI = "xai"
89
+
90
+ # 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"
94
+
95
+ # GenAI System Names (Extra)
96
+ GEN_AI_SYSTEM_HUGGING_FACE = "huggingface"
97
+ GEN_AI_SYSTEM_OLLAMA = "ollama"
98
+ GEN_AI_SYSTEM_GPT4ALL = "gpt4all"
99
+ GEN_AI_SYSTEM_ELEVENLABS = "elevenlabs"
100
+ GEN_AI_SYSTEM_VLLM = "vLLM"
101
+ GEN_AI_SYSTEM_GOOGLE_AI_STUDIO = "google.ai.studio"
102
+ GEN_AI_SYSTEM_REKAAI = "rekaai"
103
+ GEN_AI_SYSTEM_PREMAI = "premai"
104
+ GEN_AI_SYSTEM_LANGCHAIN = "langchain"
105
+ GEN_AI_SYSTEM_LLAMAINDEX = "llama_index"
106
+ GEN_AI_SYSTEM_HAYSTACK = "haystack"
107
+ GEN_AI_SYSTEM_EMBEDCHAIN = "embedchain"
108
+ GEN_AI_SYSTEM_MEM0 = "mem0"
109
+ GEN_AI_SYSTEM_LITELLM = "litellm"
110
+ GEN_AI_SYSTEM_CREWAI = "crewai"
111
+ GEN_AI_SYSTEM_AG2 = "ag2"
112
+ GEN_AI_SYSTEM_MULTION = "multion"
113
+ GEN_AI_SYSTEM_DYNAMIQ = "dynamiq"
114
+ GEN_AI_SYSTEM_PHIDATA = "phidata"
115
+ GEN_AI_SYSTEM_JULEP = "julep"
116
+ GEN_AI_SYSTEM_AI21 = "ai21"
117
+ GEN_AI_SYSTEM_CONTROLFLOW = "controlflow"
118
+ GEN_AI_SYSTEM_ASSEMBLYAI = "assemblyai"
119
+ GEN_AI_SYSTEM_CRAWL4AI = "crawl4ai"
120
+ GEN_AI_SYSTEM_FIRECRAWL = "firecrawl"
121
+ GEN_AI_SYSTEM_LETTA = "letta"
122
+ GEN_AI_SYSTEM_TOGETHER = "together"
123
+
124
+ # GenAI Request Attributes (Extra)
37
125
  GEN_AI_REQUEST_IS_STREAM = "gen_ai.request.is_stream"
38
126
  GEN_AI_REQUEST_USER = "gen_ai.request.user"
39
- GEN_AI_REQUEST_SEED = "gen_ai.request.seed"
40
- GEN_AI_REQUEST_FREQUENCY_PENALTY = "gen_ai.request.frequency_penalty"
41
- GEN_AI_REQUEST_PRESENCE_PENALTY = "gen_ai.request.presence_penalty"
42
- GEN_AI_REQUEST_EMBEDDING_FORMAT = "gen_ai.request.embedding_format"
43
127
  GEN_AI_REQUEST_EMBEDDING_DIMENSION = "gen_ai.request.embedding_dimension"
44
128
  GEN_AI_REQUEST_TOOL_CHOICE = "gen_ai.request.tool_choice"
45
129
  GEN_AI_REQUEST_AUDIO_VOICE = "gen_ai.request.audio_voice"
@@ -47,28 +131,23 @@ class SemanticConvetion:
47
131
  GEN_AI_REQUEST_AUDIO_SPEED = "gen_ai.request.audio_speed"
48
132
  GEN_AI_REQUEST_AUDIO_SETTINGS = "gen_ai.request.audio_settings"
49
133
  GEN_AI_REQUEST_AUDIO_DURATION = "gen_ai.request.audio_duration"
50
- GEN_AI_REQUEST_FINETUNE_STATUS = "gen_ai.request.fine_tune_status"
51
- GEN_AI_REQUEST_FINETUNE_MODEL_SUFFIX = "gen_ai.request.fine_tune_model_suffix"
52
- GEN_AI_REQUEST_FINETUNE_MODEL_EPOCHS = "gen_ai.request.fine_tune_n_epochs"
53
- GEN_AI_REQUEST_FINETUNE_MODEL_LRM = "gen_ai.request.learning_rate_multiplier"
54
- GEN_AI_REQUEST_FINETUNE_BATCH_SIZE = "gen_ai.request.fine_tune_batch_size"
55
- GEN_AI_REQUEST_VALIDATION_FILE = "gen_ai.request.validation_file"
56
- GEN_AI_REQUEST_TRAINING_FILE = "gen_ai.request.training_file"
57
-
58
134
  GEN_AI_REQUEST_IMAGE_SIZE = "gen_ai.request.image_size"
59
135
  GEN_AI_REQUEST_IMAGE_QUALITY = "gen_ai.request.image_quality"
60
136
  GEN_AI_REQUEST_IMAGE_STYLE = "gen_ai.request.image_style"
137
+ GEN_AI_HUB_OWNER = "gen_ai.hub.owner"
138
+ GEN_AI_HUB_REPO = "gen_ai.hub.repo"
139
+ GEN_AI_RETRIEVAL_SOURCE = "gen_ai.retrieval.source"
140
+ GEN_AI_REQUESTS = "gen_ai.total.requests"
141
+ GEN_AI_DATA_SOURCES = "gen_ai.data_source_count"
142
+ GEN_AI_ENVIRONMENT = "gen_ai.environment"
143
+ GEN_AI_APPLICATION_NAME = "gen_ai.application_name"
144
+ GEN_AI_SDK_VERSION = "gen_ai.sdk.version"
61
145
 
62
- # GenAI Usage
63
- GEN_AI_USAGE_PROMPT_TOKENS = "gen_ai.usage.input_tokens"
64
- GEN_AI_USAGE_COMPLETION_TOKENS = "gen_ai.usage.output_tokens"
146
+ # GenAI Response Attributes (Extra)
65
147
  GEN_AI_USAGE_TOTAL_TOKENS = "gen_ai.usage.total_tokens"
66
148
  GEN_AI_USAGE_COST = "gen_ai.usage.cost"
67
-
68
- # GenAI Response
69
- GEN_AI_RESPONSE_ID = "gen_ai.response.id"
70
- GEN_AI_RESPONSE_FINISH_REASON = "gen_ai.response.finish_reasons"
71
- GEN_AI_RESPONSE_IMAGE = "gen_ai.response.image" # Not used directly in code yet
149
+ GEN_AI_RESPONSE_IMAGE = "gen_ai.response.image"
150
+ GEN_AI_TOOL_CALLS = "gen_ai.response.tool_calls"
72
151
 
73
152
  # GenAI Content
74
153
  GEN_AI_CONTENT_PROMPT_EVENT = "gen_ai.content.prompt"
@@ -90,52 +169,6 @@ class SemanticConvetion:
90
169
  GEN_AI_EVAL_ANSWER_RELEVANCY = "gen_ai.eval.answer_relevancy"
91
170
  GEN_AI_EVAL_GROUNDEDNESS = "gen_ai.eval.groundedness"
92
171
 
93
- GEN_AI_TYPE_CHAT = "chat"
94
- GEN_AI_TYPE_EMBEDDING = "embedding"
95
- GEN_AI_TYPE_IMAGE = "image"
96
- GEN_AI_TYPE_AUDIO = "audio"
97
- GEN_AI_TYPE_FINETUNING = "fine_tuning"
98
- GEN_AI_TYPE_VECTORDB = "vectordb"
99
- GEN_AI_TYPE_FRAMEWORK = "framework"
100
- GEN_AI_TYPE_AGENT = "agent"
101
-
102
- GEN_AI_SYSTEM_HUGGING_FACE = "huggingface"
103
- GEN_AI_SYSTEM_OPENAI = "openai"
104
- GEN_AI_SYSTEM_AZURE_OPENAI = "azure_openai"
105
- GEN_AI_SYSTEM_ANTHROPIC = "anthropic"
106
- GEN_AI_SYSTEM_COHERE = "cohere"
107
- GEN_AI_SYSTEM_MISTRAL = "mistral"
108
- GEN_AI_SYSTEM_BEDROCK = "bedrock"
109
- GEN_AI_SYSTEM_VERTEXAI = "vertex_ai"
110
- GEN_AI_SYSTEM_GROQ = "groq"
111
- GEN_AI_SYSTEM_OLLAMA = "ollama"
112
- GEN_AI_SYSTEM_GPT4ALL = "gpt4all"
113
- GEN_AI_SYSTEM_ELEVENLABS = "elevenlabs"
114
- GEN_AI_SYSTEM_VLLM = "vLLM"
115
- GEN_AI_SYSTEM_GOOGLE_AI_STUDIO = "google-ai-studio"
116
- GEN_AI_SYSTEM_REKAAI = "rekaai"
117
- GEN_AI_SYSTEM_PREMAI = "premai"
118
- GEN_AI_SYSTEM_AZURE_AI_INFERENCE = "azure-ai-inference"
119
- GEN_AI_SYSTEM_LANGCHAIN = "langchain"
120
- GEN_AI_SYSTEM_LLAMAINDEX = "llama_index"
121
- GEN_AI_SYSTEM_HAYSTACK = "haystack"
122
- GEN_AI_SYSTEM_EMBEDCHAIN = "embedchain"
123
- GEN_AI_SYSTEM_MEM0 = "mem0"
124
- GEN_AI_SYSTEM_LITELLM = "litellm"
125
- GEN_AI_SYSTEM_CREWAI = "crewai"
126
- GEN_AI_SYSTEM_AG2 = "ag2"
127
- GEN_AI_SYSTEM_MULTION = "multion"
128
- GEN_AI_SYSTEM_DYNAMIQ = "dynamiq"
129
- GEN_AI_SYSTEM_PHIDATA = "phidata"
130
- GEN_AI_SYSTEM_JULEP = "julep"
131
- GEN_AI_SYSTEM_AI21 = "ai21"
132
- GEN_AI_SYSTEM_CONTROLFLOW = "controlflow"
133
- GEN_AI_SYSTEM_ASSEMBLYAI = "assemblyai"
134
- GEN_AI_SYSTEM_CRAWL4AI = "crawl4ai"
135
- GEN_AI_SYSTEM_FIRECRAWL = "firecrawl"
136
- GEN_AI_SYSTEM_LETTA = "letta"
137
- GEN_AI_SYSTEM_TOGETHER = "together"
138
-
139
172
  # Vector DB
140
173
  DB_OPERATION_API_ENDPOINT = "db.operation.api_endpoint"
141
174
  DB_REQUESTS = "db.total.requests"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: openlit
3
- Version: 1.33.7
3
+ Version: 1.33.9
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
@@ -110,6 +110,7 @@ This project proudly follows and maintains the [Semantic Conventions](https://gi
110
110
  - [✅ OpenObserve](https://docs.openlit.io/latest/connections/openobserve)
111
111
  - [✅ Highlight.io](https://docs.openlit.io/latest/connections/highlight)
112
112
  - [✅ SigLens](https://docs.openlit.io/latest/connections/siglens)
113
+ - [✅ Oodle](https://docs.openlit.io/latest/connections/oodle)
113
114
 
114
115
  ## 💿 Installation
115
116
 
@@ -0,0 +1,121 @@
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,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.0.1
2
+ Generator: poetry-core 2.1.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any