@arizeai/openinference-instrumentation-openai 0.0.4 → 0.1.0

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 (36) hide show
  1. package/dist/esm/instrumentation.d.ts.map +1 -1
  2. package/dist/esm/instrumentation.js +369 -44
  3. package/dist/esm/instrumentation.js.map +1 -1
  4. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  5. package/dist/esm/typeUtils.d.ts +8 -0
  6. package/dist/esm/typeUtils.d.ts.map +1 -0
  7. package/dist/esm/typeUtils.js +10 -0
  8. package/dist/esm/typeUtils.js.map +1 -0
  9. package/dist/esm/version.d.ts +1 -1
  10. package/dist/esm/version.js +1 -1
  11. package/dist/esnext/instrumentation.d.ts.map +1 -1
  12. package/dist/esnext/instrumentation.js +244 -43
  13. package/dist/esnext/instrumentation.js.map +1 -1
  14. package/dist/esnext/tsconfig.esnext.tsbuildinfo +1 -1
  15. package/dist/esnext/typeUtils.d.ts +8 -0
  16. package/dist/esnext/typeUtils.d.ts.map +1 -0
  17. package/dist/esnext/typeUtils.js +10 -0
  18. package/dist/esnext/typeUtils.js.map +1 -0
  19. package/dist/esnext/version.d.ts +1 -1
  20. package/dist/esnext/version.js +1 -1
  21. package/dist/src/instrumentation.d.ts.map +1 -1
  22. package/dist/src/instrumentation.js +256 -43
  23. package/dist/src/instrumentation.js.map +1 -1
  24. package/dist/src/typeUtils.d.ts +8 -0
  25. package/dist/src/typeUtils.d.ts.map +1 -0
  26. package/dist/src/typeUtils.js +14 -0
  27. package/dist/src/typeUtils.js.map +1 -0
  28. package/dist/src/version.d.ts +1 -1
  29. package/dist/src/version.js +1 -1
  30. package/dist/test/openai.test.js +344 -1
  31. package/dist/test/openai.test.js.map +1 -1
  32. package/dist/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +2 -2
  34. package/src/instrumentation.ts +303 -65
  35. package/src/typeUtils.ts +9 -0
  36. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,+BAA+B,EAGhC,MAAM,gCAAgC,CAAC;AA4BxC,qBAAa,qBAAsB,SAAQ,mBAAmB,CAAC,OAAO,MAAM,CAAC;gBAC/D,MAAM,CAAC,EAAE,qBAAqB;IAQ1C,SAAS,CAAC,IAAI,IAAI,+BAA+B,CAAC,OAAO,MAAM,CAAC;IAShE;;OAEG;IACH,OAAO,CAAC,KAAK;IAgKb;;OAEG;IACH,OAAO,CAAC,OAAO;CAKhB"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,+BAA+B,EAGhC,MAAM,gCAAgC,CAAC;AAkCxC,qBAAa,qBAAsB,SAAQ,mBAAmB,CAAC,OAAO,MAAM,CAAC;gBAC/D,MAAM,CAAC,EAAE,qBAAqB;IAQ1C,SAAS,CAAC,IAAI,IAAI,+BAA+B,CAAC,OAAO,MAAM,CAAC;IAShE;;OAEG;IACH,OAAO,CAAC,KAAK;IAuOb;;OAEG;IACH,OAAO,CAAC,OAAO;CAKhB"}
@@ -24,6 +24,42 @@ var __assign = (this && this.__assign) || function () {
24
24
  };
25
25
  return __assign.apply(this, arguments);
26
26
  };
