@langfuse/client 5.0.1 → 5.0.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/index.cjs +13 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.mjs +13 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.d.cts
CHANGED
|
@@ -233,6 +233,8 @@ type ExperimentItemResult<Input = any, ExpectedOutput = any, Metadata extends Re
|
|
|
233
233
|
* ```typescript
|
|
234
234
|
* const result = await langfuse.experiment.run(config);
|
|
235
235
|
*
|
|
236
|
+
* console.log(`Experiment ID: ${result.experimentId}`);
|
|
237
|
+
*
|
|
236
238
|
* // Access individual results
|
|
237
239
|
* console.log(`Processed ${result.itemResults.length} items`);
|
|
238
240
|
*
|
|
@@ -255,6 +257,14 @@ type ExperimentItemResult<Input = any, ExpectedOutput = any, Metadata extends Re
|
|
|
255
257
|
* @public
|
|
256
258
|
*/
|
|
257
259
|
type ExperimentResult<Input = any, ExpectedOutput = any, Metadata extends Record<string, any> = Record<string, any>> = {
|
|
260
|
+
/**
|
|
261
|
+
* Stable identifier for this experiment execution.
|
|
262
|
+
*
|
|
263
|
+
* For Langfuse datasets, this is the dataset run ID when available.
|
|
264
|
+
* For local data, this is a generated fallback ID shared across all items
|
|
265
|
+
* in the run.
|
|
266
|
+
*/
|
|
267
|
+
experimentId: string;
|
|
258
268
|
/**
|
|
259
269
|
* The experiment run name.
|
|
260
270
|
*
|
|
@@ -641,6 +651,7 @@ declare class ExperimentManager {
|
|
|
641
651
|
* @param config.maxConcurrency - Maximum number of concurrent task executions (default: 50)
|
|
642
652
|
*
|
|
643
653
|
* @returns Promise that resolves to experiment results including:
|
|
654
|
+
* - experimentId: Stable identifier for the experiment execution
|
|
644
655
|
* - runName: The experiment run name (either provided or generated)
|
|
645
656
|
* - itemResults: Results for each processed data item
|
|
646
657
|
* - runEvaluations: Results from run-level evaluators
|
package/dist/index.d.ts
CHANGED
|
@@ -233,6 +233,8 @@ type ExperimentItemResult<Input = any, ExpectedOutput = any, Metadata extends Re
|
|
|
233
233
|
* ```typescript
|
|
234
234
|
* const result = await langfuse.experiment.run(config);
|
|
235
235
|
*
|
|
236
|
+
* console.log(`Experiment ID: ${result.experimentId}`);
|
|
237
|
+
*
|
|
236
238
|
* // Access individual results
|
|
237
239
|
* console.log(`Processed ${result.itemResults.length} items`);
|
|
238
240
|
*
|
|
@@ -255,6 +257,14 @@ type ExperimentItemResult<Input = any, ExpectedOutput = any, Metadata extends Re
|
|
|
255
257
|
* @public
|
|
256
258
|
*/
|
|
257
259
|
type ExperimentResult<Input = any, ExpectedOutput = any, Metadata extends Record<string, any> = Record<string, any>> = {
|
|
260
|
+
/**
|
|
261
|
+
* Stable identifier for this experiment execution.
|
|
262
|
+
*
|
|
263
|
+
* For Langfuse datasets, this is the dataset run ID when available.
|
|
264
|
+
* For local data, this is a generated fallback ID shared across all items
|
|
265
|
+
* in the run.
|
|
266
|
+
*/
|
|
267
|
+
experimentId: string;
|
|
258
268
|
/**
|
|
259
269
|
* The experiment run name.
|
|
260
270
|
*
|
|
@@ -641,6 +651,7 @@ declare class ExperimentManager {
|
|
|
641
651
|
* @param config.maxConcurrency - Maximum number of concurrent task executions (default: 50)
|
|
642
652
|
*
|
|
643
653
|
* @returns Promise that resolves to experiment results including:
|
|
654
|
+
* - experimentId: Stable identifier for the experiment execution
|
|
644
655
|
* - runName: The experiment run name (either provided or generated)
|
|
645
656
|
* - itemResults: Results for each processed data item
|
|
646
657
|
* - runEvaluations: Results from run-level evaluators
|
package/dist/index.mjs
CHANGED
|
@@ -206,6 +206,7 @@ var ExperimentManager = class {
|
|
|
206
206
|
* @param config.maxConcurrency - Maximum number of concurrent task executions (default: 50)
|
|
207
207
|
*
|
|
208
208
|
* @returns Promise that resolves to experiment results including:
|
|
209
|
+
* - experimentId: Stable identifier for the experiment execution
|
|
209
210
|
* - runName: The experiment run name (either provided or generated)
|
|
210
211
|
* - itemResults: Results for each processed data item
|
|
211
212
|
* - runEvaluations: Results from run-level evaluators
|
|
@@ -258,6 +259,7 @@ var ExperimentManager = class {
|
|
|
258
259
|
* @public
|
|
259
260
|
*/
|
|
260
261
|
async run(config) {
|
|
262
|
+
var _a;
|
|
261
263
|
const {
|
|
262
264
|
data,
|
|
263
265
|
evaluators,
|
|
@@ -273,6 +275,7 @@ var ExperimentManager = class {
|
|
|
273
275
|
name,
|
|
274
276
|
runName: providedRunName
|
|
275
277
|
});
|
|
278
|
+
const fallbackExperimentId = await createExperimentId();
|
|
276
279
|
if (!this.isOtelRegistered()) {
|
|
277
280
|
this.logger.warn(
|
|
278
281
|
"OpenTelemetry has not been set up. Traces will not be sent to Langfuse.See our docs on how to set up OpenTelemetry: https://langfuse.com/docs/observability/sdk/typescript/setup#tracing-setup"
|
|
@@ -290,6 +293,7 @@ var ExperimentManager = class {
|
|
|
290
293
|
experimentRunName: runName,
|
|
291
294
|
experimentDescription: description,
|
|
292
295
|
experimentMetadata: metadata,
|
|
296
|
+
fallbackExperimentId,
|
|
293
297
|
datasetVersion: config.datasetVersion
|
|
294
298
|
});
|
|
295
299
|
});
|
|
@@ -310,7 +314,10 @@ var ExperimentManager = class {
|
|
|
310
314
|
);
|
|
311
315
|
itemResults.push(...results);
|
|
312
316
|
}
|
|
313
|
-
const datasetRunId =
|
|
317
|
+
const datasetRunId = (_a = itemResults.find(
|
|
318
|
+
(item) => item.datasetRunId
|
|
319
|
+
)) == null ? void 0 : _a.datasetRunId;
|
|
320
|
+
const experimentId = datasetRunId || fallbackExperimentId;
|
|
314
321
|
let datasetRunUrl = void 0;
|
|
315
322
|
if (datasetRunId && data.length > 0 && "datasetId" in data[0]) {
|
|
316
323
|
const datasetId = data[0].datasetId;
|
|
@@ -346,13 +353,14 @@ var ExperimentManager = class {
|
|
|
346
353
|
}
|
|
347
354
|
await this.langfuseClient.score.flush();
|
|
348
355
|
return {
|
|
356
|
+
experimentId,
|
|
349
357
|
runName,
|
|
350
358
|
itemResults,
|
|
351
359
|
datasetRunId,
|
|
352
360
|
datasetRunUrl,
|
|
353
361
|
runEvaluations,
|
|
354
362
|
format: async (options) => {
|
|
355
|
-
var
|
|
363
|
+
var _a2;
|
|
356
364
|
return await this.prettyPrintResults({
|
|
357
365
|
datasetRunUrl,
|
|
358
366
|
itemResults,
|
|
@@ -361,7 +369,7 @@ var ExperimentManager = class {
|
|
|
361
369
|
name: config.name,
|
|
362
370
|
runName,
|
|
363
371
|
description: config.description,
|
|
364
|
-
includeItemResults: (
|
|
372
|
+
includeItemResults: (_a2 = options == null ? void 0 : options.includeItemResults) != null ? _a2 : false
|
|
365
373
|
});
|
|
366
374
|
}
|
|
367
375
|
};
|
|
@@ -426,7 +434,7 @@ var ExperimentManager = class {
|
|
|
426
434
|
}
|
|
427
435
|
}
|
|
428
436
|
const experimentItemId = datasetItemId || await createExperimentItemId(input);
|
|
429
|
-
const experimentId = datasetRunId2 ||
|
|
437
|
+
const experimentId = datasetRunId2 || params.fallbackExperimentId;
|
|
430
438
|
const rootSpanAttributes = {
|
|
431
439
|
[LangfuseOtelSpanAttributes.ENVIRONMENT]: LANGFUSE_SDK_EXPERIMENT_ENVIRONMENT
|
|
432
440
|
};
|
|
@@ -1219,7 +1227,7 @@ var ChatPromptClient = class _ChatPromptClient extends BasePromptClient {
|
|
|
1219
1227
|
}
|
|
1220
1228
|
}
|
|
1221
1229
|
return messagesWithPlaceholdersReplaced.map((item) => {
|
|
1222
|
-
if (typeof item === "object" && item !== null && "role" in item && "content" in item) {
|
|
1230
|
+
if (typeof item === "object" && item !== null && "role" in item && "content" in item && typeof item.content === "string") {
|
|
1223
1231
|
return {
|
|
1224
1232
|
...item,
|
|
1225
1233
|
content: mustache.render(item.content, variables != null ? variables : {})
|