openlit 1.34.30__py3-none-any.whl → 1.34.31__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 (168) hide show
  1. openlit/__helpers.py +235 -86
  2. openlit/__init__.py +16 -13
  3. openlit/_instrumentors.py +2 -1
  4. openlit/evals/all.py +50 -21
  5. openlit/evals/bias_detection.py +47 -20
  6. openlit/evals/hallucination.py +53 -22
  7. openlit/evals/toxicity.py +50 -21
  8. openlit/evals/utils.py +54 -30
  9. openlit/guard/all.py +61 -19
  10. openlit/guard/prompt_injection.py +34 -14
  11. openlit/guard/restrict_topic.py +46 -15
  12. openlit/guard/sensitive_topic.py +34 -14
  13. openlit/guard/utils.py +58 -22
  14. openlit/instrumentation/ag2/__init__.py +24 -8
  15. openlit/instrumentation/ag2/ag2.py +34 -13
  16. openlit/instrumentation/ag2/async_ag2.py +34 -13
  17. openlit/instrumentation/ag2/utils.py +133 -30
  18. openlit/instrumentation/ai21/__init__.py +43 -14
  19. openlit/instrumentation/ai21/ai21.py +47 -21
  20. openlit/instrumentation/ai21/async_ai21.py +47 -21
  21. openlit/instrumentation/ai21/utils.py +299 -78
  22. openlit/instrumentation/anthropic/__init__.py +21 -4
  23. openlit/instrumentation/anthropic/anthropic.py +28 -17
  24. openlit/instrumentation/anthropic/async_anthropic.py +28 -17
  25. openlit/instrumentation/anthropic/utils.py +145 -35
  26. openlit/instrumentation/assemblyai/__init__.py +11 -2
  27. openlit/instrumentation/assemblyai/assemblyai.py +15 -4
  28. openlit/instrumentation/assemblyai/utils.py +120 -25
  29. openlit/instrumentation/astra/__init__.py +43 -10
  30. openlit/instrumentation/astra/astra.py +28 -5
  31. openlit/instrumentation/astra/async_astra.py +28 -5
  32. openlit/instrumentation/astra/utils.py +151 -55
  33. openlit/instrumentation/azure_ai_inference/__init__.py +43 -10
  34. openlit/instrumentation/azure_ai_inference/async_azure_ai_inference.py +53 -21
  35. openlit/instrumentation/azure_ai_inference/azure_ai_inference.py +53 -21
  36. openlit/instrumentation/azure_ai_inference/utils.py +307 -83
  37. openlit/instrumentation/bedrock/__init__.py +21 -4
  38. openlit/instrumentation/bedrock/bedrock.py +63 -25
  39. openlit/instrumentation/bedrock/utils.py +139 -30
  40. openlit/instrumentation/chroma/__init__.py +89 -16
  41. openlit/instrumentation/chroma/chroma.py +28 -6
  42. openlit/instrumentation/chroma/utils.py +167 -51
  43. openlit/instrumentation/cohere/__init__.py +63 -18
  44. openlit/instrumentation/cohere/async_cohere.py +63 -24
  45. openlit/instrumentation/cohere/cohere.py +63 -24
  46. openlit/instrumentation/cohere/utils.py +286 -73
  47. openlit/instrumentation/controlflow/__init__.py +35 -9
  48. openlit/instrumentation/controlflow/controlflow.py +66 -33
  49. openlit/instrumentation/crawl4ai/__init__.py +25 -10
  50. openlit/instrumentation/crawl4ai/async_crawl4ai.py +78 -31
  51. openlit/instrumentation/crawl4ai/crawl4ai.py +78 -31
  52. openlit/instrumentation/crewai/__init__.py +40 -15
  53. openlit/instrumentation/crewai/async_crewai.py +32 -7
  54. openlit/instrumentation/crewai/crewai.py +32 -7
  55. openlit/instrumentation/crewai/utils.py +159 -56
  56. openlit/instrumentation/dynamiq/__init__.py +46 -12
  57. openlit/instrumentation/dynamiq/dynamiq.py +74 -33
  58. openlit/instrumentation/elevenlabs/__init__.py +23 -4
  59. openlit/instrumentation/elevenlabs/async_elevenlabs.py +16 -4
  60. openlit/instrumentation/elevenlabs/elevenlabs.py +16 -4
  61. openlit/instrumentation/elevenlabs/utils.py +128 -25
  62. openlit/instrumentation/embedchain/__init__.py +11 -2
  63. openlit/instrumentation/embedchain/embedchain.py +68 -35
  64. openlit/instrumentation/firecrawl/__init__.py +24 -7
  65. openlit/instrumentation/firecrawl/firecrawl.py +46 -20
  66. openlit/instrumentation/google_ai_studio/__init__.py +45 -10
  67. openlit/instrumentation/google_ai_studio/async_google_ai_studio.py +67 -44
  68. openlit/instrumentation/google_ai_studio/google_ai_studio.py +67 -44
  69. openlit/instrumentation/google_ai_studio/utils.py +180 -67
  70. openlit/instrumentation/gpt4all/__init__.py +22 -7
  71. openlit/instrumentation/gpt4all/gpt4all.py +67 -29
  72. openlit/instrumentation/gpt4all/utils.py +285 -61
  73. openlit/instrumentation/gpu/__init__.py +128 -47
  74. openlit/instrumentation/groq/__init__.py +21 -4
  75. openlit/instrumentation/groq/async_groq.py +33 -21
  76. openlit/instrumentation/groq/groq.py +33 -21
  77. openlit/instrumentation/groq/utils.py +192 -55
  78. openlit/instrumentation/haystack/__init__.py +70 -24
  79. openlit/instrumentation/haystack/async_haystack.py +28 -6
  80. openlit/instrumentation/haystack/haystack.py +28 -6
  81. openlit/instrumentation/haystack/utils.py +196 -74
  82. openlit/instrumentation/julep/__init__.py +69 -19
  83. openlit/instrumentation/julep/async_julep.py +53 -27
  84. openlit/instrumentation/julep/julep.py +53 -28
  85. openlit/instrumentation/langchain/__init__.py +74 -63
  86. openlit/instrumentation/langchain/callback_handler.py +1100 -0
  87. openlit/instrumentation/langchain_community/__init__.py +13 -2
  88. openlit/instrumentation/langchain_community/async_langchain_community.py +23 -5
  89. openlit/instrumentation/langchain_community/langchain_community.py +23 -5
  90. openlit/instrumentation/langchain_community/utils.py +35 -9
  91. openlit/instrumentation/letta/__init__.py +68 -15
  92. openlit/instrumentation/letta/letta.py +99 -54
  93. openlit/instrumentation/litellm/__init__.py +43 -14
  94. openlit/instrumentation/litellm/async_litellm.py +51 -26
  95. openlit/instrumentation/litellm/litellm.py +51 -26
  96. openlit/instrumentation/litellm/utils.py +304 -102
  97. openlit/instrumentation/llamaindex/__init__.py +267 -90
  98. openlit/instrumentation/llamaindex/async_llamaindex.py +28 -6
  99. openlit/instrumentation/llamaindex/llamaindex.py +28 -6
  100. openlit/instrumentation/llamaindex/utils.py +204 -91
  101. openlit/instrumentation/mem0/__init__.py +11 -2
  102. openlit/instrumentation/mem0/mem0.py +50 -29
  103. openlit/instrumentation/milvus/__init__.py +10 -2
  104. openlit/instrumentation/milvus/milvus.py +31 -6
  105. openlit/instrumentation/milvus/utils.py +166 -67
  106. openlit/instrumentation/mistral/__init__.py +63 -18
  107. openlit/instrumentation/mistral/async_mistral.py +63 -24
  108. openlit/instrumentation/mistral/mistral.py +63 -24
  109. openlit/instrumentation/mistral/utils.py +277 -69
  110. openlit/instrumentation/multion/__init__.py +69 -19
  111. openlit/instrumentation/multion/async_multion.py +57 -26
  112. openlit/instrumentation/multion/multion.py +57 -26
  113. openlit/instrumentation/ollama/__init__.py +39 -18
  114. openlit/instrumentation/ollama/async_ollama.py +57 -26
  115. openlit/instrumentation/ollama/ollama.py +57 -26
  116. openlit/instrumentation/ollama/utils.py +226 -50
  117. openlit/instrumentation/openai/__init__.py +156 -32
  118. openlit/instrumentation/openai/async_openai.py +147 -67
  119. openlit/instrumentation/openai/openai.py +150 -67
  120. openlit/instrumentation/openai/utils.py +657 -185
  121. openlit/instrumentation/openai_agents/__init__.py +5 -1
  122. openlit/instrumentation/openai_agents/processor.py +110 -90
  123. openlit/instrumentation/phidata/__init__.py +13 -5
  124. openlit/instrumentation/phidata/phidata.py +67 -32
  125. openlit/instrumentation/pinecone/__init__.py +48 -9
  126. openlit/instrumentation/pinecone/async_pinecone.py +27 -5
  127. openlit/instrumentation/pinecone/pinecone.py +27 -5
  128. openlit/instrumentation/pinecone/utils.py +153 -47
  129. openlit/instrumentation/premai/__init__.py +22 -7
  130. openlit/instrumentation/premai/premai.py +51 -26
  131. openlit/instrumentation/premai/utils.py +246 -59
  132. openlit/instrumentation/pydantic_ai/__init__.py +49 -22
  133. openlit/instrumentation/pydantic_ai/pydantic_ai.py +69 -16
  134. openlit/instrumentation/pydantic_ai/utils.py +89 -24
  135. openlit/instrumentation/qdrant/__init__.py +19 -4
  136. openlit/instrumentation/qdrant/async_qdrant.py +33 -7
  137. openlit/instrumentation/qdrant/qdrant.py +33 -7
  138. openlit/instrumentation/qdrant/utils.py +228 -93
  139. openlit/instrumentation/reka/__init__.py +23 -10
  140. openlit/instrumentation/reka/async_reka.py +17 -11
  141. openlit/instrumentation/reka/reka.py +17 -11
  142. openlit/instrumentation/reka/utils.py +138 -36
  143. openlit/instrumentation/together/__init__.py +44 -12
  144. openlit/instrumentation/together/async_together.py +50 -27
  145. openlit/instrumentation/together/together.py +50 -27
  146. openlit/instrumentation/together/utils.py +301 -71
  147. openlit/instrumentation/transformers/__init__.py +2 -1
  148. openlit/instrumentation/transformers/transformers.py +13 -3
  149. openlit/instrumentation/transformers/utils.py +139 -36
  150. openlit/instrumentation/vertexai/__init__.py +81 -16
  151. openlit/instrumentation/vertexai/async_vertexai.py +33 -15
  152. openlit/instrumentation/vertexai/utils.py +123 -27
  153. openlit/instrumentation/vertexai/vertexai.py +33 -15
  154. openlit/instrumentation/vllm/__init__.py +12 -5
  155. openlit/instrumentation/vllm/utils.py +121 -31
  156. openlit/instrumentation/vllm/vllm.py +16 -10
  157. openlit/otel/events.py +35 -10
  158. openlit/otel/metrics.py +32 -24
  159. openlit/otel/tracing.py +24 -9
  160. openlit/semcov/__init__.py +72 -6
  161. {openlit-1.34.30.dist-info → openlit-1.34.31.dist-info}/METADATA +2 -1
  162. openlit-1.34.31.dist-info/RECORD +166 -0
  163. openlit/instrumentation/langchain/async_langchain.py +0 -102
  164. openlit/instrumentation/langchain/langchain.py +0 -102
  165. openlit/instrumentation/langchain/utils.py +0 -252
  166. openlit-1.34.30.dist-info/RECORD +0 -168
  167. {openlit-1.34.30.dist-info → openlit-1.34.31.dist-info}/LICENSE +0 -0
  168. {openlit-1.34.30.dist-info → openlit-1.34.31.dist-info}/WHEEL +0 -0
