@arizeai/phoenix-client 1.2.0 → 1.3.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 (53) hide show
  1. package/dist/esm/client.d.ts +13 -1
  2. package/dist/esm/client.d.ts.map +1 -1
  3. package/dist/esm/client.js +4 -1
  4. package/dist/esm/client.js.map +1 -1
  5. package/dist/esm/experiments/instrumention.d.ts +18 -0
  6. package/dist/esm/experiments/instrumention.d.ts.map +1 -0
  7. package/dist/esm/experiments/instrumention.js +34 -0
  8. package/dist/esm/experiments/instrumention.js.map +1 -0
  9. package/dist/esm/experiments/runExperiment.d.ts +19 -16
  10. package/dist/esm/experiments/runExperiment.d.ts.map +1 -1
  11. package/dist/esm/experiments/runExperiment.js +209 -98
  12. package/dist/esm/experiments/runExperiment.js.map +1 -1
  13. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  14. package/dist/esm/types/experiments.d.ts +0 -1
  15. package/dist/esm/types/experiments.d.ts.map +1 -1
  16. package/dist/esm/utils/ensureString.d.ts +8 -0
  17. package/dist/esm/utils/ensureString.d.ts.map +1 -0
  18. package/dist/esm/utils/ensureString.js +14 -0
  19. package/dist/esm/utils/ensureString.js.map +1 -0
  20. package/dist/esm/utils/objectAsAttributes.d.ts +3 -0
  21. package/dist/esm/utils/objectAsAttributes.d.ts.map +1 -0
  22. package/dist/esm/utils/objectAsAttributes.js +4 -0
  23. package/dist/esm/utils/objectAsAttributes.js.map +1 -0
  24. package/dist/src/client.d.ts +13 -1
  25. package/dist/src/client.d.ts.map +1 -1
  26. package/dist/src/client.js +1 -1
  27. package/dist/src/client.js.map +1 -1
  28. package/dist/src/experiments/instrumention.d.ts +18 -0
  29. package/dist/src/experiments/instrumention.d.ts.map +1 -0
  30. package/dist/src/experiments/instrumention.js +38 -0
  31. package/dist/src/experiments/instrumention.js.map +1 -0
  32. package/dist/src/experiments/runExperiment.d.ts +19 -16
  33. package/dist/src/experiments/runExperiment.d.ts.map +1 -1
  34. package/dist/src/experiments/runExperiment.js +211 -102
  35. package/dist/src/experiments/runExperiment.js.map +1 -1
  36. package/dist/src/types/experiments.d.ts +0 -1
  37. package/dist/src/types/experiments.d.ts.map +1 -1
  38. package/dist/src/utils/ensureString.d.ts +8 -0
  39. package/dist/src/utils/ensureString.d.ts.map +1 -0
  40. package/dist/src/utils/ensureString.js +18 -0
  41. package/dist/src/utils/ensureString.js.map +1 -0
  42. package/dist/src/utils/objectAsAttributes.d.ts +3 -0
  43. package/dist/src/utils/objectAsAttributes.d.ts.map +1 -0
  44. package/dist/src/utils/objectAsAttributes.js +7 -0
  45. package/dist/src/utils/objectAsAttributes.js.map +1 -0
  46. package/dist/tsconfig.tsbuildinfo +1 -1
  47. package/package.json +9 -1
  48. package/src/client.ts +4 -1
  49. package/src/experiments/instrumention.ts +52 -0
  50. package/src/experiments/runExperiment.ts +246 -108
  51. package/src/types/experiments.ts +0 -1
  52. package/src/utils/ensureString.ts +14 -0
  53. package/src/utils/objectAsAttributes.ts +9 -0
@@ -15,15 +15,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.runExperiment = runExperiment;
16
16
  exports.evaluateExperiment = evaluateExperiment;
17
17
  exports.asEvaluator = asEvaluator;
18
- exports.id = id;
19
18
  const async_1 = require("async");
20
19
  const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
21
20
  const client_1 = require("../client");
22
21
  const getDatasetBySelector_1 = require("../utils/getDatasetBySelector");
23
22
  const pluralize_1 = require("../utils/pluralize");
24
23
  const promisifyResult_1 = require("../utils/promisifyResult");
