@@ -116,12 +116,17 @@ def call_llm_and_track_usage(
116
116
error = None
117
117
http_status = 200
118
118
usage : Dict [str , Any ] = {}
119
+ error_params : Dict [str , any ] = {}
119
120
120
121
try :
121
122
response = call_method (** kwargs )
122
123
except Exception as exc :
123
124
error = exc
124
125
http_status = getattr (exc , "status_code" , 0 ) # default to 0 becuase its likely an SDK error
126
+ error_params = {
127
+ "$ai_is_error" : True ,
128
+ "$ai_error" : exc .__str__ (),
129
+ }
125
130
finally :
126
131
end_time = time .time ()
127
132
latency = end_time - start_time
@@ -149,6 +154,7 @@ def call_llm_and_track_usage(
149
154
"$ai_trace_id" : posthog_trace_id ,
150
155
"$ai_base_url" : str (base_url ),
151
156
** (posthog_properties or {}),
157
+ ** (error_params or {}),
152
158
}
153
159
154
160
if posthog_distinct_id is None :
@@ -186,12 +192,17 @@ async def call_llm_and_track_usage_async(
186
192
error = None
187
193
http_status = 200
188
194
usage : Dict [str , Any ] = {}
195
+ error_params : Dict [str , any ] = {}
189
196
190
197
try :
191
198
response = await call_async_method (** kwargs )
192
199
except Exception as exc :
193
200
error = exc
194
201
http_status = getattr (exc , "status_code" , 0 ) # default to 0 because its likely an SDK error
202
+ error_params = {
203
+ "$ai_is_error" : True ,
204
+ "$ai_error" : exc .__str__ (),
205
+ }
195
206
finally :
196
207
end_time = time .time ()
197
208
latency = end_time - start_time
@@ -219,6 +230,7 @@ async def call_llm_and_track_usage_async(
219
230
"$ai_trace_id" : posthog_trace_id ,
220
231
"$ai_base_url" : str (base_url ),
221
232
** (posthog_properties or {}),
233
+ ** (error_params or {}),
222
234
}
223
235
224
236
if posthog_distinct_id is None :
0 commit comments