@launchdarkly/server-sdk-ai 0.4.0 → 0.6.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.6.0](https://github.com/launchdarkly/js-core/compare/server-sdk-ai-v0.5.0...server-sdk-ai-v0.6.0) (2024-12-10)
4
+
5
+
6
+ ### ⚠ BREAKING CHANGES
7
+
8
+ * Change versionKey to variationKey. ([#709](https://github.com/launchdarkly/js-core/issues/709))
9
+
10
+ ### Code Refactoring
11
+
12
+ * Change versionKey to variationKey. ([#709](https://github.com/launchdarkly/js-core/issues/709)) ([bfee298](https://github.com/launchdarkly/js-core/commit/bfee29843125c55be1b21e4f77c9d8c3c8698856))
13
+
14
+ ## [0.5.0](https://github.com/launchdarkly/js-core/compare/server-sdk-ai-v0.4.0...server-sdk-ai-v0.5.0) (2024-12-09)
15
+
16
+
17
+ ### ⚠ BREAKING CHANGES
18
+
19
+ * Rename model and providerid to name. ([#706](https://github.com/launchdarkly/js-core/issues/706))
20
+
21
+ ### Features
22
+
23
+ * Add getSummary method to the tracker. ([#698](https://github.com/launchdarkly/js-core/issues/698)) ([4df902d](https://github.com/launchdarkly/js-core/commit/4df902d98584c88b072d6dab5f32a6ea8c4fcdf5))
24
+
25
+
26
+ ### Code Refactoring
27
+
28
+ * Rename model and providerid to name. ([#706](https://github.com/launchdarkly/js-core/issues/706)) ([8dd3951](https://github.com/launchdarkly/js-core/commit/8dd39517cfc14c6e037a2438d22f20a9527c9ffa))
29
+
3
30
  ## [0.4.0](https://github.com/launchdarkly/js-core/compare/server-sdk-ai-v0.3.0...server-sdk-ai-v0.4.0) (2024-11-22)
4
31
 
5
32
 
@@ -15,25 +15,25 @@ it('returns config with interpolated messagess', async () => {
15
15
  const client = new LDAIClientImpl(mockLdClient);
16
16
  const key = 'test-flag';
17
17
  const defaultValue: LDAIDefaults = {
18
- model: { id: 'test', parameters: { name: 'test-model' } },
18
+ model: { name: 'test', parameters: { name: 'test-model' } },
19
19
  messages: [],
20
20
  enabled: true,
21
21
  };
22
22
 
23
23
  const mockVariation = {
24
24
  model: {
25
- id: 'example-model',
25
+ name: 'example-model',
26
26
  parameters: { name: 'imagination', temperature: 0.7, maxTokens: 4096 },
27
27
  },
28
28
  provider: {
29
- id: 'example-provider',
29
+ name: 'example-provider',
30
30
  },
31
31
  messages: [
32
32
  { role: 'system', content: 'Hello {{name}}' },
33
33
  { role: 'user', content: 'Score: {{score}}' },
34
34
  ],
35
35
  _ldMeta: {
36
- versionKey: 'v1',
36
+ variationKey: 'v1',
37
37
  enabled: true,
38
38
  },
39
39
  };
@@ -45,11 +45,11 @@ it('returns config with interpolated messagess', async () => {
45
45
 
46
46
  expect(result).toEqual({
47
47
  model: {
48
- id: 'example-model',
48
+ name: 'example-model',
49
49
  parameters: { name: 'imagination', temperature: 0.7, maxTokens: 4096 },
50
50
  },
51
51
  provider: {
52
- id: 'example-provider',
52
+ name: 'example-provider',
53
53
  },
54
54
  messages: [
55
55
  { role: 'system', content: 'Hello John' },
@@ -64,13 +64,13 @@ it('includes context in variables for messages interpolation', async () => {
64
64
  const client = new LDAIClientImpl(mockLdClient);
65
65
  const key = 'test-flag';
66
66
  const defaultValue: LDAIDefaults = {
67
- model: { id: 'test', parameters: { name: 'test-model' } },
67
+ model: { name: 'test', parameters: { name: 'test-model' } },
68
68
  messages: [],
69
69
  };
70
70
 
71
71
  const mockVariation = {
72
72
  messages: [{ role: 'system', content: 'User key: {{ldctx.key}}' }],
73
- _ldMeta: { versionKey: 'v1', enabled: true },
73
+ _ldMeta: { variationKey: 'v1', enabled: true },
74
74
  };
75
75
 
76
76
  mockLdClient.variation.mockResolvedValue(mockVariation);
@@ -84,12 +84,12 @@ it('handles missing metadata in variation', async () => {
84
84
  const client = new LDAIClientImpl(mockLdClient);
85
85
  const key = 'test-flag';
86
86
  const defaultValue: LDAIDefaults = {
87
- model: { id: 'test', parameters: { name: 'test-model' } },
87
+ model: { name: 'test', parameters: { name: 'test-model' } },
88
88
  messages: [],
89
89
  };
90
90
 
91
91
  const mockVariation = {
92
- model: { id: 'example-provider', parameters: { name: 'imagination' } },
92
+ model: { name: 'example-provider', parameters: { name: 'imagination' } },
93
93
  messages: [{ role: 'system', content: 'Hello' }],
94
94
  };
95
95
 
@@ -98,7 +98,7 @@ it('handles missing metadata in variation', async () => {
98
98
  const result = await client.config(key, testContext, defaultValue);
99
99
 
100
100
  expect(result).toEqual({
101
- model: { id: 'example-provider', parameters: { name: 'imagination' } },
101
+ model: { name: 'example-provider', parameters: { name: 'imagination' } },
102
102
  messages: [{ role: 'system', content: 'Hello' }],
103
103
  tracker: expect.any(Object),
104
104
  enabled: false,
@@ -109,8 +109,8 @@ it('passes the default value to the underlying client', async () => {
109
109
  const client = new LDAIClientImpl(mockLdClient);
110
110
  const key = 'non-existent-flag';
111
111
  const defaultValue: LDAIDefaults = {
112
- model: { id: 'default-model', parameters: { name: 'default' } },
113
- provider: { id: 'default-provider' },
112
+ model: { name: 'default-model', parameters: { name: 'default' } },
113
+ provider: { name: 'default-provider' },
114
114
  messages: [{ role: 'system', content: 'Default messages' }],
115
115
  enabled: true,
116
116
  };
@@ -13,26 +13,26 @@ const mockLdClient: LDClientMin = {
13
13
 
14
14
  const testContext: LDContext = { kind: 'user', key: 'test-user' };
15
15
  const configKey = 'test-config';
16
- const versionKey = 'v1';
16
+ const variationKey = 'v1';
17
17
 
18
18
  beforeEach(() => {
19
19
  jest.clearAllMocks();
20
20
  });
21
21
 
22
22
  it('tracks duration', () => {
23
- const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, versionKey, testContext);
23
+ const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, variationKey, testContext);
24
24
  tracker.trackDuration(1000);
25
25
 
26
26
  expect(mockTrack).toHaveBeenCalledWith(
27
27
  '$ld:ai:duration:total',
28
28
  testContext,
29
- { configKey, versionKey },
29
+ { configKey, variationKey },
30
30
  1000,
31
31
  );
32
32
  });
33
33
 
34
34
  it('tracks duration of async function', async () => {
35
- const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, versionKey, testContext);
35
+ const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, variationKey, testContext);
36
36
  jest.spyOn(global.Date, 'now').mockReturnValueOnce(1000).mockReturnValueOnce(2000);
37
37
 
38
38
  const result = await tracker.trackDurationOf(async () => 'test-result');
@@ -41,49 +41,49 @@ it('tracks duration of async function', async () => {
41
41
  expect(mockTrack).toHaveBeenCalledWith(
42
42
  '$ld:ai:duration:total',
43
43
  testContext,
44
- { configKey, versionKey },
44
+ { configKey, variationKey },
45
45
  1000,
46
46
  );
47
47
  });
48
48
 
49
49
  it('tracks positive feedback', () => {
50
- const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, versionKey, testContext);
50
+ const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, variationKey, testContext);
51
51
  tracker.trackFeedback({ kind: LDFeedbackKind.Positive });
52
52
 
53
53
  expect(mockTrack).toHaveBeenCalledWith(
54
54
  '$ld:ai:feedback:user:positive',
55
55
  testContext,
56
- { configKey, versionKey },
56
+ { configKey, variationKey },
57
57
  1,
58
58
  );
59
59
  });
60
60
 
61
61
  it('tracks negative feedback', () => {
62
- const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, versionKey, testContext);
62
+ const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, variationKey, testContext);
63
63
  tracker.trackFeedback({ kind: LDFeedbackKind.Negative });
64
64
 
65
65
  expect(mockTrack).toHaveBeenCalledWith(
66
66
  '$ld:ai:feedback:user:negative',
67
67
  testContext,
68
- { configKey, versionKey },
68
+ { configKey, variationKey },
69
69
  1,
70
70
  );
71
71
  });
72
72
 
73
73
  it('tracks success', () => {
74
- const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, versionKey, testContext);
74
+ const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, variationKey, testContext);
75
75
  tracker.trackSuccess();
76
76
 
77
77
  expect(mockTrack).toHaveBeenCalledWith(
78
78
  '$ld:ai:generation',
79
79
  testContext,
80
- { configKey, versionKey },
80
+ { configKey, variationKey },
81
81
  1,
82
82
  );
83
83
  });
84
84
 
85
85
  it('tracks OpenAI usage', async () => {
86
- const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, versionKey, testContext);
86
+ const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, variationKey, testContext);
87
87
  jest.spyOn(global.Date, 'now').mockReturnValueOnce(1000).mockReturnValueOnce(2000);
88
88
 
89
89
  const TOTAL_TOKENS = 100;
@@ -101,41 +101,41 @@ it('tracks OpenAI usage', async () => {
101
101
  expect(mockTrack).toHaveBeenCalledWith(
102
102
  '$ld:ai:duration:total',
103
103
  testContext,
104
- { configKey, versionKey },
104
+ { configKey, variationKey },
105
105
  1000,
106
106
  );
107
107
 
108
108
  expect(mockTrack).toHaveBeenCalledWith(
109
109
  '$ld:ai:generation',
110
110
  testContext,
111
- { configKey, versionKey },
111
+ { configKey, variationKey },
112
112
  1,
113
113
  );
114
114
 
115
115
  expect(mockTrack).toHaveBeenCalledWith(
116
116
  '$ld:ai:tokens:total',
117
117
  testContext,
118
- { configKey, versionKey },
118
+ { configKey, variationKey },
119
119
  TOTAL_TOKENS,
120
120
  );
121
121
 
122
122
  expect(mockTrack).toHaveBeenCalledWith(
123
123
  '$ld:ai:tokens:input',
124
124
  testContext,
125
- { configKey, versionKey },
125
+ { configKey, variationKey },
126
126
  PROMPT_TOKENS,
127
127
  );
128
128
 
129
129
  expect(mockTrack).toHaveBeenCalledWith(
130
130
  '$ld:ai:tokens:output',
131
131
  testContext,
132
- { configKey, versionKey },
132
+ { configKey, variationKey },
133
133
  COMPLETION_TOKENS,
134
134
  );
135
135
  });
136
136
 
137
137
  it('tracks Bedrock conversation with successful response', () => {
138
- const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, versionKey, testContext);
138
+ const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, variationKey, testContext);
139
139
 
140
140
  const TOTAL_TOKENS = 100;
141
141
  const PROMPT_TOKENS = 49;
@@ -156,41 +156,41 @@ it('tracks Bedrock conversation with successful response', () => {
156
156
  expect(mockTrack).toHaveBeenCalledWith(
157
157
  '$ld:ai:generation',
158
158
  testContext,
159
- { configKey, versionKey },
159
+ { configKey, variationKey },
160
160
  1,
161
161
  );
162
162
 
163
163
  expect(mockTrack).toHaveBeenCalledWith(
164
164
  '$ld:ai:duration:total',
165
165
  testContext,
166
- { configKey, versionKey },
166
+ { configKey, variationKey },
167
167
  500,
168
168
  );
169
169
 
170
170
  expect(mockTrack).toHaveBeenCalledWith(
171
171
  '$ld:ai:tokens:total',
172
172
  testContext,
173
- { configKey, versionKey },
173
+ { configKey, variationKey },
174
174
  TOTAL_TOKENS,
175
175
  );
176
176
 
177
177
  expect(mockTrack).toHaveBeenCalledWith(
178
178
  '$ld:ai:tokens:input',
179
179
  testContext,
180
- { configKey, versionKey },
180
+ { configKey, variationKey },
181
181
  PROMPT_TOKENS,
182
182
  );
183
183
 
184
184
  expect(mockTrack).toHaveBeenCalledWith(
185
185
  '$ld:ai:tokens:output',
186
186
  testContext,
187
- { configKey, versionKey },
187
+ { configKey, variationKey },
188
188
  COMPLETION_TOKENS,
189
189
  );
190
190
  });
191
191
 
192
192
  it('tracks Bedrock conversation with error response', () => {
193
- const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, versionKey, testContext);
193
+ const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, variationKey, testContext);
194
194
 
195
195
  const response = {
196
196
  $metadata: { httpStatusCode: 400 },
@@ -204,7 +204,7 @@ it('tracks Bedrock conversation with error response', () => {
204
204
  });
205
205
 
206
206
  it('tracks tokens', () => {
207
- const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, versionKey, testContext);
207
+ const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, variationKey, testContext);
208
208
 
209
209
  const TOTAL_TOKENS = 100;
210
210
  const PROMPT_TOKENS = 49;
@@ -219,27 +219,27 @@ it('tracks tokens', () => {
219
219
  expect(mockTrack).toHaveBeenCalledWith(
220
220
  '$ld:ai:tokens:total',
221
221
  testContext,
222
- { configKey, versionKey },
222
+ { configKey, variationKey },
223
223
  TOTAL_TOKENS,
224
224
  );
225
225
 
226
226
  expect(mockTrack).toHaveBeenCalledWith(
227
227
  '$ld:ai:tokens:input',
228
228
  testContext,
229
- { configKey, versionKey },
229
+ { configKey, variationKey },
230
230
  PROMPT_TOKENS,
231
231
  );
232
232
 
233
233
  expect(mockTrack).toHaveBeenCalledWith(
234
234
  '$ld:ai:tokens:output',
235
235
  testContext,
236
- { configKey, versionKey },
236
+ { configKey, variationKey },
237
237
  COMPLETION_TOKENS,
238
238
  );
239
239
  });
240
240
 
241
241
  it('only tracks non-zero token counts', () => {
242
- const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, versionKey, testContext);
242
+ const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, variationKey, testContext);
243
243
 
244
244
  tracker.trackTokens({
245
245
  total: 0,
@@ -257,7 +257,7 @@ it('only tracks non-zero token counts', () => {
257
257
  expect(mockTrack).toHaveBeenCalledWith(
258
258
  '$ld:ai:tokens:input',
259
259
  testContext,
260
- { configKey, versionKey },
260
+ { configKey, variationKey },
261
261
  50,
262
262
  );
263
263
 
@@ -268,3 +268,39 @@ it('only tracks non-zero token counts', () => {
268
268
  expect.anything(),
269
269
  );
270
270
  });
271
+
272
+ it('returns empty summary when no metrics tracked', () => {
273
+ const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, variationKey, testContext);
274
+
275
+ const summary = tracker.getSummary();
276
+
277
+ expect(summary).toEqual({});
278
+ });
279
+
280
+ it('summarizes tracked metrics', () => {
281
+ const tracker = new LDAIConfigTrackerImpl(mockLdClient, configKey, variationKey, testContext);
282
+
283
+ tracker.trackDuration(1000);
284
+ tracker.trackTokens({
285
+ total: 100,
286
+ input: 40,
287
+ output: 60,
288
+ });
289
+ tracker.trackFeedback({ kind: LDFeedbackKind.Positive });
290
+ tracker.trackSuccess();
291
+
292
+ const summary = tracker.getSummary();
293
+
294
+ expect(summary).toEqual({
295
+ durationMs: 1000,
296
+ tokens: {
297
+ total: 100,
298
+ input: 40,
299
+ output: 60,
300
+ },
301
+ feedback: {
302
+ kind: 'positive',
303
+ },
304
+ success: true,
305
+ });
306
+ });
@@ -15,7 +15,7 @@ class LDAIClientImpl {
15
15
  const value = await this._ldClient.variation(key, context, defaultValue);
16
16
  const tracker = new LDAIConfigTrackerImpl_1.LDAIConfigTrackerImpl(this._ldClient, key,
17
17
  // eslint-disable-next-line no-underscore-dangle
18
- (_b = (_a = value._ldMeta) === null || _a === void 0 ? void 0 : _a.versionKey) !== null && _b !== void 0 ? _b : '', context);
18
+ (_b = (_a = value._ldMeta) === null || _a === void 0 ? void 0 : _a.variationKey) !== null && _b !== void 0 ? _b : '', context);
19
19
  // eslint-disable-next-line no-underscore-dangle
20
20
  const enabled = !!((_c = value._ldMeta) === null || _c === void 0 ? void 0 : _c.enabled);
21
21
  const config = {
@@ -1 +1 @@
1
- {"version":3,"file":"LDAIClientImpl.js","sourceRoot":"","sources":["../src/LDAIClientImpl.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAMrC,mEAAgE;AAsBhE,MAAa,cAAc;IACzB,YAAoB,SAAsB;QAAtB,cAAS,GAAT,SAAS,CAAa;IAAG,CAAC;IAEtC,oBAAoB,CAAC,QAAgB,EAAE,SAAkC;QAC/E,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,MAAM,CACV,GAAW,EACX,OAAkB,EAClB,YAA0B,EAC1B,SAAmC;;QAEnC,MAAM,KAAK,GAAqB,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC3F,MAAM,OAAO,GAAG,IAAI,6CAAqB,CACvC,IAAI,CAAC,SAAS,EACd,GAAG;QACH,gDAAgD;QAChD,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,UAAU,mCAAI,EAAE,EAC/B,OAAO,CACR,CAAC;QACF,gDAAgD;QAChD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,OAAO,CAAA,CAAC;QACzC,MAAM,MAAM,GAAe;YACzB,OAAO;YACP,OAAO;SACR,CAAC;QACF,gFAAgF;QAChF,+FAA+F;QAC/F,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,MAAM,CAAC,KAAK,qBAAQ,KAAK,CAAC,KAAK,CAAE,CAAC;SACnC;QACD,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,MAAM,CAAC,QAAQ,qBAAQ,KAAK,CAAC,QAAQ,CAAE,CAAC;SACzC;QACD,MAAM,YAAY,mCAAQ,SAAS,KAAE,KAAK,EAAE,OAAO,GAAE,CAAC;QAEtD,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,iCAChD,KAAK,KACR,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,IAC/D,CAAC,CAAC;SACL;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA9CD,wCA8CC"}
1
+ {"version":3,"file":"LDAIClientImpl.js","sourceRoot":"","sources":["../src/LDAIClientImpl.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAMrC,mEAAgE;AAsBhE,MAAa,cAAc;IACzB,YAAoB,SAAsB;QAAtB,cAAS,GAAT,SAAS,CAAa;IAAG,CAAC;IAEtC,oBAAoB,CAAC,QAAgB,EAAE,SAAkC;QAC/E,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,MAAM,CACV,GAAW,EACX,OAAkB,EAClB,YAA0B,EAC1B,SAAmC;;QAEnC,MAAM,KAAK,GAAqB,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC3F,MAAM,OAAO,GAAG,IAAI,6CAAqB,CACvC,IAAI,CAAC,SAAS,EACd,GAAG;QACH,gDAAgD;QAChD,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY,mCAAI,EAAE,EACjC,OAAO,CACR,CAAC;QACF,gDAAgD;QAChD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,OAAO,CAAA,CAAC;QACzC,MAAM,MAAM,GAAe;YACzB,OAAO;YACP,OAAO;SACR,CAAC;QACF,gFAAgF;QAChF,+FAA+F;QAC/F,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,MAAM,CAAC,KAAK,qBAAQ,KAAK,CAAC,KAAK,CAAE,CAAC;SACnC;QACD,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,MAAM,CAAC,QAAQ,qBAAQ,KAAK,CAAC,QAAQ,CAAE,CAAC;SACzC;QACD,MAAM,YAAY,mCAAQ,SAAS,KAAE,KAAK,EAAE,OAAO,GAAE,CAAC;QAEtD,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,iCAChD,KAAK,KACR,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,IAC/D,CAAC,CAAC;SACL;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA9CD,wCA8CC"}
@@ -1,13 +1,15 @@
1
1
  import { LDContext } from '@launchdarkly/js-server-sdk-common';
2
2
  import { LDAIConfigTracker } from './api/config';
3
+ import { LDAIMetricSummary } from './api/config/LDAIConfigTracker';
3
4
  import { LDFeedbackKind, LDTokenUsage } from './api/metrics';
4
5
  import { LDClientMin } from './LDClientMin';
5
6
  export declare class LDAIConfigTrackerImpl implements LDAIConfigTracker {
6
7
  private _ldClient;
7
8
  private _configKey;
8
- private _versionKey;
9
+ private _variationKey;
9
10
  private _context;
10
- constructor(_ldClient: LDClientMin, _configKey: string, _versionKey: string, _context: LDContext);
11
+ private _trackedMetrics;
12
+ constructor(_ldClient: LDClientMin, _configKey: string, _variationKey: string, _context: LDContext);
11
13
  private _getTrackData;
12
14
  trackDuration(duration: number): void;
13
15
  trackDurationOf<TRes>(func: () => Promise<TRes>): Promise<TRes>;
@@ -36,5 +38,9 @@ export declare class LDAIConfigTrackerImpl implements LDAIConfigTracker {
36
38
  };
37
39
  }>(res: TRes): TRes;
38
40
  trackTokens(tokens: LDTokenUsage): void;
41
+ /**
42
+ * Get a summary of the tracked metrics.
43
+ */
44
+ getSummary(): LDAIMetricSummary;
39
45
  }
40
46
  //# sourceMappingURL=LDAIConfigTrackerImpl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDAIConfigTrackerImpl.d.ts","sourceRoot":"","sources":["../src/LDAIConfigTrackerImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAA2B,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,qBAAsB,YAAW,iBAAiB;IAE3D,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ;gBAHR,SAAS,EAAE,WAAW,EACtB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,SAAS;IAG7B,OAAO,CAAC,aAAa;IAOrB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI/B,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASrE,aAAa,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI;IAQvD,YAAY,IAAI,IAAI;IAId,kBAAkB,CACtB,IAAI,SAAS;QACX,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;KACH,EACD,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3C,2BAA2B,CACzB,IAAI,SAAS;QACX,SAAS,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvC,OAAO,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACjC,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,EACD,GAAG,EAAE,IAAI,GAAG,IAAI;IAelB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;CAYxC"}
1
+ {"version":3,"file":"LDAIConfigTrackerImpl.d.ts","sourceRoot":"","sources":["../src/LDAIConfigTrackerImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAA2B,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,qBAAsB,YAAW,iBAAiB;IAI3D,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,QAAQ;IANlB,OAAO,CAAC,eAAe,CAAyB;gBAGtC,SAAS,EAAE,WAAW,EACtB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,SAAS;IAG7B,OAAO,CAAC,aAAa;IAOrB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK/B,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASrE,aAAa,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI;IASvD,YAAY,IAAI,IAAI;IAKd,kBAAkB,CACtB,IAAI,SAAS;QACX,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;KACH,EACD,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3C,2BAA2B,CACzB,IAAI,SAAS;QACX,SAAS,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvC,OAAO,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACjC,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,EACD,GAAG,EAAE,IAAI,GAAG,IAAI;IAelB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAcvC;;OAEG;IACH,UAAU,IAAI,iBAAiB;CAGhC"}
@@ -4,19 +4,21 @@ exports.LDAIConfigTrackerImpl = void 0;
4
4
  const metrics_1 = require("./api/metrics");
5
5
  const OpenAiUsage_1 = require("./api/metrics/OpenAiUsage");
6
6
  class LDAIConfigTrackerImpl {
7
- constructor(_ldClient, _configKey, _versionKey, _context) {
7
+ constructor(_ldClient, _configKey, _variationKey, _context) {
8
8
  this._ldClient = _ldClient;
9
9
  this._configKey = _configKey;
10
- this._versionKey = _versionKey;
10
+ this._variationKey = _variationKey;
11
11
  this._context = _context;
12
+ this._trackedMetrics = {};
12
13
  }
13
14
  _getTrackData() {
14
15
  return {
15
- versionKey: this._versionKey,
16
+ variationKey: this._variationKey,
16
17
  configKey: this._configKey,
17
18
  };
18
19
  }
19
20
  trackDuration(duration) {
21
+ this._trackedMetrics.durationMs = duration;
20
22
  this._ldClient.track('$ld:ai:duration:total', this._context, this._getTrackData(), duration);
21
23
  }
22
24
  async trackDurationOf(func) {
@@ -28,6 +30,7 @@ class LDAIConfigTrackerImpl {
28
30
  return result;
29
31
  }
30
32
  trackFeedback(feedback) {
33
+ this._trackedMetrics.feedback = feedback;
31
34
  if (feedback.kind === metrics_1.LDFeedbackKind.Positive) {
32
35
  this._ldClient.track('$ld:ai:feedback:user:positive', this._context, this._getTrackData(), 1);
33
36
  }
@@ -36,6 +39,7 @@ class LDAIConfigTrackerImpl {
36
39
  }
37
40
  }
38
41
  trackSuccess() {
42
+ this._trackedMetrics.success = true;
39
43
  this._ldClient.track('$ld:ai:generation', this._context, this._getTrackData(), 1);
40
44
  }
41
45
  async trackOpenAIMetrics(func) {
@@ -63,6 +67,7 @@ class LDAIConfigTrackerImpl {
63
67
  return res;
64
68
  }
65
69
  trackTokens(tokens) {
70
+ this._trackedMetrics.tokens = tokens;
66
71
  const trackData = this._getTrackData();
67
72
  if (tokens.total > 0) {
68
73
  this._ldClient.track('$ld:ai:tokens:total', this._context, trackData, tokens.total);
@@ -74,6 +79,12 @@ class LDAIConfigTrackerImpl {
74
79
  this._ldClient.track('$ld:ai:tokens:output', this._context, trackData, tokens.output);
75
80
  }
76
81
  }
82
+ /**
83
+ * Get a summary of the tracked metrics.
84
+ */
85
+ getSummary() {
86
+ return Object.assign({}, this._trackedMetrics);
87
+ }
77
88
  }
78
89
  exports.LDAIConfigTrackerImpl = LDAIConfigTrackerImpl;
79
90
  //# sourceMappingURL=LDAIConfigTrackerImpl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDAIConfigTrackerImpl.js","sourceRoot":"","sources":["../src/LDAIConfigTrackerImpl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LDAIConfigTrackerImpl.js","sourceRoot":"","sources":["../src/LDAIConfigTrackerImpl.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export interface LDModelConfig {
6
6
  /**
7
7
  * The ID of the model.
8
8
  */
9
- id: string;
9
+ name: string;
10
10
  /**
11
11
  * Model specific parameters.
12
12
  */
@@ -24,7 +24,7 @@ export interface LDProviderConfig {
24
24
  /**
25
25
  * The ID of the provider.
26
26
  */
27
- id: string;
27
+ name: string;
28
28
  }
29
29
  /**
30
30
  * Information about prompts.
@@ -1 +1 @@
1
- {"version":3,"file":"LDAIConfig.d.ts","sourceRoot":"","sources":["../../../src/api/config/LDAIConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,CAAC,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAE1C;;OAEG;IACH,MAAM,CAAC,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAE5B;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAC;IAE3B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG;IACnE;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
1
+ {"version":3,"file":"LDAIConfig.d.ts","sourceRoot":"","sources":["../../../src/api/config/LDAIConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,UAAU,CAAC,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAE1C;;OAEG;IACH,MAAM,CAAC,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAE5B;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAC;IAE3B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG;IACnE;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
@@ -1,4 +1,27 @@
1
1
  import { LDFeedbackKind, LDTokenUsage } from '../metrics';
2
+ /**
3
+ * Metrics which have been tracked.
4
+ */
5
+ export interface LDAIMetricSummary {
6
+ /**
7
+ * The duration of generation.
8
+ */
9
+ durationMs?: number;
10
+ /**
11
+ * Information about token usage.
12
+ */
13
+ tokens?: LDTokenUsage;
14
+ /**
15
+ * Was generation successful.
16
+ */
17
+ success?: boolean;
18
+ /**
19
+ * Any sentiment about the generation.
20
+ */
21
+ feedback?: {
22
+ kind: LDFeedbackKind;
23
+ };
24
+ }
2
25
  /**
3
26
  * The LDAIConfigTracker is used to track various details about AI operations.
4
27
  */
@@ -67,5 +90,9 @@ export interface LDAIConfigTracker {
67
90
  totalTokens?: number;
68
91
  };
69
92
  }>(res: TRes): TRes;
93
+ /**
94
+ * Get a summary of the tracked metrics.
95
+ */
96
+ getSummary(): LDAIMetricSummary;
70
97
  }
71
98
  //# sourceMappingURL=LDAIConfigTracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDAIConfigTracker.d.ts","sourceRoot":"","sources":["../../../src/api/config/LDAIConfigTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,YAAY,IAAI,IAAI,CAAC;IAErB;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAExD;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAExD;;;;;OAKG;IACH,kBAAkB,CAChB,IAAI,SAAS;QACX,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;KACH,EAED,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,2BAA2B,CACzB,IAAI,SAAS;QACX,SAAS,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvC,OAAO,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACjC,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,EAED,GAAG,EAAE,IAAI,GACR,IAAI,CAAC;CACT"}
1
+ {"version":3,"file":"LDAIConfigTracker.d.ts","sourceRoot":"","sources":["../../../src/api/config/LDAIConfigTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,YAAY,IAAI,IAAI,CAAC;IAErB;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAExD;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAExD;;;;;OAKG;IACH,kBAAkB,CAChB,IAAI,SAAS;QACX,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;KACH,EAED,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,2BAA2B,CACzB,IAAI,SAAS;QACX,SAAS,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvC,OAAO,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACjC,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,EAED,GAAG,EAAE,IAAI,GACR,IAAI,CAAC;IAER;;OAEG;IACH,UAAU,IAAI,iBAAiB,CAAC;CACjC"}