24
+ const instrumention_1 = require("./instrumention");
25
+ const api_1 = require("@opentelemetry/api");
26
+ const openinference_semantic_conventions_1 = require("@arizeai/openinference-semantic-conventions");
27
+ const ensureString_1 = require("../utils/ensureString");
28
+ const objectAsAttributes_1 = require("../utils/objectAsAttributes");
25
29
  /**
26
- * Run an experiment.
30
+ * Runs an experiment using a given set of dataset of examples.
31
+ *
32
+ * An experiment is a user-defined task that runs on each example in a dataset. The results from
33
+ * each experiment can be evaluated using any number of evaluators to measure the behavior of the
34
+ * task. The experiment and evaluation results are stored in the Phoenix database for comparison
35
+ * and analysis.
36
+ *
37
+ * A `task` is either a sync or async function that returns a JSON serializable
38
+ * output. If the `task` is a function of one argument then that argument will be bound to the
39
+ * `input` field of the dataset example. Alternatively, the `task` can be a function of any
40
+ * combination of specific argument names that will be bound to special values:
41
+ *
42
+ * - `input`: The input field of the dataset example
43
+ * - `expected`: The expected or reference output of the dataset example
44
+ * - `reference`: An alias for `expected`
45
+ * - `metadata`: Metadata associated with the dataset example
46
+ * - `example`: The dataset `Example` object with all associated fields
27
47
  *
28
48
  * @example
29
49
  * ```ts
@@ -33,16 +53,15 @@ const promisifyResult_1 = require("../utils/promisifyResult");
33
53
  * dataset: "my-dataset",
34
54
  * task: async (example) => example.input,
35
55
  * evaluators: [
36
- * asEvaluator("my-evaluator", "CODE", async (params) => params.output),
56
+ * asEvaluator({ name: "my-evaluator", kind: "CODE", evaluate: async (params) => params.output }),
37
57
  * ],
38
58
  * });
39
59
  * ```
40
- *
41
- * @experimental This feature is not complete, and will change in the future.
42
60
  */
