@arizeai/openinference-instrumentation-openai 0.0.1-rc1 → 0.0.1-rc10

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 (48) hide show
  1. package/dist/esm/index.d.ts +1 -0
  2. package/dist/esm/index.d.ts.map +1 -1
  3. package/dist/esm/index.js +1 -1
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/esm/instrumentation.d.ts.map +1 -1
  6. package/dist/esm/instrumentation.js +79 -8
  7. package/dist/esm/instrumentation.js.map +1 -1
  8. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  9. package/dist/esm/version.d.ts +1 -1
  10. package/dist/esm/version.d.ts.map +1 -1
  11. package/dist/esm/version.js +1 -1
  12. package/dist/esm/version.js.map +1 -1
  13. package/dist/esnext/index.d.ts +1 -0
  14. package/dist/esnext/index.d.ts.map +1 -1
  15. package/dist/esnext/index.js +1 -1
  16. package/dist/esnext/index.js.map +1 -1
  17. package/dist/esnext/instrumentation.d.ts.map +1 -1
  18. package/dist/esnext/instrumentation.js +66 -8
  19. package/dist/esnext/instrumentation.js.map +1 -1
  20. package/dist/esnext/tsconfig.esnext.tsbuildinfo +1 -1
  21. package/dist/esnext/version.d.ts +1 -1
  22. package/dist/esnext/version.d.ts.map +1 -1
  23. package/dist/esnext/version.js +1 -1
  24. package/dist/esnext/version.js.map +1 -1
  25. package/dist/src/index.d.ts +1 -0
  26. package/dist/src/index.d.ts.map +1 -1
  27. package/dist/src/index.js +16 -0
  28. package/dist/src/index.js.map +1 -1
  29. package/dist/src/instrumentation.d.ts.map +1 -1
  30. package/dist/src/instrumentation.js +65 -7
  31. package/dist/src/instrumentation.js.map +1 -1
  32. package/dist/src/version.d.ts +1 -1
  33. package/dist/src/version.d.ts.map +1 -1
  34. package/dist/src/version.js +1 -1
  35. package/dist/src/version.js.map +1 -1
  36. package/dist/test/openai.test.js +43 -11
  37. package/dist/test/openai.test.js.map +1 -1
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +6 -3
  40. package/src/index.ts +1 -0
  41. package/src/instrumentation.ts +109 -11
  42. package/src/version.ts +1 -1
  43. package/examples/README.md +0 -1
  44. package/jest.config.js +0 -5
  45. package/test/openai.test.ts +0 -39
  46. package/tsconfig.esm.json +0 -10
  47. package/tsconfig.esnext.json +0 -10
  48. package/tsconfig.json +0 -10
@@ -1 +1,2 @@
1
+ export * from "./instrumentation";
1
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";
1
+ export * from "./instrumentation";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -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,EACH,mBAAmB,EACnB,qBAAqB,EACrB,+BAA+B,EAElC,MAAM,gCAAgC,CAAC;AAIxC,qBAAa,qBAAsB,SAAQ,mBAAmB,CAAC,OAAO,MAAM,CAAC;gBAC7D,MAAM,CAAC,EAAE,qBAAqB;IAQ1C,SAAS,CAAC,IAAI,IAAI,+BAA+B,CAAC,OAAO,MAAM,CAAC;IAShE,OAAO,CAAC,KAAK;IAuBb,OAAO,CAAC,OAAO;CAClB"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EACH,mBAAmB,EACnB,qBAAqB,EACrB,+BAA+B,EAGlC,MAAM,gCAAgC,CAAC;AAqBxC,qBAAa,qBAAsB,SAAQ,mBAAmB,CAAC,OAAO,MAAM,CAAC;gBAC7D,MAAM,CAAC,EAAE,qBAAqB;IAQ1C,SAAS,CAAC,IAAI,IAAI,+BAA+B,CAAC,OAAO,MAAM,CAAC;IAShE,OAAO,CAAC,KAAK;IA4Eb,OAAO,CAAC,OAAO;CAGlB"}
@@ -13,39 +13,110 @@ var __extends = (this && this.__extends) || (function () {
13
13
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
14
  };
15
15
  })();
16
- import { InstrumentationBase, InstrumentationNodeModuleDefinition, } from "@opentelemetry/instrumentation";
16
+ var __assign = (this && this.__assign) || function () {
17
+ __assign = Object.assign || function(t) {
18
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
19
+ s = arguments[i];
20
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21
+ t[p] = s[p];
22
+ }
23
+ return t;
24
+ };
25
+ return __assign.apply(this, arguments);
26
+ };
27
+ var __rest = (this && this.__rest) || function (s, e) {
28
+ var t = {};
29
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
30
+ t[p] = s[p];
31
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
32
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
33
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
34
+ t[p[i]] = s[p[i]];
35
+ }
36
+ return t;
37
+ };
38
+ import { InstrumentationBase, InstrumentationNodeModuleDefinition, safeExecuteInTheMiddle, } from "@opentelemetry/instrumentation";
39
+ import { diag, context, trace, SpanKind, SpanStatusCode, } from "@opentelemetry/api";
17
40
  import { VERSION } from "./version";