@@ -5,15 +5,12 @@ import importlib.metadata
5
5
  from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
6
6
  from wrapt import wrap_function_wrapper
7
7
 
8
- from openlit.instrumentation.ai21.ai21 import (
9
- chat, chat_rag
10
- )
11
- from openlit.instrumentation.ai21.async_ai21 import (
12
- async_chat, async_chat_rag
13
- )
8
+ from openlit.instrumentation.ai21.ai21 import chat, chat_rag
9
+ from openlit.instrumentation.ai21.async_ai21 import async_chat, async_chat_rag
14
10
 
15
11
  _instruments = ("ai21 >= 3.0.0",)
16
12
 
13
+
17
14
  class AI21Instrumentor(BaseInstrumentor):
18
15
  """
19
16
  An instrumentor for AI21 client library.
@@ -36,32 +33,64 @@ class AI21Instrumentor(BaseInstrumentor):
36
33
  wrap_function_wrapper(
37
34
  "ai21.clients.studio.resources.chat.chat_completions",
38
35
  "ChatCompletions.create",
39
- chat(version, environment, application_name,
40
- tracer, pricing_info, capture_message_content, metrics, disable_metrics),
36
+ chat(
37
+ version,
38
+ environment,
39
+ application_name,
40
+ tracer,
41
+ pricing_info,
42
+ capture_message_content,
43
+ metrics,
44
+ disable_metrics,
45
+ ),
41
46
  )
42
47
 
43
48
  # RAG completions
44
49
  wrap_function_wrapper(
45
50
  "ai21.clients.studio.resources.studio_conversational_rag",
46
51
  "StudioConversationalRag.create",
47
- chat_rag(version, environment, application_name,
48
- tracer, pricing_info, capture_message_content, metrics, disable_metrics),
52
+ chat_rag(
53
+ version,
54
+ environment,
55
+ application_name,
56
+ tracer,
57
+ pricing_info,
58
+ capture_message_content,
59
+ metrics,
60
+ disable_metrics,
61
+ ),
49
62
  )
50
63
 
51
64
  # Async chat completions
52
65
  wrap_function_wrapper(
53
66
  "ai21.clients.studio.resources.chat.async_chat_completions",
54
67
  "AsyncChatCompletions.create",
55
- async_chat(version, environment, application_name,
56
- tracer, pricing_info, capture_message_content, metrics, disable_metrics),
68
+ async_chat(
69
+ version,
70
+ environment,
71
+ application_name,
72
+ tracer,
73
+ pricing_info,
74
+ capture_message_content,
75
+ metrics,
76
+ disable_metrics,
77
+ ),
57
78
  )
58
79
 
59
80
  # Async RAG completions
60
81
  wrap_function_wrapper(
61
82
  "ai21.clients.studio.resources.studio_conversational_rag",
62
83
  "AsyncStudioConversationalRag.create",
63
- async_chat_rag(version, environment, application_name,
64
- tracer, pricing_info, capture_message_content, metrics, disable_metrics),
84
+ async_chat_rag(
85
+ version,
86
+ environment,
87
+ application_name,
88
+ tracer,
89
+ pricing_info,
90
+ capture_message_content,
91
+ metrics,
92
+ disable_metrics,
93
+ ),
65
94
  )
66
95
 
67
96
  def _uninstrument(self, **kwargs):
@@ -12,12 +12,21 @@ from openlit.instrumentation.ai21.utils import (
12
12
  process_chunk,
13
13
  process_chat_response,
14
14
  process_streaming_chat_response,
15
- process_chat_rag_response
15
+ process_chat_rag_response,
16
16
  )
17
17
  from openlit.semcov import SemanticConvention
18
18
 
19
- def chat(version, environment, application_name, tracer, pricing_info,
20
- capture_message_content, metrics, disable_metrics):
19
+
20
+ def chat(
21
+ version,
22
+ environment,
23
+ application_name,
24
+ tracer,
25
+ pricing_info,
26
+ capture_message_content,
27
+ metrics,
28
+ disable_metrics,
29
+ ):
21
30
  """