43
61
  function runExperiment(_a) {
44
- return __awaiter(this, arguments, void 0, function* ({ experimentName: _experimentName, experimentDescription, experimentMetadata, client: _client, dataset: _dataset, task, evaluators, projectName = "default", logger = console, record = true, concurrency = 5, dryRun = false, }) {
45
- var _b, _c;
62
+ return __awaiter(this, arguments, void 0, function* ({ experimentName, experimentDescription, experimentMetadata, client: _client, dataset: _dataset, task, evaluators, logger = console, record = true, concurrency = 5, dryRun = false, }) {
63
+ var _b, _c, _d, _e, _f;
64
+ let provider;
46
65
  const isDryRun = typeof dryRun === "number" || dryRun === true;
47
66
  const client = _client !== null && _client !== void 0 ? _client : (0, client_1.createClient)();
48
67
  const dataset = yield (0, getDatasetBySelector_1.getDatasetBySelector)({ dataset: _dataset, client });
@@ -51,18 +70,18 @@ function runExperiment(_a) {
51
70
  const nExamples = typeof dryRun === "number"
52
71
  ? Math.max(dryRun, dataset.examples.length)
53
72
  : dataset.examples.length;
54
- const experimentName = _experimentName !== null && _experimentName !== void 0 ? _experimentName : `${dataset.name}-${new Date().toISOString()}`;
55
- const experimentParams = {
56
- nExamples,
57
- };
73
+ let projectName = `${dataset.name}-exp-${new Date().toISOString()}`;
74
+ // initialize the tracer into scope
75
+ let taskTracer;
58
76
  let experiment;
59
77
  if (isDryRun) {
60
78
  experiment = {
61
- id: id(),
79
+ id: localId(),
62
80
  datasetId: dataset.id,
63
81
  datasetVersionId: dataset.versionId,
64
82
  projectName,
65
83
  };
84
+ taskTracer = (0, instrumention_1.createNoOpProvider)().getTracer("no-op");
66
85
  }
67
86
  else {
68
87
  const experimentResponse = yield client
@@ -81,17 +100,27 @@ function runExperiment(_a) {
81
100
  })
82
101
  .then((res) => { var _a; return (_a = res.data) === null || _a === void 0 ? void 0 : _a.data; });
83
102
  (0, tiny_invariant_1.default)(experimentResponse, `Failed to create experiment`);
103
+ projectName = (_b = experimentResponse.project_name) !== null && _b !== void 0 ? _b : projectName;
84
104
  experiment = {
85
105
  id: experimentResponse.id,
86
106
  datasetId: dataset.id,
87
107
  datasetVersionId: dataset.versionId,
88
108
  projectName,
89
109
  };
110
+ // Initialize the tracer, now that we have a project name
111
+ const baseUrl = client.config.baseUrl;
112
+ (0, tiny_invariant_1.default)(baseUrl, "Phoenix base URL not found. Please set PHOENIX_HOST or set baseUrl on the client.");
113
+ provider = (0, instrumention_1.createProvider)({
114
+ projectName,
115
+ baseUrl,
116
+ headers: (_c = client.config.headers) !== null && _c !== void 0 ? _c : {},
117
+ });
118
+ taskTracer = provider.getTracer(projectName);
90
119
  }
91
120
  if (!record) {
92
121
  logger.info(`🔧 Running experiment in readonly mode. Results will not be recorded.`);
93
122
  }
94
- logger.info(`🧪 Starting experiment "${experimentName}" on dataset "${dataset.id}" with task "${task.name}" and ${(_b = evaluators === null || evaluators === void 0 ? void 0 : evaluators.length) !== null && _b !== void 0 ? _b : 0} ${(0, pluralize_1.pluralize)("evaluator", (_c = evaluators === null || evaluators === void 0 ? void 0 : evaluators.length) !== null && _c !== void 0 ? _c : 0)} and ${concurrency} concurrent runs`);
123
+ logger.info(`🧪 Starting experiment "${experimentName}" on dataset "${dataset.id}" with task "${task.name}" and ${(_d = evaluators === null || evaluators === void 0 ? void 0 : evaluators.length) !== null && _d !== void 0 ? _d : 0} ${(0, pluralize_1.pluralize)("evaluator", (_e = evaluators === null || evaluators === void 0 ? void 0 : evaluators.length) !== null && _e !== void 0 ? _e : 0)} and ${concurrency} concurrent runs`);
95
124
  const runs = {};
96
125
  yield runTask({
97
126
  client,
@@ -105,9 +134,14 @@ function runExperiment(_a) {
105
134
  concurrency,
106
135
  isDryRun,
107
136
  nExamples,
137
+ tracer: taskTracer,
108
138
  });
109
139
  logger.info(`✅ Task runs completed`);
110
- const ranExperiment = Object.assign(Object.assign({}, experiment), { params: experimentParams, runs });
140
+ const ranExperiment = Object.assign(Object.assign({}, experiment), { runs });
141
+ // Shut down the provider so that the experiments run
142
+ if (provider) {
143
+ yield ((_f = provider.shutdown) === null || _f === void 0 ? void 0 : _f.call(provider));
144
+ }
111
145
  const { evaluationRuns } = yield evaluateExperiment({
112
146
  experiment: ranExperiment,
113
147
  evaluators: evaluators !== null && evaluators !== void 0 ? evaluators : [],
@@ -124,61 +158,79 @@ function runExperiment(_a) {
124
158
  /**
125
159
  * Run a task against n examples in a dataset.
126
160
  */
127
- function runTask({ client, experimentId, task, dataset, onComplete, logger, concurrency = 5, isDryRun, nExamples, }) {
161
+ function runTask({ client, experimentId, task, dataset, onComplete, logger, concurrency = 5, isDryRun, nExamples, tracer, }) {
128
162
  logger.info(`🔧 Running task "${task.name}" on dataset "${dataset.id}"`);
129
163
  const run = (example) => __awaiter(this, void 0, void 0, function* () {
130
- var _a, _b;
131
- logger.info(`🔧 Running task "${task.name}" on example "${example.id} of dataset "${dataset.id}"`);
132
- const thisRun = {
133
- id: id(),
134
- traceId: null, // TODO: fill this in once we trace experiments
135
- experimentId,
136
- datasetExampleId: example.id,
137
- startTime: new Date(),
138
- endTime: new Date(), // will get replaced with actual end time
139
- output: null,
140
- error: null,
141
- };
142
- try {
143
- const taskOutput = yield (0, promisifyResult_1.promisifyResult)(task(example));
144
- // TODO: why doesn't run output type match task output type?
145
- thisRun.output =
146
- typeof taskOutput === "string"
147
- ? taskOutput
148
- : JSON.stringify(taskOutput);
149
- }
150
- catch (error) {
151
- thisRun.error = error instanceof Error ? error.message : "Unknown error";
152
- }
153
- thisRun.endTime = new Date();
154
- if (!isDryRun) {
155
- // Log the run to the server
156
- // We log this without awaiting (e.g. best effort)
157
- const res = yield client.POST("/v1/experiments/{experiment_id}/runs", {
158
- params: {
159
- path: {
160
- experiment_id: experimentId,
164
+ return tracer.startActiveSpan(`Task: ${task.name}`, (span) => __awaiter(this, void 0, void 0, function* () {
165
+ var _a, _b;
166
+ logger.info(`🔧 Running task "${task.name}" on example "${example.id} of dataset "${dataset.id}"`);
167
+ const traceId = span.spanContext().traceId;
168
+ const thisRun = {
169
+ id: localId(), // initialized with local id, will be replaced with server-assigned id when dry run is false
170
+ traceId,
171
+ experimentId,
172
+ datasetExampleId: example.id,
173
+ startTime: new Date(),
174
+ endTime: new Date(), // will get replaced with actual end time
175
+ output: null,
176
+ error: null,
177
+ };
178
+ try {
179
+ const taskOutput = yield (0, promisifyResult_1.promisifyResult)(task(example));
180
+ thisRun.output =
181
+ typeof taskOutput === "string"
182
+ ? taskOutput
183
+ : JSON.stringify(taskOutput);
184
+ }
185
+ catch (error) {
186
+ thisRun.error =
187
+ error instanceof Error ? error.message : "Unknown error";
188
+ span.setStatus({ code: api_1.SpanStatusCode.ERROR });
189
+ }
190
+ thisRun.endTime = new Date();
191
+ if (!isDryRun) {
192
+ // Log the run to the server
193
+ const res = yield client.POST("/v1/experiments/{experiment_id}/runs", {
194
+ params: {
195
+ path: {
196
+ experiment_id: experimentId,
197
+ },
161
198
  },
162
- },
163
- body: {
164
- dataset_example_id: example.id,
165
- output: thisRun.output,
166
- repetition_number: 0,
167
- start_time: thisRun.startTime.toISOString(),
168
- end_time: thisRun.endTime.toISOString(),
169
- trace_id: thisRun.traceId,
170
- error: thisRun.error,
171
- },
172
- });
173
- // replace the local run id with the server-assigned id
174
- thisRun.id = (_b = (_a = res.data) === null || _a === void 0 ? void 0 : _a.data.id) !== null && _b !== void 0 ? _b : thisRun.id;
175
- }
176
- onComplete(thisRun);
177
- return thisRun;
199
+ body: {
200
+ dataset_example_id: example.id,
201
+ output: thisRun.output,
202
+ repetition_number: 0,
203
+ start_time: thisRun.startTime.toISOString(),
204
+ end_time: thisRun.endTime.toISOString(),
205
+ trace_id: thisRun.traceId,
206
+ error: thisRun.error,
207
+ },
208
+ });
209
+ // replace the local run id with the server-assigned id
210
+ thisRun.id = (_b = (_a = res.data) === null || _a === void 0 ? void 0 : _a.data.id) !== null && _b !== void 0 ? _b : thisRun.id;
211
+ const inputMimeType = typeof example.input === "string" ? openinference_semantic_conventions_1.MimeType.TEXT : openinference_semantic_conventions_1.MimeType.JSON;
212
+ const outputMimeType = typeof thisRun.output === "string" ? openinference_semantic_conventions_1.MimeType.TEXT : openinference_semantic_conventions_1.MimeType.JSON;
213
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
214
+ span.setAttributes({
215
+ [openinference_semantic_conventions_1.SemanticConventions.OPENINFERENCE_SPAN_KIND]: openinference_semantic_conventions_1.OpenInferenceSpanKind.CHAIN,
216
+ [openinference_semantic_conventions_1.SemanticConventions.INPUT_MIME_TYPE]: inputMimeType,
217
+ [openinference_semantic_conventions_1.SemanticConventions.INPUT_VALUE]: (0, ensureString_1.ensureString)(example.input),
218
+ [openinference_semantic_conventions_1.SemanticConventions.OUTPUT_MIME_TYPE]: outputMimeType,
219
+ [openinference_semantic_conventions_1.SemanticConventions.OUTPUT_VALUE]: (0, ensureString_1.ensureString)(thisRun.output),
220
+ });
221
+ }
222
+ span === null || span === void 0 ? void 0 : span.end();
223
+ onComplete(thisRun);
224
+ return thisRun;
225
+ }));
178
226
  });
179
227
  const q = (0, async_1.queue)(run, concurrency);
180
228
  const examplesToUse = dataset.examples.slice(0, nExamples);
181
- examplesToUse.forEach((example) => q.push(example));
229
+ examplesToUse.forEach((example) => q.push(example, (err) => {
230
+ if (err) {
231
+ logger.error(`Error running task "${task.name}" on example "${example.id}": ${err}`);
232
+ }
233
+ }));
182
234
  return q.drain();
183
235
  }
184
236
  /**
@@ -188,12 +240,28 @@ function runTask({ client, experimentId, task, dataset, onComplete, logger, conc
188
240
  */
189
241
  function evaluateExperiment(_a) {
190
242
  return __awaiter(this, arguments, void 0, function* ({ experiment, evaluators, client: _client, logger, concurrency = 5, dryRun = false, }) {
191
- var _b, _c;
243
+ var _b, _c, _d, _e;
192
244
  const isDryRun = typeof dryRun === "number" || dryRun === true;
245
+ const client = _client !== null && _client !== void 0 ? _client : (0, client_1.createClient)();
246
+ const baseUrl = client.config.baseUrl;
247
+ (0, tiny_invariant_1.default)(baseUrl, "Phoenix base URL not found. Please set PHOENIX_HOST or set baseUrl on the client.");
248
+ let provider;
249
+ if (!isDryRun) {
250
+ provider = (0, instrumention_1.createProvider)({
251
+ projectName: "evaluators",
252
+ baseUrl,
253
+ headers: (_b = client.config.headers) !== null && _b !== void 0 ? _b : {},
254
+ });
255
+ }
256
+ else {
257
+ provider = (0, instrumention_1.createNoOpProvider)();
258
+ }
259
+ const tracer = isDryRun
260
+ ? provider.getTracer("no-op")
261
+ : provider.getTracer("evaluators");
193
262
  const nRuns = typeof dryRun === "number"
194
263
  ? Math.max(dryRun, Object.keys(experiment.runs).length)
195
264
  : Object.keys(experiment.runs).length;
196
- const client = _client !== null && _client !== void 0 ? _client : (0, client_1.createClient)();
197
265
  const dataset = yield (0, getDatasetBySelector_1.getDatasetBySelector)({
198
266
  dataset: experiment.datasetId,
199
267
  client,
@@ -205,7 +273,7 @@ function evaluateExperiment(_a) {
205
273
  if ((evaluators === null || evaluators === void 0 ? void 0 : evaluators.length) === 0) {
206
274
  return Object.assign(Object.assign({}, experiment), { evaluationRuns: [] });
207
275
  }
208
- logger.info(`🧠 Evaluating experiment "${experiment.id}" with ${(_b = evaluators === null || evaluators === void 0 ? void 0 : evaluators.length) !== null && _b !== void 0 ? _b : 0} ${(0, pluralize_1.pluralize)("evaluator", (_c = evaluators === null || evaluators === void 0 ? void 0 : evaluators.length) !== null && _c !== void 0 ? _c : 0)}`);
276
+ logger.info(`🧠 Evaluating experiment "${experiment.id}" with ${(_c = evaluators === null || evaluators === void 0 ? void 0 : evaluators.length) !== null && _c !== void 0 ? _c : 0} ${(0, pluralize_1.pluralize)("evaluator", (_d = evaluators === null || evaluators === void 0 ? void 0 : evaluators.length) !== null && _d !== void 0 ? _d : 0)}`);
209
277
  const evaluationRuns = {};
210
278
  const examplesById = {};
211
279
  for (const example of dataset.examples) {
@@ -221,33 +289,74 @@ function evaluateExperiment(_a) {
221
289
  run,
222
290
  })));
223
291
  const evaluatorsQueue = (0, async_1.queue)((evaluatorAndRun) => __awaiter(this, void 0, void 0, function* () {
224
- const evalResult = yield runEvaluator({
225
- evaluator: evaluatorAndRun.evaluator,
226
- run: evaluatorAndRun.run,
227
- exampleCache: examplesById,
228
- onComplete: onEvaluationComplete,
229
- });
230
- if (!isDryRun) {
231
- logger.info(`📝 Logging evaluation ${evalResult.id}`);
232
- // Log the evaluation to the server
233
- // We log this without awaiting (e.g. best effort)
234
- client.POST("/v1/experiment_evaluations", {
235
- body: {
236
- experiment_run_id: evaluatorAndRun.run.id,
237
- name: evaluatorAndRun.evaluator.name,
238
- annotator_kind: evaluatorAndRun.evaluator.kind,
239
- start_time: evalResult.startTime.toISOString(),
240
- end_time: evalResult.endTime.toISOString(),
241
- result: Object.assign({}, evalResult.result),
242
- error: evalResult.error,
243
- trace_id: evalResult.traceId,
244
- },
292
+ return tracer.startActiveSpan(`Evaluation: ${evaluatorAndRun.evaluator.name}`, (span) => __awaiter(this, void 0, void 0, function* () {
293
+ var _a, _b, _c;
294
+ const evalResult = yield runEvaluator({
295
+ evaluator: evaluatorAndRun.evaluator,
296
+ run: evaluatorAndRun.run,
297
+ exampleCache: examplesById,
298
+ onComplete: onEvaluationComplete,
299
+ logger,
245
300
  });
246
- }
301
+ span.setAttributes({
302
+ [openinference_semantic_conventions_1.SemanticConventions.OPENINFERENCE_SPAN_KIND]: openinference_semantic_conventions_1.OpenInferenceSpanKind.EVALUATOR,
303
+ [openinference_semantic_conventions_1.SemanticConventions.INPUT_MIME_TYPE]: openinference_semantic_conventions_1.MimeType.JSON,
304
+ [openinference_semantic_conventions_1.SemanticConventions.INPUT_VALUE]: JSON.stringify({
305
+ input: (_a = examplesById[evaluatorAndRun.run.datasetExampleId]) === null || _a === void 0 ? void 0 : _a.input,
306
+ output: evaluatorAndRun.run.output,
307
+ expected: (_b = examplesById[evaluatorAndRun.run.datasetExampleId]) === null || _b === void 0 ? void 0 : _b.output,
308
+ metadata: (_c = examplesById[evaluatorAndRun.run.datasetExampleId]) === null || _c === void 0 ? void 0 : _c.metadata,
309
+ }),
310
+ [openinference_semantic_conventions_1.SemanticConventions.OUTPUT_MIME_TYPE]: openinference_semantic_conventions_1.MimeType.JSON,
311
+ [openinference_semantic_conventions_1.SemanticConventions.OUTPUT_VALUE]: (0, ensureString_1.ensureString)(evalResult.result),
312
+ });
313
+ if (evalResult.error) {
314
+ span.setStatus({
315
+ code: api_1.SpanStatusCode.ERROR,
316
+ message: evalResult.error,
317
+ });
318
+ }
319
+ else {
320
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
321
+ }
322
+ if (evalResult.result) {
323
+ span.setAttributes((0, objectAsAttributes_1.objectAsAttributes)(evalResult.result));
324
+ }
325
+ evalResult.traceId = span.spanContext().traceId;
326
+ if (!isDryRun) {
327
+ // Log the evaluation to the server
328
+ // We log this without awaiting (e.g. best effort)
329
+ client.POST("/v1/experiment_evaluations", {
330
+ body: {
331
+ experiment_run_id: evaluatorAndRun.run.id,
332
+ name: evaluatorAndRun.evaluator.name,
333
+ annotator_kind: evaluatorAndRun.evaluator.kind,
334
+ start_time: evalResult.startTime.toISOString(),
335
+ end_time: evalResult.endTime.toISOString(),
336
+ result: Object.assign({}, evalResult.result),
337
+ error: evalResult.error,
338
+ trace_id: evalResult.traceId,
339
+ },
340
+ });
341
+ }
342
+ span.end();
343
+ return evalResult;
344
+ }));
247
345
  }), concurrency);
248
- evaluatorsAndRuns.forEach((evaluatorAndRun) => evaluatorsQueue.push(evaluatorAndRun));
346
+ if (!evaluatorsAndRuns.length) {
347
+ logger.info(`⛔ No evaluators to run`);
348
+ return Object.assign(Object.assign({}, experiment), { evaluationRuns: [] });
349
+ }
350
+ evaluatorsAndRuns.forEach((evaluatorAndRun) => evaluatorsQueue.push(evaluatorAndRun, (err) => {
351
+ if (err) {
352
+ logger.error(`❌ Error running evaluator "${evaluatorAndRun.evaluator.name}" on run "${evaluatorAndRun.run.id}": ${err}`);
353
+ }
354
+ }));
249
355
  yield evaluatorsQueue.drain();
250
356
  logger.info(`✅ Evaluation runs completed`);
357
+ if (provider) {
358
+ yield ((_e = provider.shutdown) === null || _e === void 0 ? void 0 : _e.call(provider));
359
+ }
251
360
  return Object.assign(Object.assign({}, experiment), { evaluationRuns: Object.values(evaluationRuns) });
252
361
  });
253
362
  }
@@ -257,21 +366,22 @@ function evaluateExperiment(_a) {
257
366
  * @experimental This feature is not complete, and will change in the future.
258
367
  */
259
368
  function runEvaluator(_a) {
260
- return __awaiter(this, arguments, void 0, function* ({ evaluator, run, exampleCache, onComplete, }) {
369
+ return __awaiter(this, arguments, void 0, function* ({ evaluator, run, exampleCache, onComplete, logger, }) {
261
370
  const example = exampleCache[run.datasetExampleId];
262
371
  (0, tiny_invariant_1.default)(example, `Example "${run.datasetExampleId}" not found`);
263
372
  const evaluate = () => __awaiter(this, void 0, void 0, function* () {
264
373
  var _a;
374
+ logger.info(`🧠 Evaluating run "${run.id}" with evaluator "${evaluator.name}"`);
265
375
  const thisEval = {
266
- id: id(),
267
- traceId: null, // TODO: fill this in once we trace experiments
376
+ id: localId(),
377
+ traceId: null,
268
378
  experimentRunId: run.id,
269
379
  startTime: new Date(),
270
380
  endTime: new Date(), // will get replaced with actual end time
271
381
  name: evaluator.name,
272
382
  result: null,
273
383
  error: null,
274
- annotatorKind: "LLM", // TODO: make configurable via evaluator def
384
+ annotatorKind: evaluator.kind,
275
385
  };
276
386
  try {
277
387
  const result = yield evaluator.evaluate({
@@ -281,9 +391,11 @@ function runEvaluator(_a) {
281
391
  metadata: example.metadata,
282
392
  });
283
393
  thisEval.result = result;
394
+ logger.info(`✅ Evaluator "${evaluator.name}" on run "${run.id}" completed`);
284
395
  }
285
396
  catch (error) {
286
397
  thisEval.error = error instanceof Error ? error.message : "Unknown error";
398
+ logger.error(`❌ Evaluator "${evaluator.name}" on run "${run.id}" failed: ${thisEval.error}`);
287
399
  }
288
400
  thisEval.endTime = new Date();
289
401
  onComplete(thisEval);
@@ -308,17 +420,14 @@ function asEvaluator({ name, kind, evaluate, }) {
308
420
  evaluate,
309
421
  };
310
422
  }
311
- let _id = 1000;
423
+ let _localIdIndex = 1000;
312
424
  /**
313
- * Generate a unique id.
425
+ * Generate a local id.
314
426
  *
315
- * @deprecated Use id generated by phoenix instead.
316
- * @returns A unique id.
427
+ * @returns A semi-unique id.
317
428
  */
318
- function id() {
319
- return (() => {
320
- _id++;
321
- return _id.toString();
322
- })();
429
+ function localId() {
430
+ _localIdIndex++;
431
+ return `local_${_localIdIndex}`;
323
432
  }
324
433
  //# sourceMappingURL=runExperiment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runExperiment.js","sourceRoot":"","sources":["../../../src/experiments/runExperiment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runExperiment.js","sourceRoot":"","sources":["../../../src/experiments/runExperiment.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,6 @@ export interface Experiment extends Node {
13
13
  projectName: string;
14
14
  }
15
15
  export interface RanExperiment extends Experiment {
16
- params: ExperimentParameters;
17
16
  runs: Record<string, ExperimentRun>;
18
17
  evaluationRuns?: ExperimentEvaluationRun[];
19
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"experiments.d.ts","sourceRoot":"","sources":["../../../src/types/experiments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,IAAI;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI;IACzC,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB;;OAEG;IACH,MAAM,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,CACR,IAAI,EAAE,eAAe,KAClB,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,uBAAwB,SAAQ,IAAI;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChC;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAEnE,MAAM,MAAM,cAAc,GAAG,CAC3B,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;AAEtC,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"experiments.d.ts","sourceRoot":"","sources":["../../../src/types/experiments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,IAAI;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI;IACzC,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB;;OAEG;IACH,MAAM,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,CACR,IAAI,EAAE,eAAe,KAClB,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,uBAAwB,SAAQ,IAAI;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChC;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAEnE,MAAM,MAAM,cAAc,GAAG,CAC3B,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;AAEtC,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Ensures that a value is a string.
3
+ * If the value is not a string, it will be converted to a string using `safelyStringifyJSON`.
4
+ * @param value - The value to ensure is a string.
5
+ * @returns The value as a string.
6
+ */
7
+ export declare function ensureString(value: unknown): string;
8
+ //# sourceMappingURL=ensureString.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureString.d.ts","sourceRoot":"","sources":["../../../src/utils/ensureString.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKnD"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureString = ensureString;
4
+ const safelyStringifyJSON_1 = require("./safelyStringifyJSON");
5
+ /**
6
+ * Ensures that a value is a string.
7
+ * If the value is not a string, it will be converted to a string using `safelyStringifyJSON`.
8
+ * @param value - The value to ensure is a string.
9
+ * @returns The value as a string.
10
+ */
11
+ function ensureString(value) {
12
+ var _a, _b;
13
+ if (typeof value === "string") {
14
+ return value;
15
+ }
16
+ return (_b = (_a = (0, safelyStringifyJSON_1.safelyStringifyJSON)(value)) === null || _a === void 0 ? void 0 : _a.json) !== null && _b !== void 0 ? _b : "";
17
+ }
18
+ //# sourceMappingURL=ensureString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureString.js","sourceRoot":"","sources":["../../../src/utils/ensureString.ts"],"names":[],"mappings":";;AAQA,oCAKC;AAbD,+DAA4D;AAE5D;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAc;;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAA,MAAA,IAAA,yCAAmB,EAAC,KAAK,CAAC,0CAAE,IAAI,mCAAI,EAAE,CAAC;AAChD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { AttributeValue } from "@opentelemetry/api";
2
+ export declare function objectAsAttributes<T extends Record<string, unknown>>(obj: T): Record<string, AttributeValue>;
3
+ //# sourceMappingURL=objectAsAttributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectAsAttributes.d.ts","sourceRoot":"","sources":["../../../src/utils/objectAsAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,GAAG,EAAE,CAAC,GACL,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAIhC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.objectAsAttributes = objectAsAttributes;
4
+ function objectAsAttributes(obj) {
5
+ return Object.fromEntries(Object.entries(obj).filter(([_, value]) => value !== null));
6
+ }
7
+ //# sourceMappingURL=objectAsAttributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectAsAttributes.js","sourceRoot":"","sources":["../../../src/utils/objectAsAttributes.ts"],"names":[],"mappings":";;AAEA,gDAMC;AAND,SAAgB,kBAAkB,CAChC,GAAM;IAEN,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CACzB,CAAC;AACtC,CAAC"}