41
+ import { SemanticConventions, OpenInferenceSpanKind, MimeType, } from "@arizeai/openinference-semantic-conventions";
42
+ var MODULE_NAME = "openai";
18
43
  var OpenAIInstrumentation = /** @class */ (function (_super) {
19
44
  __extends(OpenAIInstrumentation, _super);
20
45
  function OpenAIInstrumentation(config) {
21
46
  return _super.call(this, "@arizeai/openinference-instrumentation-openai", VERSION, Object.assign({}, config)) || this;
22
47
  }
23
48
  OpenAIInstrumentation.prototype.init = function () {
24
- var module = new InstrumentationNodeModuleDefinition("openai", [">=4.24.1<5"], this.patch.bind(this), this.unpatch.bind(this));
49
+ var module = new InstrumentationNodeModuleDefinition("openai", ["^4.0.0"], this.patch.bind(this), this.unpatch.bind(this));
25
50
  return module;
26
51
  };
27
52
  OpenAIInstrumentation.prototype.patch = function (module, moduleVersion) {
28
- console.log("patching...");
29
- var plugin = this;
53
+ diag.debug("Applying patch for ".concat(MODULE_NAME, "@").concat(moduleVersion));
30
54
  if (module === null || module === void 0 ? void 0 : module.openInferencePatched) {
31
55
  return module;
32
56
  }
33
- console.log("wrapping");
57
+ var instrumentation = this;
58
+ // Patch create chat completions
34
59
  this._wrap(module.OpenAI.Chat.Completions.prototype, "create", function (original) {
35
- console.log("wrapped");
36
60
  return function patchedCreate() {
61
+ var _a;
62
+ var _this = this;
37
63
  var args = [];
38
64
  for (var _i = 0; _i < arguments.length; _i++) {
39
65
  args[_i] = arguments[_i];
40
66
  }
41
- return original.apply(plugin, args);
67
+ var body = args[0];
68
+ var messages = body.messages, invocationParameters = __rest(body, ["messages"]);
69
+ var span = instrumentation.tracer.startSpan("OpenAI Chat Completions", {
70
+ kind: SpanKind.CLIENT,
71
+ attributes: __assign((_a = {}, _a[SemanticConventions.OPENINFERENCE_SPAN_KIND] = OpenInferenceSpanKind.LLM, _a[SemanticConventions.LLM_MODEL_NAME] = body.model, _a[SemanticConventions.INPUT_VALUE] = JSON.stringify(body), _a[SemanticConventions.INPUT_MIME_TYPE] = MimeType.JSON, _a[SemanticConventions.LLM_INVOCATION_PARAMETERS] = JSON.stringify(invocationParameters), _a), getLLMInputMessagesAttributes(body)),
72
+ });
73
+ var execContext = trace.setSpan(context.active(), span);
74
+ var execPromise = safeExecuteInTheMiddle(function () {
75
+ return context.with(execContext, function () {
76
+ return original.apply(_this, args);
77
+ });
78
+ }, function (error) {
79
+ // Push the error to the span
80
+ if (error) {
81
+ span.recordException(error);
82
+ }
83
+ });
84
+ var wrappedPromise = execPromise.then(function (result) {
85
+ if (result) {
86
+ // Record the results
87
+ span.setAttributes({});
88
+ }
89
+ span.setStatus({ code: SpanStatusCode.OK });
90
+ span.end();
91
+ return result;
92
+ });
93
+ return context.bind(execContext, wrappedPromise);
42
94
  };
43
95
  });
44
96
  module.openInferencePatched = true;
45
97
  return module;
46
98
  };
47
- OpenAIInstrumentation.prototype.unpatch = function (moduleExports) { };
99
+ OpenAIInstrumentation.prototype.unpatch = function (moduleExports, moduleVersion) {
100
+ diag.debug("Removing patch for ".concat(MODULE_NAME, "@").concat(moduleVersion));
101
+ };
48
102
  return OpenAIInstrumentation;
49
103
  }(InstrumentationBase));
50
104
  export { OpenAIInstrumentation };
105
+ /**
106
+ * Converts the body input
107
+ */
108
+ function getLLMInputMessagesAttributes(body) {
109
+ return body.messages.reduce(function (acc, message, index) {
110
+ var index_prefix = "".concat(SemanticConventions.LLM_INPUT_MESSAGES, ".").concat(index);
111
+ acc["".concat(index_prefix, ".").concat(SemanticConventions.MESSAGE_CONTENT)] = String(message.content);
112
+ acc["".concat(index_prefix, ".").concat(SemanticConventions.MESSAGE_ROLE)] = String(message.role);
113
+ return acc;
114
+ }, {});
115
+ }
116
+ /**
117
+ * Get Usage attributes
118
+ */
119
+ function getUsageAttributes(usage) {
120
+ return {};
121
+ }
51
122
  //# sourceMappingURL=instrumentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,OAAO,EACH,mBAAmB,EAGnB,mCAAmC,GACtC,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;IAA2C,yCAAkC;IACzE,+BAAY,MAA8B;QACtC,OAAA,MAAK,YACD,+CAA+C,EAC/C,OAAO,EACP,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAC5B,SAAC;IACN,CAAC;IAES,oCAAI,GAAd;QACI,IAAM,MAAM,GAAG,IAAI,mCAAmC,CAClD,QAAQ,EACR,CAAC,YAAY,CAAC,EACd,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1B,CAAC;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IACO,qCAAK,GAAb,UACI,MAA0D,EAC1D,aAAiC;QAEjC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,IAAM,MAAM,GAAG,IAAI,CAAC;QACpB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,oBAAoB,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EACxC,QAAQ,EACR,UAAC,QAAkB;YACf,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO,SAAS,aAAa;gBAAC,cAAO;qBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;oBAAP,yBAAO;;gBACjC,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACxC,CAAC,CAAC;QACN,CAAC,CACJ,CAAC;QACF,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACnC,OAAO,MAAM,CAAC;IAClB,CAAC;IACO,uCAAO,GAAf,UAAgB,aAA4B,IAAG,CAAC;IACpD,4BAAC;AAAD,CAAC,AA1CD,CAA2C,mBAAmB,GA0C7D"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"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"}