27
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
28
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
29
+ return new (P || (P = Promise))(function (resolve, reject) {
30
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
31
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
32
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
33
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
34
+ });
35
+ };
36
+ var __generator = (this && this.__generator) || function (thisArg, body) {
37
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
38
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
39
+ function verb(n) { return function (v) { return step([n, v]); }; }
40
+ function step(op) {
41
+ if (f) throw new TypeError("Generator is already executing.");
42
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
43
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
44
+ if (y = 0, t) op = [op[0] & 2, t.value];
45
+ switch (op[0]) {
46
+ case 0: case 1: t = op; break;
47
+ case 4: _.label++; return { value: op[1], done: false };
48
+ case 5: _.label++; y = op[1]; op = [0]; continue;
49
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
50
+ default:
51
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
52
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
53
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
54
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
55
+ if (t[2]) _.ops.pop();
56
+ _.trys.pop(); continue;
57
+ }
58
+ op = body.call(thisArg, _);
59
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
60
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
61
+ }
62
+ };
27
63
  var __rest = (this && this.__rest) || function (s, e) {
28
64
  var t = {};
29
65
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -35,10 +71,45 @@ var __rest = (this && this.__rest) || function (s, e) {
35
71
  }
36
72
  return t;
37
73
  };
74
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
75
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
76
+ var m = o[Symbol.asyncIterator], i;
77
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
78
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
79
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
80
+ };
81
+ var __read = (this && this.__read) || function (o, n) {
82
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
83
+ if (!m) return o;
84
+ var i = m.call(o), r, ar = [], e;
85
+ try {
86
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
87
+ }
88
+ catch (error) { e = { error: error }; }
89
+ finally {
90
+ try {
91
+ if (r && !r.done && (m = i["return"])) m.call(i);
92
+ }
93
+ finally { if (e) throw e.error; }
94
+ }
95
+ return ar;
96
+ };
97
+ var __values = (this && this.__values) || function(o) {
98
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
99
+ if (m) return m.call(o);
100
+ if (o && typeof o.length === "number") return {
101
+ next: function () {
102
+ if (o && i >= o.length) o = void 0;
103
+ return { value: o && o[i++], done: !o };
104
+ }
105
+ };
106
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
107
+ };
38
108
  import { InstrumentationBase, InstrumentationNodeModuleDefinition, safeExecuteInTheMiddle, } from "@opentelemetry/instrumentation";
39
109
  import { diag, context, trace, SpanKind, SpanStatusCode, } from "@opentelemetry/api";
40
110
  import { VERSION } from "./version";
41
111
  import { SemanticConventions, OpenInferenceSpanKind, MimeType, } from "@arizeai/openinference-semantic-conventions";
112
+ import { assertUnreachable } from "./typeUtils";
42
113
  var MODULE_NAME = "openai";
