@arizeai/openinference-instrumentation-beeai 1.1.0 → 1.1.2
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.
- package/dist/esm/helpers/getSerializedObjectSafe.d.ts.map +1 -1
- package/dist/esm/helpers/getSerializedObjectSafe.js +172 -165
- package/dist/esm/helpers/getSerializedObjectSafe.js.map +1 -1
- package/dist/esm/middleware.d.ts.map +1 -1
- package/dist/esm/middleware.js +89 -79
- package/dist/esm/middleware.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esnext/helpers/getSerializedObjectSafe.d.ts.map +1 -1
- package/dist/esnext/helpers/getSerializedObjectSafe.js +128 -121
- package/dist/esnext/helpers/getSerializedObjectSafe.js.map +1 -1
- package/dist/esnext/middleware.d.ts.map +1 -1
- package/dist/esnext/middleware.js +79 -69
- package/dist/esnext/middleware.js.map +1 -1
- package/dist/esnext/tsconfig.esnext.tsbuildinfo +1 -1
- package/dist/src/helpers/getSerializedObjectSafe.d.ts.map +1 -1
- package/dist/src/helpers/getSerializedObjectSafe.js +128 -121
- package/dist/src/helpers/getSerializedObjectSafe.js.map +1 -1
- package/dist/src/middleware.d.ts.map +1 -1
- package/dist/src/middleware.js +79 -69
- package/dist/src/middleware.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/helpers/getSerializedObjectSafe.ts +223 -214
- package/src/middleware.ts +103 -92
package/src/middleware.ts
CHANGED
|
@@ -207,99 +207,103 @@ export function createTelemetryMiddleware(
|
|
|
207
207
|
);
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
210
|
+
try {
|
|
211
|
+
/**
|
|
212
|
+
* create groupId span level (id does not exist)
|
|
213
|
+
* I use only the top-level groups like iterations other nested groups like tokens would introduce unuseful complexity
|
|
214
|
+
*/
|
|
215
|
+
if (
|
|
216
|
+
meta.groupId &&
|
|
217
|
+
!meta.trace.parentRunId &&
|
|
218
|
+
!groupIterations.includes(meta.groupId)
|
|
219
|
+
) {
|
|
220
|
+
spansMap.set(
|
|
221
|
+
meta.groupId,
|
|
222
|
+
createSpan({
|
|
223
|
+
id: meta.groupId,
|
|
224
|
+
name: meta.groupId,
|
|
225
|
+
target: "groupId",
|
|
226
|
+
data: {
|
|
227
|
+
[SemanticConventions.OPENINFERENCE_SPAN_KIND]: "Chain",
|
|
228
|
+
},
|
|
229
|
+
startedAt: convertDateToPerformance(meta.createdAt),
|
|
230
|
+
}),
|
|
231
|
+
);
|
|
232
|
+
groupIterations.push(meta.groupId);
|
|
233
|
+
}
|
|
233
234
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
235
|
+
const { spanId, parentSpanId } = idNameManager.getIds({
|
|
236
|
+
path: meta.path,
|
|
237
|
+
id: meta.id,
|
|
238
|
+
runId: meta.trace.runId,
|
|
239
|
+
parentRunId: meta.trace.parentRunId,
|
|
240
|
+
groupId: meta.groupId,
|
|
241
|
+
});
|
|
241
242
|
|
|
242
|
-
|
|
243
|
+
const serializedData = getSerializedObjectSafe(data, meta);
|
|
243
244
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
245
|
+
// skip partialUpdate events with no data
|
|
246
|
+
if (meta.name === partialUpdateEventName && isEmpty(serializedData)) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
248
249
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
250
|
+
const span = createSpan({
|
|
251
|
+
id: spanId,
|
|
252
|
+
name: meta.name,
|
|
253
|
+
target: meta.path,
|
|
254
|
+
...(parentSpanId && { parent: { id: parentSpanId } }),
|
|
255
|
+
ctx: meta.context,
|
|
256
|
+
data: serializedData,
|
|
257
|
+
error: getErrorSafe(data),
|
|
258
|
+
startedAt: convertDateToPerformance(meta.createdAt),
|
|
259
|
+
});
|
|
259
260
|
|
|
260
|
-
|
|
261
|
+
const lastIteration = groupIterations[groupIterations.length - 1];
|
|
261
262
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
263
|
+
// delete the `partialUpdate` event if does not have nested spans
|
|
264
|
+
const lastIterationEventSpanId = eventsIterationsMap
|
|
265
|
+
.get(lastIteration)
|
|
266
|
+
?.get(meta.name);
|
|
267
|
+
if (
|
|
268
|
+
lastIterationEventSpanId &&
|
|
269
|
+
partialUpdateEventName === meta.name &&
|
|
270
|
+
spansMap.has(lastIterationEventSpanId)
|
|
271
|
+
) {
|
|
272
|
+
const { context } = spansMap.get(lastIterationEventSpanId)!;
|
|
273
|
+
if (parentIdsMap.has(context.span_id)) {
|
|
274
|
+
spansToDeleteMap.set(lastIterationEventSpanId, undefined);
|
|
275
|
+
} else {
|
|
276
|
+
// delete span
|
|
277
|
+
cleanSpanSources({ spanId: lastIterationEventSpanId });
|
|
278
|
+
spansMap.delete(lastIterationEventSpanId);
|
|
279
|
+
}
|
|
278
280
|
}
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
// create new span
|
|
282
|
-
spansMap.set(span.context.span_id, span);
|
|
283
|
-
// update number of nested spans for parent_id if exists
|
|
284
|
-
if (span.parent_id) {
|
|
285
|
-
parentIdsMap.set(
|
|
286
|
-
span.parent_id,
|
|
287
|
-
(parentIdsMap.get(span.parent_id) || 0) + 1,
|
|
288
|
-
);
|
|
289
|
-
}
|
|
290
281
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
if
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
.
|
|
297
|
-
|
|
298
|
-
eventsIterationsMap.set(
|
|
299
|
-
lastIteration,
|
|
300
|
-
new Map().set(meta.name, span.context.span_id),
|
|
282
|
+
// create new span
|
|
283
|
+
spansMap.set(span.context.span_id, span);
|
|
284
|
+
// update number of nested spans for parent_id if exists
|
|
285
|
+
if (span.parent_id) {
|
|
286
|
+
parentIdsMap.set(
|
|
287
|
+
span.parent_id,
|
|
288
|
+
(parentIdsMap.get(span.parent_id) || 0) + 1,
|
|
301
289
|
);
|
|
302
290
|
}
|
|
291
|
+
|
|
292
|
+
// save the last event for each iteration
|
|
293
|
+
if (groupIterations.length > 0) {
|
|
294
|
+
if (eventsIterationsMap.has(lastIteration)) {
|
|
295
|
+
eventsIterationsMap
|
|
296
|
+
.get(lastIteration)!
|
|
297
|
+
.set(meta.name, span.context.span_id);
|
|
298
|
+
} else {
|
|
299
|
+
eventsIterationsMap.set(
|
|
300
|
+
lastIteration,
|
|
301
|
+
new Map().set(meta.name, span.context.span_id),
|
|
302
|
+
);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
} catch (e) {
|
|
306
|
+
diag.warn("Instrumentation error", e);
|
|
303
307
|
}
|
|
304
308
|
});
|
|
305
309
|
|
|
@@ -309,16 +313,23 @@ export function createTelemetryMiddleware(
|
|
|
309
313
|
event.name === successLLMEventName &&
|
|
310
314
|
event.creator instanceof BaseAgent,
|
|
311
315
|
(data: InferCallbackValue<ReActAgentCallbacks["success"]>) => {
|
|
312
|
-
|
|
316
|
+
try {
|
|
317
|
+
const { data: dataObject, memory } = data;
|
|
313
318
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
319
|
+
generatedMessage = {
|
|
320
|
+
role: dataObject.role,
|
|
321
|
+
text: dataObject.text,
|
|
322
|
+
};
|
|
323
|
+
history = memory.messages.map((msg) => ({
|
|
324
|
+
text: msg.text,
|
|
325
|
+
role: msg.role,
|
|
326
|
+
}));
|
|
327
|
+
} catch (e) {
|
|
328
|
+
diag.warn(
|
|
329
|
+
"Instrumentation error. Unable to map messages to history",
|
|
330
|
+
e,
|
|
331
|
+
);
|
|
332
|
+
}
|
|
322
333
|
},
|
|
323
334
|
);
|
|
324
335
|
};
|