@arizeai/openinference-instrumentation-openai 0.0.2 → 0.0.3

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/README.md CHANGED
@@ -17,7 +17,7 @@ To load the OpenAI instrumentation, specify it in the registerInstrumentations c
17
17
  ```typescript
18
18
  const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
19
19
  const {
20
- OpenAIInstrumentation,
20
+ OpenAIInstrumentation,
21
21
  } = require("@arizeai/openinference-instrumentation-openai");
22
22
  const { registerInstrumentations } = require("@opentelemetry/instrumentation");
23
23
 
@@ -25,7 +25,7 @@ const provider = new NodeTracerProvider();
25
25
  provider.register();
26
26
 
27
27
  registerInstrumentations({
28
- instrumentations: [new OpenAIInstrumentation()],
28
+ instrumentations: [new OpenAIInstrumentation()],
29
29
  });
30
30
  ```
31
31
 
@@ -1,2 +1,2 @@
1
1
  export * from "./instrumentation";
2
- //# sourceMappingURL=index.d.ts.map
2
+ //# sourceMappingURL=index.d.ts.map
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export * from "./instrumentation";
2
- //# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -1,15 +1,21 @@
1
1
  import * as openai from "openai";
2
- import { InstrumentationBase, InstrumentationConfig, InstrumentationModuleDefinition } from "@opentelemetry/instrumentation";
3
- export declare class OpenAIInstrumentation extends InstrumentationBase<typeof openai> {
4
- constructor(config?: InstrumentationConfig);
5
- protected init(): InstrumentationModuleDefinition<typeof openai>;
6
- /**
7
- * Patches the OpenAI module
8
- */
9
- private patch;
10
- /**
11
- * Un-patches the OpenAI module's chat completions API
12
- */
13
- private unpatch;
2
+ import {
3
+ InstrumentationBase,
4
+ InstrumentationConfig,
5
+ InstrumentationModuleDefinition,
6
+ } from "@opentelemetry/instrumentation";
7
+ export declare class OpenAIInstrumentation extends InstrumentationBase<
8
+ typeof openai
9
+ > {
10
+ constructor(config?: InstrumentationConfig);
11
+ protected init(): InstrumentationModuleDefinition<typeof openai>;
12
+ /**
13
+ * Patches the OpenAI module
14
+ */
15
+ private patch;
16
+ /**
17
+ * Un-patches the OpenAI module's chat completions API
18
+ */
19
+ private unpatch;
14
20
  }
15
- //# sourceMappingURL=instrumentation.d.ts.map
21
+ //# sourceMappingURL=instrumentation.d.ts.map
@@ -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,EAGlC,MAAM,gCAAgC,CAAC;AAwBxC,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;;OAEG;IACH,OAAO,CAAC,KAAK;IAmFb;;OAEG;IACH,OAAO,CAAC,OAAO;CAIlB"}
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;AAwBxC,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;IAgFb;;OAEG;IACH,OAAO,CAAC,OAAO;CAIhB"}
@@ -57,9 +57,12 @@ var OpenAIInstrumentation = /** @class */ (function (_super) {
57
57
  if (module === null || module === void 0 ? void 0 : module.openInferencePatched) {
58
58
  return module;
59
59
  }
60
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
60
61
  var instrumentation = this;
61
62
  // Patch create chat completions
62
- this._wrap(module.OpenAI.Chat.Completions.prototype, "create", function (original) {
63
+ this._wrap(module.OpenAI.Chat.Completions.prototype, "create",
64
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
+ function (original) {
63
66
  return function patchedCreate() {
64
67
  var _a;
65
68
  var _this = this;
@@ -68,7 +71,7 @@ var OpenAIInstrumentation = /** @class */ (function (_super) {
68
71
  args[_i] = arguments[_i];
69
72
  }
70
73
  var body = args[0];
71
- var messages = body.messages, invocationParameters = __rest(body, ["messages"]);
74
+ var _messages = body.messages, invocationParameters = __rest(body, ["messages"]);
72
75
  var span = instrumentation.tracer.startSpan("OpenAI Chat Completions", {
73
76
  kind: SpanKind.CLIENT,
74
77
  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)),
@@ -126,7 +129,7 @@ function getLLMInputMessagesAttributes(body) {
126
129
  */
127
130
  function getUsageAttributes(response) {
128
131
  var _a;
129
- if (response.hasOwnProperty("usage")) {
132
+ if (Object.prototype.hasOwnProperty.call(response, "usage")) {
130
133
  var completion = response;
131
134
  if (completion.usage) {
132
135
  return _a = {},
@@ -143,7 +146,7 @@ function getUsageAttributes(response) {
143
146
  */
144
147
  function getLLMOutputMessagesAttributes(response) {
145
148
  // Handle chat completion
146
- if (response.hasOwnProperty("choices")) {
149
+ if (Object.prototype.hasOwnProperty.call(response, "choices")) {
147
150
  var completion = response;
148
151
  // Right now support just the first choice
149
152
  var choice = completion.choices[0];
@@ -152,10 +155,8 @@ function getLLMOutputMessagesAttributes(response) {
152
155
  }
153
156
  return [choice.message].reduce(function (acc, message, index) {
154
157
  var index_prefix = "".concat(SemanticConventions.LLM_OUTPUT_MESSAGES, ".").concat(index);
155
- acc["".concat(index_prefix, ".").concat(SemanticConventions.MESSAGE_CONTENT)] =
156
- String(message.content);
157
- acc["".concat(index_prefix, ".").concat(SemanticConventions.MESSAGE_ROLE)] =
158
- message.role;
158
+ acc["".concat(index_prefix, ".").concat(SemanticConventions.MESSAGE_CONTENT)] = String(message.content);
159
+ acc["".concat(index_prefix, ".").concat(SemanticConventions.MESSAGE_ROLE)] = message.role;
159
160
  return acc;
160
161
  }, {});
161
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EACH,mBAAmB,EAGnB,mCAAmC,EACnC,sBAAsB,GACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACH,IAAI,EACJ,OAAO,EACP,KAAK,EACL,QAAQ,EAER,cAAc,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACH,mBAAmB,EACnB,qBAAqB,EACrB,QAAQ,GACX,MAAM,6CAA6C,CAAC;AAQrD,IAAM,WAAW,GAAG,QAAQ,CAAC;AAE7B;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,QAAQ,CAAC,EACV,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;IACD;;OAEG;IACK,qCAAK,GAAb,UACI,MAA0D,EAC1D,aAAsB;QAEtB,IAAI,CAAC,KAAK,CAAC,6BAAsB,WAAW,cAAI,aAAa,CAAE,CAAC,CAAC;QACjE,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,oBAAoB,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,IAAM,eAAe,GAA0B,IAAI,CAAC;QAIpD,gCAAgC;QAChC,IAAI,CAAC,KAAK,CACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EACxC,QAAQ,EACR,UAAC,QAA8B;YAC3B,OAAO,SAAS,aAAa;;gBAAtB,iBA4DN;gBA1DG,cAEC;qBAFD,UAEC,EAFD,qBAEC,EAFD,IAEC;oBAFD,yBAEC;;gBAED,IAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACb,IAAA,QAAQ,GAA8B,IAAI,SAAlC,EAAK,oBAAoB,UAAK,IAAI,EAA5C,YAAqC,CAAF,CAAU;gBACnD,IAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,CACzC,yBAAyB,EACzB;oBACI,IAAI,EAAE,QAAQ,CAAC,MAAM;oBACrB,UAAU,wBACL,mBAAmB,CAAC,uBAAuB,IACxC,qBAAqB,CAAC,GAAG,KAC5B,mBAAmB,CAAC,cAAc,IAC/B,IAAI,CAAC,KAAK,KACb,mBAAmB,CAAC,WAAW,IAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KACvB,mBAAmB,CAAC,eAAe,IAChC,QAAQ,CAAC,IAAI,KAChB,mBAAmB,CAAC,yBAAyB,IAC1C,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,OACrC,6BAA6B,CAAC,IAAI,CAAC,CACzC;iBACJ,CACJ,CAAC;gBACF,IAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC1D,IAAM,WAAW,GAAG,sBAAsB,CAGtC;oBACI,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;wBAC7B,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAI,EAAE,IAAI,CAAC,CAAC;oBACtC,CAAC,CAAC,CAAC;gBACP,CAAC,EACD,UAAC,KAAK;oBACF,6BAA6B;oBAC7B,IAAI,KAAK,EAAE,CAAC;wBACR,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBAChC,CAAC;gBACL,CAAC,CACJ,CAAC;gBACF,IAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,UAAC,MAAM;;oBAC3C,IAAI,MAAM,EAAE,CAAC;wBACT,qBAAqB;wBACrB,IAAI,CAAC,aAAa,gCACb,mBAAmB,CAAC,YAAY,IAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KACzB,mBAAmB,CAAC,gBAAgB,IACjC,QAAQ,CAAC,IAAI,OACd,8BAA8B,CAAC,MAAM,CAAC,GACtC,kBAAkB,CAAC,MAAM,CAAC,EAC/B,CAAC;oBACP,CAAC;oBACD,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;oBACX,OAAO,MAAM,CAAC;gBAClB,CAAC,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACrD,CAAC,CAAC;QACN,CAAC,CACJ,CAAC;QACF,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACnC,OAAO,MAAM,CAAC;IAClB,CAAC;IACD;;OAEG;IACK,uCAAO,GAAf,UAAgB,aAA4B,EAAE,aAAsB;QAChE,IAAI,CAAC,KAAK,CAAC,6BAAsB,WAAW,cAAI,aAAa,CAAE,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5E,CAAC;IACL,4BAAC;AAAD,CAAC,AA/GD,CAA2C,mBAAmB,GA+G7D;;AAED;;GAEG;AACH,SAAS,6BAA6B,CAClC,IAAoC;IAEpC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,OAAO,EAAE,KAAK;QAC5C,IAAM,YAAY,GAAG,UAAG,mBAAmB,CAAC,kBAAkB,cAAI,KAAK,CAAE,CAAC;QAC1E,GAAG,CAAC,UAAG,YAAY,cAAI,mBAAmB,CAAC,eAAe,CAAE,CAAC,GAAG,MAAM,CAClE,OAAO,CAAC,OAAO,CAClB,CAAC;QACF,GAAG,CAAC,UAAG,YAAY,cAAI,mBAAmB,CAAC,YAAY,CAAE,CAAC,GAAG,MAAM,CAC/D,OAAO,CAAC,IAAI,CACf,CAAC;QACF,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAgB,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACvB,QAAsD;;IAEtD,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,IAAM,UAAU,GAAG,QAA0B,CAAC;QAC9C,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB;gBACI,GAAC,mBAAmB,CAAC,0BAA0B,IAC3C,UAAU,CAAC,KAAK,CAAC,iBAAiB;gBACtC,GAAC,mBAAmB,CAAC,sBAAsB,IACvC,UAAU,CAAC,KAAK,CAAC,aAAa;gBAClC,GAAC,mBAAmB,CAAC,qBAAqB,IACtC,UAAU,CAAC,KAAK,CAAC,YAAY;mBACnC;QACN,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,8BAA8B,CACnC,QAAsD;IAEtD,yBAAyB;IACzB,IAAI,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,IAAM,UAAU,GAAG,QAA0B,CAAC;QAC9C,0CAA0C;QAC1C,IAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,OAAO,EAAE,KAAK;YAC/C,IAAM,YAAY,GAAG,UAAG,mBAAmB,CAAC,mBAAmB,cAAI,KAAK,CAAE,CAAC;YAC3E,GAAG,CAAC,UAAG,YAAY,cAAI,mBAAmB,CAAC,eAAe,CAAE,CAAC;gBACzD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5B,GAAG,CAAC,UAAG,YAAY,cAAI,mBAAmB,CAAC,YAAY,CAAE,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC;YACjB,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAgB,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"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"}