43
114
  var OpenAIInstrumentation = /** @class */ (function (_super) {
44
115
  __extends(OpenAIInstrumentation, _super);
@@ -94,14 +165,65 @@ var OpenAIInstrumentation = /** @class */ (function (_super) {
94
165
  });
95
166
  var wrappedPromise = execPromise.then(function (result) {
96
167
  var _a;
97
- if (result) {
168
+ if (isChatCompletionResponse(result)) {
98
169
  // Record the results
99
- span.setAttributes(__assign(__assign((_a = {}, _a[SemanticConventions.OUTPUT_VALUE] = JSON.stringify(result), _a[SemanticConventions.OUTPUT_MIME_TYPE] = MimeType.JSON, _a[SemanticConventions.LLM_MODEL_NAME] = isChatCompletionResponse(result)
100
- ? result.model
101
- : body.model, _a), getLLMOutputMessagesAttributes(result)), getUsageAttributes(result)));
170
+ span.setAttributes(__assign(__assign((_a = {}, _a[SemanticConventions.OUTPUT_VALUE] = JSON.stringify(result), _a[SemanticConventions.OUTPUT_MIME_TYPE] = MimeType.JSON, _a[SemanticConventions.LLM_MODEL_NAME] = result.model, _a), getChatCompletionLLMOutputMessagesAttributes(result)), getUsageAttributes(result)));
171
+ span.setStatus({ code: SpanStatusCode.OK });
172
+ span.end();
173
+ }
174
+ else {
175
+ // This is a streaming response
176
+ // handle the chunks and add them to the span
177
+ // First split the stream via tee
178
+ var _b = __read(result.tee(), 2), leftStream = _b[0], rightStream = _b[1];
179
+ consumeChatCompletionStreamChunks(rightStream, span);
180
+ result = leftStream;
181
+ }
182
+ return result;
183
+ });
184
+ return context.bind(execContext, wrappedPromise);
185
+ };
186
+ });
187
+ this._wrap(module.OpenAI.Completions.prototype, "create",
188
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
189
+ function (original) {
190
+ return function patchedCreate() {
191
+ var _a;
192
+ var _this = this;
193
+ var args = [];
194
+ for (var _i = 0; _i < arguments.length; _i++) {
195
+ args[_i] = arguments[_i];
196
+ }
197
+ var body = args[0];
198
+ var _prompt = body.prompt, invocationParameters = __rest(body, ["prompt"]);
199
+ var span = instrumentation.tracer.startSpan("OpenAI Completions", {
200
+ kind: SpanKind.INTERNAL,
201
+ attributes: __assign((_a = {}, _a[SemanticConventions.OPENINFERENCE_SPAN_KIND] = OpenInferenceSpanKind.LLM, _a[SemanticConventions.LLM_MODEL_NAME] = body.model, _a[SemanticConventions.LLM_INVOCATION_PARAMETERS] = JSON.stringify(invocationParameters), _a), getCompletionInputValueAndMimeType(body)),
202
+ });
203
+ var execContext = trace.setSpan(context.active(), span);
204
+ var execPromise = safeExecuteInTheMiddle(function () {
205
+ return context.with(execContext, function () {
206
+ return original.apply(_this, args);
207
+ });
208
+ }, function (error) {
209
+ // Push the error to the span
210
+ if (error) {
211
+ span.recordException(error);
212
+ span.setStatus({
213
+ code: SpanStatusCode.ERROR,
214
+ message: error.message,
215
+ });
216
+ span.end();
217
+ }
218
+ });
219
+ var wrappedPromise = execPromise.then(function (result) {
220
+ var _a;
221
+ if (isCompletionResponse(result)) {
222
+ // Record the results
223
+ span.setAttributes(__assign(__assign((_a = {}, _a[SemanticConventions.OUTPUT_VALUE] = JSON.stringify(result), _a[SemanticConventions.OUTPUT_MIME_TYPE] = MimeType.JSON, _a[SemanticConventions.LLM_MODEL_NAME] = result.model, _a), getCompletionOutputValueAndMimeType(result)), getUsageAttributes(result)));
224
+ span.setStatus({ code: SpanStatusCode.OK });
225
+ span.end();
102
226
  }
103
- span.setStatus({ code: SpanStatusCode.OK });
104
- span.end();
105
227
  return result;
106
228
  });
107
229
  return context.bind(execContext, wrappedPromise);
@@ -119,7 +241,7 @@ var OpenAIInstrumentation = /** @class */ (function (_super) {
119
241
  }
120
242
  var body = args[0];
121
243
  var input = body.input;
122
- var isStringInput = typeof input == "string";
244
+ var isStringInput = typeof input === "string";
123
245
  var span = instrumentation.tracer.startSpan("OpenAI Embeddings", {
124
246
  kind: SpanKind.INTERNAL,
125
247
  attributes: __assign((_a = {}, _a[SemanticConventions.OPENINFERENCE_SPAN_KIND] = OpenInferenceSpanKind.EMBEDDING, _a[SemanticConventions.EMBEDDING_MODEL_NAME] = body.model, _a[SemanticConventions.INPUT_VALUE] = isStringInput
@@ -177,70 +299,212 @@ function isChatCompletionResponse(response) {
177
299
  return "choices" in response;
178
300
  }
179
301
  /**
180
- * Converts the body of the request to LLM input messages
302
+ * type-guard that checks if the response is a completion response
303
+ */
304
+ function isCompletionResponse(response) {
305
+ return "choices" in response;
306
+ }
307
+ /**
308
+ * type-guard that checks if completion prompt attribute is an array of strings
309
+ */
310
+ function isPromptStringArray(prompt) {
311
+ return (Array.isArray(prompt) && prompt.every(function (item) { return typeof item === "string"; }));
312
+ }
313
+ /**
314
+ * Converts the body of a chat completions request to LLM input messages
181
315
  */
182
316
  function getLLMInputMessagesAttributes(body) {
183
317
  return body.messages.reduce(function (acc, message, index) {
184
- var index_prefix = "".concat(SemanticConventions.LLM_INPUT_MESSAGES, ".").concat(index);
185
- acc["".concat(index_prefix, ".").concat(SemanticConventions.MESSAGE_CONTENT)] = String(message.content);
186
- acc["".concat(index_prefix, ".").concat(SemanticConventions.MESSAGE_ROLE)] = String(message.role);
318
+ var e_1, _a;
319
+ var messageAttributes = getChatCompletionInputMessageAttributes(message);
320
+ var indexPrefix = "".concat(SemanticConventions.LLM_INPUT_MESSAGES, ".").concat(index, ".");
321
+ try {
322
+ // Flatten the attributes on the index prefix
323
+ for (var _b = __values(Object.entries(messageAttributes)), _c = _b.next(); !_c.done; _c = _b.next()) {
324
+ var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
325
+ acc["".concat(indexPrefix).concat(key)] = value;
326
+ }
327
+ }
328
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
329
+ finally {
330
+ try {
331
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
332
+ }
333
+ finally { if (e_1) throw e_1.error; }
334
+ }
187
335
  return acc;
188
336
  }, {});
189
337
  }
338
+ function getChatCompletionInputMessageAttributes(message) {
339
+ var _a;
340
+ var role = message.role;
341
+ var attributes = (_a = {},
342
+ _a[SemanticConventions.MESSAGE_ROLE] = role,
343
+ _a);
344
+ // Add the content only if it is a string
345
+ if (typeof message.content === "string")
346
+ attributes[SemanticConventions.MESSAGE_CONTENT] = message.content;
347
+ switch (role) {
348
+ case "user":
349
+ // There's nothing to add for the user
350
+ break;
351
+ case "assistant":
352
+ if (message.tool_calls) {
353
+ message.tool_calls.forEach(function (toolCall, index) {
354
+ // Make sure the tool call has a function
355
+ if (toolCall.function) {
356
+ var toolCallIndexPrefix = "".concat(SemanticConventions.MESSAGE_TOOL_CALLS, ".").concat(index, ".");
357
+ attributes[toolCallIndexPrefix + SemanticConventions.TOOL_CALL_FUNCTION_NAME] = toolCall.function.name;
358
+ attributes[toolCallIndexPrefix +
359
+ SemanticConventions.TOOL_CALL_FUNCTION_ARGUMENTS_JSON] = toolCall.function.arguments;
360
+ }
361
+ });
362
+ }
363
+ break;
364
+ case "function":
365
+ attributes[SemanticConventions.MESSAGE_FUNCTION_CALL_NAME] = message.name;
366
+ break;
367
+ case "tool":
368
+ // There's nothing to add for the tool. There is a tool_id, but there are no
369
+ // semantic conventions for it
370
+ break;
371
+ case "system":
372
+ // There's nothing to add for the system. Content is captured above
373
+ break;
374
+ default:
375
+ assertUnreachable(role);
376
+ break;
377
+ }
378
+ return attributes;
379
+ }
190
380
  /**
191
- * Get Usage attributes
381
+ * Converts the body of a completions request to input attributes
192
382
  */
193
- function getUsageAttributes(response) {
194
- var _a;
195
- if (Object.prototype.hasOwnProperty.call(response, "usage")) {
196
- var completion = response;
197
- if (completion.usage) {
198
- return _a = {},
199
- _a[SemanticConventions.LLM_TOKEN_COUNT_COMPLETION] = completion.usage.completion_tokens,
200
- _a[SemanticConventions.LLM_TOKEN_COUNT_PROMPT] = completion.usage.prompt_tokens,
201
- _a[SemanticConventions.LLM_TOKEN_COUNT_TOTAL] = completion.usage.total_tokens,
202
- _a;
383
+ function getCompletionInputValueAndMimeType(body) {
384
+ var _a, _b;
385
+ if (typeof body.prompt === "string") {
386
+ return _a = {},
387
+ _a[SemanticConventions.INPUT_VALUE] = body.prompt,
388
+ _a[SemanticConventions.INPUT_MIME_TYPE] = MimeType.TEXT,
389
+ _a;
390
+ }
391
+ else if (isPromptStringArray(body.prompt)) {
392
+ var prompt = body.prompt[0]; // Only single prompts are currently supported
393
+ if (prompt === undefined) {
394
+ return {};
203
395
  }
396
+ return _b = {},
397
+ _b[SemanticConventions.INPUT_VALUE] = prompt,
398
+ _b[SemanticConventions.INPUT_MIME_TYPE] = MimeType.TEXT,
399
+ _b;
204
400
  }
401
+ // Other cases in which the prompt is a token or array of tokens are currently unsupported
205
402
  return {};
206
403
  }
207
404
  /**
208
- * Converts the result to LLM output attributes
405
+ * Get usage attributes
209
406
  */
210
- function getLLMOutputMessagesAttributes(response) {
211
- // Handle chat completion
212
- if (Object.prototype.hasOwnProperty.call(response, "choices")) {
213
- var completion = response;
214
- // Right now support just the first choice
215
- var choice = completion.choices[0];
216
- if (!choice) {
217
- return {};
218
- }
219
- return [choice.message].reduce(function (acc, message, index) {
220
- var index_prefix = "".concat(SemanticConventions.LLM_OUTPUT_MESSAGES, ".").concat(index);
221
- acc["".concat(index_prefix, ".").concat(SemanticConventions.MESSAGE_CONTENT)] = String(message.content);
222
- acc["".concat(index_prefix, ".").concat(SemanticConventions.MESSAGE_ROLE)] = message.role;
223
- return acc;
224
- }, {});
407
+ function getUsageAttributes(completion) {
408
+ var _a;
409
+ if (completion.usage) {
410
+ return _a = {},
411
+ _a[SemanticConventions.LLM_TOKEN_COUNT_COMPLETION] = completion.usage.completion_tokens,
412
+ _a[SemanticConventions.LLM_TOKEN_COUNT_PROMPT] = completion.usage.prompt_tokens,
413
+ _a[SemanticConventions.LLM_TOKEN_COUNT_TOTAL] = completion.usage.total_tokens,
414
+ _a;
225
415
  }
226
416
  return {};
227
417
  }
418
+ /**
419
+ * Converts the chat completion result to LLM output attributes
420
+ */
421
+ function getChatCompletionLLMOutputMessagesAttributes(chatCompletion) {
422
+ // Right now support just the first choice
423
+ var choice = chatCompletion.choices[0];
424
+ if (!choice) {
425
+ return {};
426
+ }
427
+ return [choice.message].reduce(function (acc, message, index) {
428
+ var e_2, _a;
429
+ var indexPrefix = "".concat(SemanticConventions.LLM_OUTPUT_MESSAGES, ".").concat(index, ".");
430
+ var messageAttributes = getChatCompletionOutputMessageAttributes(message);
431
+ try {
432
+ // Flatten the attributes on the index prefix
433
+ for (var _b = __values(Object.entries(messageAttributes)), _c = _b.next(); !_c.done; _c = _b.next()) {
434
+ var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
435
+ acc["".concat(indexPrefix).concat(key)] = value;
436
+ }
437
+ }
438
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
439
+ finally {
440
+ try {
441
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
442
+ }
443
+ finally { if (e_2) throw e_2.error; }
444
+ }
445
+ return acc;
446
+ }, {});
447
+ }
448
+ function getChatCompletionOutputMessageAttributes(message) {
449
+ var _a;
450
+ var role = message.role;
451
+ var attributes = (_a = {},
452
+ _a[SemanticConventions.MESSAGE_ROLE] = role,
453
+ _a);
454
+ if (message.content) {
455
+ attributes[SemanticConventions.MESSAGE_CONTENT] = message.content;
456
+ }
457
+ if (message.tool_calls) {
458
+ message.tool_calls.forEach(function (toolCall, index) {
459
+ var toolCallIndexPrefix = "".concat(SemanticConventions.MESSAGE_TOOL_CALLS, ".").concat(index, ".");
460
+ // Double check that the tool call has a function
461
+ // NB: OpenAI only supports tool calls with functions right now but this may change
462
+ if (toolCall.function) {
463
+ attributes[toolCallIndexPrefix + SemanticConventions.TOOL_CALL_FUNCTION_NAME] = toolCall.function.name;
464
+ attributes[toolCallIndexPrefix +
465
+ SemanticConventions.TOOL_CALL_FUNCTION_ARGUMENTS_JSON] = toolCall.function.arguments;
466
+ }
467
+ });
468
+ }
469
+ if (message.function_call) {
470
+ attributes[SemanticConventions.MESSAGE_FUNCTION_CALL_NAME] =
471
+ message.function_call.name;
472
+ attributes[SemanticConventions.MESSAGE_FUNCTION_CALL_ARGUMENTS_JSON] =
473
+ message.function_call.arguments;
474
+ }
475
+ return attributes;
476
+ }
477
+ /**
478
+ * Converts the completion result to output attributes
479
+ */
480
+ function getCompletionOutputValueAndMimeType(completion) {
481
+ var _a;
482
+ // Right now support just the first choice
483
+ var choice = completion.choices[0];
484
+ if (!choice) {
485
+ return {};
486
+ }
487
+ return _a = {},
488
+ _a[SemanticConventions.OUTPUT_VALUE] = String(choice.text),
489
+ _a[SemanticConventions.OUTPUT_MIME_TYPE] = MimeType.TEXT,
490
+ _a;
491
+ }
228
492
  /**
229
493
  * Converts the embedding result payload to embedding attributes
230
494
  */
231
495
  function getEmbeddingTextAttributes(request) {
232
496
  var _a;
233
- if (typeof request.input == "string") {
497
+ if (typeof request.input === "string") {
234
498
  return _a = {},
235
499
  _a["".concat(SemanticConventions.EMBEDDING_EMBEDDINGS, ".0.").concat(SemanticConventions.EMBEDDING_TEXT)] = request.input,
236
500
  _a;
237
501
  }
238
502
  else if (Array.isArray(request.input) &&
239
503
  request.input.length > 0 &&
240
- typeof request.input[0] == "string") {
504
+ typeof request.input[0] === "string") {
241
505
  return request.input.reduce(function (acc, input, index) {
242
- var index_prefix = "".concat(SemanticConventions.EMBEDDING_EMBEDDINGS, ".").concat(index);
243
- acc["".concat(index_prefix, ".").concat(SemanticConventions.EMBEDDING_TEXT)] = input;
506
+ var indexPrefix = "".concat(SemanticConventions.EMBEDDING_EMBEDDINGS, ".").concat(index, ".");
507
+ acc["".concat(indexPrefix).concat(SemanticConventions.EMBEDDING_TEXT)] = input;
244
508
  return acc;
245
509
  }, {});
246
510
  }
@@ -252,10 +516,71 @@ function getEmbeddingTextAttributes(request) {
252
516
  */
253
517
  function getEmbeddingEmbeddingsAttributes(response) {
254
518
  return response.data.reduce(function (acc, embedding, index) {
255
- var index_prefix = "".concat(SemanticConventions.EMBEDDING_EMBEDDINGS, ".").concat(index);
256
- acc["".concat(index_prefix, ".").concat(SemanticConventions.EMBEDDING_VECTOR)] =
519
+ var indexPrefix = "".concat(SemanticConventions.EMBEDDING_EMBEDDINGS, ".").concat(index, ".");
520
+ acc["".concat(indexPrefix).concat(SemanticConventions.EMBEDDING_VECTOR)] =
257
521
  embedding.embedding;
258
522
  return acc;
259
523
  }, {});
260
524
  }
525
+ /**
526
+ * Consumes the stream chunks and adds them to the span
527
+ */
528
+ function consumeChatCompletionStreamChunks(stream, span) {
529
+ var _a, stream_1, stream_1_1;
530
+ var _b, e_3, _c, _d;
531
+ return __awaiter(this, void 0, void 0, function () {
532
+ var streamResponse, chunk, e_3_1;
533
+ var _e;
534
+ return __generator(this, function (_f) {
535
+ switch (_f.label) {
536
+ case 0:
537
+ streamResponse = "";
538
+ _f.label = 1;
539
+ case 1:
540
+ _f.trys.push([1, 6, 7, 12]);
541
+ _a = true, stream_1 = __asyncValues(stream);
542
+ _f.label = 2;
543
+ case 2: return [4 /*yield*/, stream_1.next()];
544
+ case 3:
545
+ if (!(stream_1_1 = _f.sent(), _b = stream_1_1.done, !_b)) return [3 /*break*/, 5];
546
+ _d = stream_1_1.value;
547
+ _a = false;
548
+ chunk = _d;
549
+ if (chunk.choices.length > 0 && chunk.choices[0].delta.content) {
550
+ streamResponse += chunk.choices[0].delta.content;
551
+ }
552
+ _f.label = 4;
553
+ case 4:
554
+ _a = true;
555
+ return [3 /*break*/, 2];
556
+ case 5: return [3 /*break*/, 12];
557
+ case 6:
558
+ e_3_1 = _f.sent();
559
+ e_3 = { error: e_3_1 };
560
+ return [3 /*break*/, 12];
561
+ case 7:
562
+ _f.trys.push([7, , 10, 11]);
563
+ if (!(!_a && !_b && (_c = stream_1.return))) return [3 /*break*/, 9];
564
+ return [4 /*yield*/, _c.call(stream_1)];
565
+ case 8:
566
+ _f.sent();
567
+ _f.label = 9;
568
+ case 9: return [3 /*break*/, 11];
569
+ case 10:
570
+ if (e_3) throw e_3.error;
571
+ return [7 /*endfinally*/];
572
+ case 11: return [7 /*endfinally*/];
573
+ case 12:
574
+ span.setAttributes((_e = {},
575
+ _e[SemanticConventions.OUTPUT_VALUE] = streamResponse,
576
+ _e[SemanticConventions.OUTPUT_MIME_TYPE] = MimeType.TEXT,
577
+ _e["".concat(SemanticConventions.LLM_OUTPUT_MESSAGES, ".0.").concat(SemanticConventions.MESSAGE_CONTENT)] = streamResponse,
578
+ _e["".concat(SemanticConventions.LLM_OUTPUT_MESSAGES, ".0.").concat(SemanticConventions.MESSAGE_ROLE)] = "assistant",
579
+ _e));
580
+ span.end();
581
+ return [2 /*return*/];
582
+ }
583
+ });
584
+ });
585
+ }
261
586
  //# sourceMappingURL=instrumentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"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"}