22
31
  Generates a telemetry wrapper for GenAI function call
23
32
  """
@@ -28,15 +37,15 @@ def chat(version, environment, application_name, tracer, pricing_info,
28
37
  """
29
38
 
30
39
  def __init__(
31
- self,
32
- wrapped,
33
- span,
34
- span_name,
35
- kwargs,
36
- server_address,
37
- server_port,
38
- **args,
39
- ):
40
+ self,
41
+ wrapped,
42
+ span,
43
+ span_name,
44
+ kwargs,
45
+ server_address,
46
+ server_port,
47
+ **args,
48
+ ):
40
49
  self.__wrapped__ = wrapped
41
50
  self._span = span
42
51
  self._span_name = span_name
@@ -77,7 +86,9 @@ def chat(version, environment, application_name, tracer, pricing_info,
77
86
  return chunk
78
87
  except StopIteration:
79
88
  try:
80
- with tracer.start_as_current_span(self._span_name, kind=SpanKind.CLIENT) as self._span:
89
+ with tracer.start_as_current_span(
90
+ self._span_name, kind=SpanKind.CLIENT
91
+ ) as self._span:
81
92
  process_streaming_chat_response(
82
93
  self,
83
94
  pricing_info=pricing_info,
@@ -86,7 +97,7 @@ def chat(version, environment, application_name, tracer, pricing_info,
86
97
  metrics=metrics,
87
98
  capture_message_content=capture_message_content,
88
99
  disable_metrics=disable_metrics,
89
- version=version
100
+ version=version,
90
101
  )
91
102
 
92
103
  except Exception as e:
@@ -100,7 +111,9 @@ def chat(version, environment, application_name, tracer, pricing_info,
100
111
  """
101
112
  # Check if streaming is enabled for the API call
102
113
  streaming = kwargs.get("stream", False)
103
- server_address, server_port = set_server_address_and_port(instance, "api.ai21.com", 443)
114
+ server_address, server_port = set_server_address_and_port(
115
+ instance, "api.ai21.com", 443
116
+ )
104
117
  request_model = kwargs.get("model", "jamba-1.5-mini")
105
118
 
106
119
  span_name = f"{SemanticConvention.GEN_AI_OPERATION_TYPE_CHAT} {request_model}"
@@ -109,7 +122,9 @@ def chat(version, environment, application_name, tracer, pricing_info,
109
122
  # Special handling for streaming response
110
123
  awaited_wrapped = wrapped(*args, **kwargs)
111
124
  span = tracer.start_span(span_name, kind=SpanKind.CLIENT)
112
- return TracedSyncStream(awaited_wrapped, span, span_name, kwargs, server_address, server_port)
125
+ return TracedSyncStream(
126
+ awaited_wrapped, span, span_name, kwargs, server_address, server_port
127
+ )
113
128
  else:
114
129
  # Handling for non-streaming responses
115
130
  with tracer.start_as_current_span(span_name, kind=SpanKind.CLIENT) as span:
@@ -131,7 +146,7 @@ def chat(version, environment, application_name, tracer, pricing_info,
131
146
  capture_message_content=capture_message_content,
132
147
  disable_metrics=disable_metrics,
133
148
  version=version,
134
- **kwargs
149
+ **kwargs,
135
150
  )
136
151
 
137
152
  except Exception as e:
@@ -141,8 +156,17 @@ def chat(version, environment, application_name, tracer, pricing_info,
141
156
 
142
157
  return wrapper
143
158
 
144
- def chat_rag(version, environment, application_name, tracer, pricing_info,
145
- capture_message_content, metrics, disable_metrics):
159
+
160
+ def chat_rag(
161
+ version,
162
+ environment,
163
+ application_name,
164
+ tracer,
165
+ pricing_info,
166
+ capture_message_content,
167
+ metrics,
168
+ disable_metrics,
169
+ ):
146
170
  """
147
171
  Generates a telemetry wrapper for GenAI RAG function call
148
172
  """
@@ -151,7 +175,9 @@ def chat_rag(version, environment, application_name, tracer, pricing_info,
151
175
  """
152
176
  Wraps the GenAI RAG function call.
153
177
  """
154
- server_address, server_port = set_server_address_and_port(instance, "api.ai21.com", 443)
178
+ server_address, server_port = set_server_address_and_port(
179
+ instance, "api.ai21.com", 443
180
+ )
155
181
  request_model = kwargs.get("model", "jamba-1.5-mini")
156
182
 
157
183
  span_name = f"{SemanticConvention.GEN_AI_OPERATION_TYPE_CHAT} {request_model}"
@@ -175,7 +201,7 @@ def chat_rag(version, environment, application_name, tracer, pricing_info,
175
201
  capture_message_content=capture_message_content,
176
202
  disable_metrics=disable_metrics,
177
203
  version=version,
178
- **kwargs
204
+ **kwargs,
179
205
  )
180
206
 
181
207
  except Exception as e:
@@ -12,12 +12,21 @@ from openlit.instrumentation.ai21.utils import (
12
12
  process_chunk,
13
13
  process_chat_response,
14
14
  process_streaming_chat_response,
15
- process_chat_rag_response
15
+ process_chat_rag_response,
16
16
  )
17
17
  from openlit.semcov import SemanticConvention
18
18
 
19
- def async_chat(version, environment, application_name, tracer, pricing_info,
20
- capture_message_content, metrics, disable_metrics):
19
+
20
+ def async_chat(
21
+ version,
22
+ environment,
23
+ application_name,
24
+ tracer,
25
+ pricing_info,
26
+ capture_message_content,
27
+ metrics,
28
+ disable_metrics,
29
+ ):
21
30
  """
22
31
  Generates a telemetry wrapper for GenAI function call
23
32
  """
@@ -28,15 +37,15 @@ def async_chat(version, environment, application_name, tracer, pricing_info,
28
37
  """
29
38
 
30
39
  def __init__(
31
- self,
32
- wrapped,
33
- span,
34
- span_name,
35
- kwargs,
36
- server_address,
37
- server_port,
38
- **args,
39
- ):
40
+ self,
41
+ wrapped,
42
+ span,
43
+ span_name,
44
+ kwargs,
45
+ server_address,
46
+ server_port,
47
+ **args,
48
+ ):
40
49
  self.__wrapped__ = wrapped
41
50
  self._span = span
42
51
  self._span_name = span_name
@@ -77,7 +86,9 @@ def async_chat(version, environment, application_name, tracer, pricing_info,
77
86
  return chunk
78
87
  except StopAsyncIteration:
79
88
  try:
80
- with tracer.start_as_current_span(self._span_name, kind=SpanKind.CLIENT) as self._span:
89
+ with tracer.start_as_current_span(
90
+ self._span_name, kind=SpanKind.CLIENT
91
+ ) as self._span:
81
92
  process_streaming_chat_response(
82
93
  self,
83
94
  pricing_info=pricing_info,
@@ -86,7 +97,7 @@ def async_chat(version, environment, application_name, tracer, pricing_info,
86
97
  metrics=metrics,
87
98
  capture_message_content=capture_message_content,
88
99
  disable_metrics=disable_metrics,
89
- version=version
100
+ version=version,
90
101
  )
91
102
 
92
103
  except Exception as e:
@@ -100,7 +111,9 @@ def async_chat(version, environment, application_name, tracer, pricing_info,
100
111
  """
101
112
  # Check if streaming is enabled for the API call
102
113
  streaming = kwargs.get("stream", False)
103
- server_address, server_port = set_server_address_and_port(instance, "api.ai21.com", 443)
114
+ server_address, server_port = set_server_address_and_port(
115
+ instance, "api.ai21.com", 443
116
+ )
104
117
  request_model = kwargs.get("model", "jamba-1.5-mini")
105
118
 
106
119
  span_name = f"{SemanticConvention.GEN_AI_OPERATION_TYPE_CHAT} {request_model}"
@@ -109,7 +122,9 @@ def async_chat(version, environment, application_name, tracer, pricing_info,
109
122
  # Special handling for streaming response
110
123
  awaited_wrapped = await wrapped(*args, **kwargs)
111
124
  span = tracer.start_span(span_name, kind=SpanKind.CLIENT)
112
- return TracedAsyncStream(awaited_wrapped, span, span_name, kwargs, server_address, server_port)
125
+ return TracedAsyncStream(
126
+ awaited_wrapped, span, span_name, kwargs, server_address, server_port
127
+ )
113
128
  else:
114
129
  # Handling for non-streaming responses
115
130
  with tracer.start_as_current_span(span_name, kind=SpanKind.CLIENT) as span:
@@ -131,7 +146,7 @@ def async_chat(version, environment, application_name, tracer, pricing_info,
131
146
  capture_message_content=capture_message_content,
132
147
  disable_metrics=disable_metrics,
133
148
  version=version,
134
- **kwargs
149
+ **kwargs,
135
150
  )
136
151
 
137
152
  except Exception as e:
@@ -141,8 +156,17 @@ def async_chat(version, environment, application_name, tracer, pricing_info,
141
156
 
142
157
  return wrapper
143
158
 
144
- def async_chat_rag(version, environment, application_name, tracer, pricing_info,
145
- capture_message_content, metrics, disable_metrics):
159
+
160
+ def async_chat_rag(
161
+ version,
162
+ environment,
163
+ application_name,
164
+ tracer,
165
+ pricing_info,
166
+ capture_message_content,
167
+ metrics,
168
+ disable_metrics,
169
+ ):
146
170
  """
147
171
  Generates a telemetry wrapper for GenAI RAG function call
148
172
  """
@@ -151,7 +175,9 @@ def async_chat_rag(version, environment, application_name, tracer, pricing_info,
151
175
  """
152
176
  Wraps the GenAI RAG function call.
153
177
  """
154
- server_address, server_port = set_server_address_and_port(instance, "api.ai21.com", 443)
178
+ server_address, server_port = set_server_address_and_port(
179
+ instance, "api.ai21.com", 443
180
+ )
155
181
  request_model = kwargs.get("model", "jamba-1.5-mini")
156
182
 
157
183
  span_name = f"{SemanticConvention.GEN_AI_OPERATION_TYPE_CHAT} {request_model}"
@@ -175,7 +201,7 @@ def async_chat_rag(version, environment, application_name, tracer, pricing_info,
175
201
  capture_message_content=capture_message_content,
176
202
  disable_metrics=disable_metrics,
177
203
  version=version,
178
- **kwargs
204
+ **kwargs,
179
205
  )
180
206
 
181
207
  except Exception as e: