promptfoo 0.51.0 → 0.53.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/README.md +15 -12
- package/dist/package.json +2 -1
- package/dist/src/assertions.d.ts.map +1 -1
- package/dist/src/assertions.js +28 -16
- package/dist/src/assertions.js.map +1 -1
- package/dist/src/commands/delete.d.ts +3 -0
- package/dist/src/commands/delete.d.ts.map +1 -0
- package/dist/src/commands/delete.js +53 -0
- package/dist/src/commands/delete.js.map +1 -0
- package/dist/src/commands/list.d.ts.map +1 -1
- package/dist/src/commands/list.js +10 -3
- package/dist/src/commands/list.js.map +1 -1
- package/dist/src/commands/show.d.ts.map +1 -1
- package/dist/src/commands/show.js +10 -3
- package/dist/src/commands/show.js.map +1 -1
- package/dist/src/csv.d.ts.map +1 -1
- package/dist/src/csv.js +7 -1
- package/dist/src/csv.js.map +1 -1
- package/dist/src/database.d.ts.map +1 -1
- package/dist/src/database.js +4 -0
- package/dist/src/database.js.map +1 -1
- package/dist/src/esm.js +2 -1
- package/dist/src/esm.js.map +1 -1
- package/dist/src/evaluator.d.ts.map +1 -1
- package/dist/src/evaluator.js +137 -56
- package/dist/src/evaluator.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +8 -6
- package/dist/src/index.js.map +1 -1
- package/dist/src/main.d.ts +1 -1
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +16 -2
- package/dist/src/main.js.map +1 -1
- package/dist/src/matchers.d.ts.map +1 -1
- package/dist/src/matchers.js +11 -11
- package/dist/src/matchers.js.map +1 -1
- package/dist/src/providers/anthropic.d.ts +3 -0
- package/dist/src/providers/anthropic.d.ts.map +1 -1
- package/dist/src/providers/anthropic.js +4 -1
- package/dist/src/providers/anthropic.js.map +1 -1
- package/dist/src/providers/azureopenai.d.ts.map +1 -1
- package/dist/src/providers/azureopenai.js +3 -2
- package/dist/src/providers/azureopenai.js.map +1 -1
- package/dist/src/providers/defaults.d.ts +13 -0
- package/dist/src/providers/defaults.d.ts.map +1 -0
- package/dist/src/providers/defaults.js +26 -0
- package/dist/src/providers/defaults.js.map +1 -0
- package/dist/src/providers/vertex.d.ts.map +1 -1
- package/dist/src/providers/vertex.js +15 -2
- package/dist/src/providers/vertex.js.map +1 -1
- package/dist/src/python/wrapper.d.ts.map +1 -1
- package/dist/src/python/wrapper.js +8 -1
- package/dist/src/python/wrapper.js.map +1 -1
- package/dist/src/python/wrapper.py +4 -2
- package/dist/src/telemetry.js +1 -1
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/types.d.ts +31 -2
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/updates.d.ts +1 -1
- package/dist/src/updates.d.ts.map +1 -1
- package/dist/src/updates.js +6 -6
- package/dist/src/updates.js.map +1 -1
- package/dist/src/util.d.ts +3 -1
- package/dist/src/util.d.ts.map +1 -1
- package/dist/src/util.js +30 -3
- package/dist/src/util.js.map +1 -1
- package/dist/src/web/nextui/404/index.html +1 -1
- package/dist/src/web/nextui/404.html +1 -1
- package/dist/src/web/nextui/_next/static/chunks/670-cbba26ea73165041.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/{782-e07d19365960282c.js → 772-d8e765a0f4a182cd.js} +4 -4
- package/dist/src/web/nextui/_next/static/chunks/864-406abb9f68cff6a3.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/{609-483decb66cf4cfa8.js → 921-ea4bddb5c25058ea.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/{580-cccb247de1b7350b.js → 946-740c3c4d7e8acaf7.js} +2 -2
- package/dist/src/web/nextui/_next/static/chunks/app/datasets/page-f93e740e9cc7a725.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/app/eval/[id]/{page-6f275364ed1179d3.js → page-fd17c94175203b8b.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/app/eval/{page-7a1f6ddb7c8a0989.js → page-f7288a403368b113.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/app/{layout-6bdc710ec6575432.js → layout-0afd14c99b2fc9eb.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/app/progress/page-1129b810645defc6.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/app/setup/{page-b0609d23570b9503.js → page-45bba09ce127aef4.js} +1 -1
- package/dist/src/web/nextui/auth/login/index.html +1 -1
- package/dist/src/web/nextui/auth/login/index.txt +2 -2
- package/dist/src/web/nextui/auth/signup/index.html +1 -1
- package/dist/src/web/nextui/auth/signup/index.txt +2 -2
- package/dist/src/web/nextui/datasets/index.html +1 -1
- package/dist/src/web/nextui/datasets/index.txt +3 -3
- package/dist/src/web/nextui/eval/index.html +1 -1
- package/dist/src/web/nextui/eval/index.txt +3 -3
- package/dist/src/web/nextui/index.html +1 -1
- package/dist/src/web/nextui/index.txt +2 -2
- package/dist/src/web/nextui/progress/index.html +1 -1
- package/dist/src/web/nextui/progress/index.txt +3 -3
- package/dist/src/web/nextui/prompts/index.html +1 -1
- package/dist/src/web/nextui/prompts/index.txt +2 -2
- package/dist/src/web/nextui/setup/index.html +1 -1
- package/dist/src/web/nextui/setup/index.txt +3 -3
- package/dist/src/web/server.d.ts.map +1 -1
- package/dist/src/web/server.js +10 -0
- package/dist/src/web/server.js.map +1 -1
- package/package.json +2 -1
- package/dist/src/web/nextui/_next/static/chunks/670-57b040ef305d13be.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/840-854b7ee26e0beb0b.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/app/datasets/page-b348c3d000a051ae.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/app/progress/page-3920254227ac3a80.js +0 -1
- /package/dist/src/web/nextui/_next/static/{Zu8DYbL4MKrTEyvAwxFTR → GHBGwvfOmzPvY63S0GsPx}/_buildManifest.js +0 -0
- /package/dist/src/web/nextui/_next/static/{Zu8DYbL4MKrTEyvAwxFTR → GHBGwvfOmzPvY63S0GsPx}/_ssgManifest.js +0 -0
package/dist/src/database.js
CHANGED
|
@@ -50,6 +50,8 @@ exports.evalsToPrompts = (0, sqlite_core_1.sqliteTable)('evals_to_prompts', {
|
|
|
50
50
|
evalId: (0, sqlite_core_1.text)('eval_id')
|
|
51
51
|
.notNull()
|
|
52
52
|
.references(() => exports.evals.id),
|
|
53
|
+
// Drizzle doesn't support this migration for sqlite, so we remove foreign keys manually.
|
|
54
|
+
//.references(() => evals.id, { onDelete: 'cascade' }),
|
|
53
55
|
promptId: (0, sqlite_core_1.text)('prompt_id')
|
|
54
56
|
.notNull()
|
|
55
57
|
.references(() => exports.prompts.id),
|
|
@@ -70,6 +72,8 @@ exports.evalsToDatasets = (0, sqlite_core_1.sqliteTable)('evals_to_datasets', {
|
|
|
70
72
|
evalId: (0, sqlite_core_1.text)('eval_id')
|
|
71
73
|
.notNull()
|
|
72
74
|
.references(() => exports.evals.id),
|
|
75
|
+
// Drizzle doesn't support this migration for sqlite, so we remove foreign keys manually.
|
|
76
|
+
//.references(() => evals.id, { onDelete: 'cascade' }),
|
|
73
77
|
datasetId: (0, sqlite_core_1.text)('dataset_id')
|
|
74
78
|
.notNull()
|
|
75
79
|
.references(() => exports.datasets.id),
|
package/dist/src/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database.ts"],"names":[],"mappings":"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"}
|
package/dist/src/esm.js
CHANGED
|
@@ -25,6 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.importModule = exports.getDirectory = void 0;
|
|
27
27
|
const path = __importStar(require("path"));
|
|
28
|
+
const node_url_1 = require("node:url");
|
|
28
29
|
// esm-specific crap that needs to get mocked out in tests
|
|
29
30
|
//import path from 'path';
|
|
30
31
|
//import { fileURLToPath } from 'url';
|
|
@@ -39,7 +40,7 @@ function getDirectory() {
|
|
|
39
40
|
exports.getDirectory = getDirectory;
|
|
40
41
|
async function importModule(modulePath, functionName) {
|
|
41
42
|
// This is some hacky shit. It prevents typescript from transpiling `import` to `require`, which breaks mjs imports.
|
|
42
|
-
const resolvedPath = path.resolve(modulePath);
|
|
43
|
+
const resolvedPath = (0, node_url_1.pathToFileURL)(path.resolve(modulePath));
|
|
43
44
|
const importedModule = await eval(`import('${resolvedPath}')`);
|
|
44
45
|
const mod = importedModule?.default?.default || importedModule?.default || importedModule;
|
|
45
46
|
if (functionName) {
|
package/dist/src/esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esm.js","sourceRoot":"","sources":["../../src/esm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;
|
|
1
|
+
{"version":3,"file":"esm.js","sourceRoot":"","sources":["../../src/esm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,uCAAyC;AACzC,0DAA0D;AAE1D,0BAA0B;AAC1B,sCAAsC;AAEtC,SAAgB,YAAY;IAC1B;;;;KAIC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAPD,oCAOC;AAEM,KAAK,UAAU,YAAY,CAAC,UAAkB,EAAE,YAAqB;IAC1E,oHAAoH;IACpH,MAAM,YAAY,GAAG,IAAA,wBAAa,EAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,YAAY,IAAI,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,cAAc,EAAE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,OAAO,IAAI,cAAc,CAAC;IAC1F,IAAI,YAAY,EAAE;QAChB,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC;KAC1B;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AATD,oCASC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/evaluator.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,WAAW,EAGX,eAAe,EAGf,eAAe,EAEf,iBAAiB,EACjB,MAAM,
|
|
1
|
+
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/evaluator.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,WAAW,EAGX,eAAe,EAGf,eAAe,EAEf,iBAAiB,EACjB,MAAM,EAEN,SAAS,EAEV,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,GAAG,CAAC,GAC5C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAkClC;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CA4BjC;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACrC,eAAe,CAAC,EAAE,iBAAiB,EACnC,QAAQ,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,MAAM,CAAC,CAoGjB;AAyuBD,wBAAgB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,4BAGtE"}
|
package/dist/src/evaluator.js
CHANGED
|
@@ -245,11 +245,22 @@ class Evaluator {
|
|
|
245
245
|
let latencyMs = 0;
|
|
246
246
|
try {
|
|
247
247
|
const startTime = Date.now();
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
248
|
+
let response = {
|
|
249
|
+
output: '',
|
|
250
|
+
tokenUsage: {},
|
|
251
|
+
cost: 0,
|
|
252
|
+
cached: false,
|
|
253
|
+
};
|
|
254
|
+
if (!test.providerOutput) {
|
|
255
|
+
response = await provider.callApi(renderedPrompt, {
|
|
256
|
+
vars,
|
|
257
|
+
}, {
|
|
258
|
+
includeLogProbs: test.assert?.some((a) => a.type === 'perplexity'),
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
response.output = test.providerOutput;
|
|
263
|
+
}
|
|
253
264
|
const endTime = Date.now();
|
|
254
265
|
latencyMs = endTime - startTime;
|
|
255
266
|
let conversationLastInput = undefined;
|
|
@@ -482,7 +493,7 @@ class Evaluator {
|
|
|
482
493
|
}
|
|
483
494
|
}
|
|
484
495
|
// Set up eval cases
|
|
485
|
-
|
|
496
|
+
let runEvalOptions = [];
|
|
486
497
|
let rowIndex = 0;
|
|
487
498
|
for (let index = 0; index < tests.length; index++) {
|
|
488
499
|
const testCase = tests[index];
|
|
@@ -549,62 +560,20 @@ class Evaluator {
|
|
|
549
560
|
logger_1.default.info(`Setting concurrency to 1 because the ${chalk_1.default.cyan('_conversation')} variable is used.`);
|
|
550
561
|
concurrency = 1;
|
|
551
562
|
}
|
|
552
|
-
// Start the progress bars...
|
|
553
|
-
let multibar;
|
|
554
|
-
let progressbars = [];
|
|
555
|
-
if (options.showProgressBar) {
|
|
556
|
-
const cliProgress = await Promise.resolve().then(() => __importStar(require('cli-progress')));
|
|
557
|
-
multibar = new cliProgress.MultiBar({
|
|
558
|
-
format: '[{bar}] {percentage}% | ETA: {eta}s | {value}/{total} | {provider} "{prompt}" {vars}',
|
|
559
|
-
hideCursor: true,
|
|
560
|
-
}, cliProgress.Presets.shades_classic);
|
|
561
|
-
const stepsPerThread = Math.floor(runEvalOptions.length / concurrency);
|
|
562
|
-
const remainingSteps = runEvalOptions.length % concurrency;
|
|
563
|
-
for (let i = 0; i < concurrency; i++) {
|
|
564
|
-
const totalSteps = i < remainingSteps ? stepsPerThread + 1 : stepsPerThread;
|
|
565
|
-
if (totalSteps > 0) {
|
|
566
|
-
const progressbar = multibar.create(totalSteps, 0, {
|
|
567
|
-
provider: '',
|
|
568
|
-
prompt: '',
|
|
569
|
-
vars: '',
|
|
570
|
-
});
|
|
571
|
-
progressbars.push(progressbar);
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
}
|
|
575
|
-
if (options.progressCallback) {
|
|
576
|
-
options.progressCallback(0, runEvalOptions.length);
|
|
577
|
-
}
|
|
578
563
|
// Actually run the eval
|
|
579
564
|
const results = [];
|
|
580
565
|
let numComplete = 0;
|
|
581
|
-
|
|
566
|
+
const processEvalStep = async (evalStep, index) => {
|
|
567
|
+
if (typeof index !== 'number') {
|
|
568
|
+
throw new Error('Expected index to be a number');
|
|
569
|
+
}
|
|
582
570
|
const row = await this.runEval(evalStep);
|
|
583
571
|
results.push(row);
|
|
584
572
|
numComplete++;
|
|
585
|
-
if (multibar) {
|
|
586
|
-
const threadIndex = index % concurrency;
|
|
587
|
-
const progressbar = progressbars[threadIndex];
|
|
588
|
-
progressbar.increment({
|
|
589
|
-
provider: evalStep.provider.label || evalStep.provider.id(),
|
|
590
|
-
prompt: evalStep.prompt.raw.slice(0, 10).replace(/\n/g, ' '),
|
|
591
|
-
vars: Object.entries(evalStep.test.vars || {})
|
|
592
|
-
.map(([k, v]) => `${k}=${v}`)
|
|
593
|
-
.join(' ')
|
|
594
|
-
.slice(0, 10)
|
|
595
|
-
.replace(/\n/g, ' '),
|
|
596
|
-
});
|
|
597
|
-
}
|
|
598
|
-
else {
|
|
599
|
-
logger_1.default.debug(`Eval #${index + 1} complete (${numComplete} of ${runEvalOptions.length})`);
|
|
600
|
-
}
|
|
601
573
|
if (options.progressCallback) {
|
|
602
|
-
options.progressCallback(results.length, runEvalOptions.length);
|
|
574
|
+
options.progressCallback(results.length, runEvalOptions.length, index, evalStep);
|
|
603
575
|
}
|
|
604
576
|
// Bookkeeping for table
|
|
605
|
-
if (typeof index !== 'number') {
|
|
606
|
-
throw new Error('Expected index to be a number');
|
|
607
|
-
}
|
|
608
577
|
let resultText;
|
|
609
578
|
const outputTextDisplay = typeof row.response?.output === 'object'
|
|
610
579
|
? JSON.stringify(row.response.output)
|
|
@@ -658,6 +627,26 @@ class Evaluator {
|
|
|
658
627
|
for (const [key, value] of Object.entries(row.namedScores)) {
|
|
659
628
|
metrics.namedScores[key] = (metrics.namedScores[key] || 0) + value;
|
|
660
629
|
}
|
|
630
|
+
if (testSuite.derivedMetrics) {
|
|
631
|
+
const math = await Promise.resolve().then(() => __importStar(require('mathjs')));
|
|
632
|
+
for (const metric of testSuite.derivedMetrics) {
|
|
633
|
+
if (metrics.namedScores[metric.name] === undefined) {
|
|
634
|
+
metrics.namedScores[metric.name] = 0;
|
|
635
|
+
}
|
|
636
|
+
try {
|
|
637
|
+
if (typeof metric.value === 'function') {
|
|
638
|
+
metrics.namedScores[metric.name] = metric.value(metrics.namedScores, evalStep);
|
|
639
|
+
}
|
|
640
|
+
else {
|
|
641
|
+
const evaluatedValue = math.evaluate(metric.value, metrics.namedScores);
|
|
642
|
+
metrics.namedScores[metric.name] = evaluatedValue;
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
catch (error) {
|
|
646
|
+
logger_1.default.debug(`Could not evaluate derived metric '${metric.name}': ${error.message}`);
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
661
650
|
metrics.testPassCount += row.success ? 1 : 0;
|
|
662
651
|
metrics.testFailCount += row.success ? 0 : 1;
|
|
663
652
|
metrics.assertPassCount +=
|
|
@@ -671,7 +660,99 @@ class Evaluator {
|
|
|
671
660
|
metrics.tokenUsage.prompt += row.response?.tokenUsage?.prompt || 0;
|
|
672
661
|
metrics.tokenUsage.total += row.response?.tokenUsage?.total || 0;
|
|
673
662
|
metrics.cost += row.cost || 0;
|
|
674
|
-
}
|
|
663
|
+
};
|
|
664
|
+
// Set up main progress bars
|
|
665
|
+
let multibar;
|
|
666
|
+
let multiProgressBars = [];
|
|
667
|
+
this.options.progressCallback = (completed, total, index, evalStep) => {
|
|
668
|
+
if (multibar && evalStep) {
|
|
669
|
+
const threadIndex = index % concurrency;
|
|
670
|
+
const progressbar = multiProgressBars[threadIndex];
|
|
671
|
+
progressbar.increment({
|
|
672
|
+
provider: evalStep.provider.label || evalStep.provider.id(),
|
|
673
|
+
prompt: evalStep.prompt.raw.slice(0, 10).replace(/\n/g, ' '),
|
|
674
|
+
vars: Object.entries(evalStep.test.vars || {})
|
|
675
|
+
.map(([k, v]) => `${k}=${v}`)
|
|
676
|
+
.join(' ')
|
|
677
|
+
.slice(0, 10)
|
|
678
|
+
.replace(/\n/g, ' '),
|
|
679
|
+
});
|
|
680
|
+
}
|
|
681
|
+
else {
|
|
682
|
+
logger_1.default.debug(`Eval #${index + 1} complete (${numComplete} of ${runEvalOptions.length})`);
|
|
683
|
+
}
|
|
684
|
+
};
|
|
685
|
+
const createMultiBars = async (evalOptions) => {
|
|
686
|
+
const cliProgress = await Promise.resolve().then(() => __importStar(require('cli-progress')));
|
|
687
|
+
multibar = new cliProgress.MultiBar({
|
|
688
|
+
format: '[{bar}] {percentage}% | ETA: {eta}s | {value}/{total} | {provider} "{prompt}" {vars}',
|
|
689
|
+
hideCursor: true,
|
|
690
|
+
}, cliProgress.Presets.shades_classic);
|
|
691
|
+
const stepsPerThread = Math.floor(evalOptions.length / concurrency);
|
|
692
|
+
const remainingSteps = evalOptions.length % concurrency;
|
|
693
|
+
multiProgressBars = [];
|
|
694
|
+
for (let i = 0; i < concurrency; i++) {
|
|
695
|
+
const totalSteps = i < remainingSteps ? stepsPerThread + 1 : stepsPerThread;
|
|
696
|
+
if (totalSteps > 0) {
|
|
697
|
+
const progressbar = multibar.create(totalSteps, 0, {
|
|
698
|
+
provider: '',
|
|
699
|
+
prompt: '',
|
|
700
|
+
vars: '',
|
|
701
|
+
});
|
|
702
|
+
multiProgressBars.push(progressbar);
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
};
|
|
706
|
+
// Run the evals
|
|
707
|
+
if (this.options.interactiveProviders) {
|
|
708
|
+
runEvalOptions = runEvalOptions.sort((a, b) => a.provider.id().localeCompare(b.provider.id()));
|
|
709
|
+
logger_1.default.warn('Providers are running in serial with user input.');
|
|
710
|
+
// Group evalOptions by provider
|
|
711
|
+
const groupedEvalOptions = runEvalOptions.reduce((acc, evalOption) => {
|
|
712
|
+
const providerId = evalOption.provider.id();
|
|
713
|
+
if (!acc[providerId]) {
|
|
714
|
+
acc[providerId] = [];
|
|
715
|
+
}
|
|
716
|
+
acc[providerId].push(evalOption);
|
|
717
|
+
return acc;
|
|
718
|
+
}, {});
|
|
719
|
+
// Process each group
|
|
720
|
+
for (const [providerId, providerEvalOptions] of Object.entries(groupedEvalOptions)) {
|
|
721
|
+
logger_1.default.info(`Running ${providerEvalOptions.length} evaluations for provider ${providerId} with concurrency=${concurrency}...`);
|
|
722
|
+
if (this.options.showProgressBar) {
|
|
723
|
+
await createMultiBars(providerEvalOptions);
|
|
724
|
+
}
|
|
725
|
+
await async_1.default.forEachOfLimit(providerEvalOptions, concurrency, processEvalStep);
|
|
726
|
+
if (multibar) {
|
|
727
|
+
multibar.stop();
|
|
728
|
+
}
|
|
729
|
+
// Prompt to continue to the next provider unless it's the last one
|
|
730
|
+
if (Object.keys(groupedEvalOptions).indexOf(providerId) <
|
|
731
|
+
Object.keys(groupedEvalOptions).length - 1) {
|
|
732
|
+
await new Promise((resolve) => {
|
|
733
|
+
const rl = readline_1.default.createInterface({
|
|
734
|
+
input: process.stdin,
|
|
735
|
+
output: process.stdout,
|
|
736
|
+
});
|
|
737
|
+
rl.question(`\nReady to continue to the next provider? (Y/n) `, (answer) => {
|
|
738
|
+
rl.close();
|
|
739
|
+
if (answer.toLowerCase() === 'n') {
|
|
740
|
+
logger_1.default.info('Aborting evaluation.');
|
|
741
|
+
process.exit(1);
|
|
742
|
+
}
|
|
743
|
+
resolve(true);
|
|
744
|
+
});
|
|
745
|
+
});
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
else {
|
|
750
|
+
if (this.options.showProgressBar) {
|
|
751
|
+
await createMultiBars(runEvalOptions);
|
|
752
|
+
}
|
|
753
|
+
await async_1.default.forEachOfLimit(runEvalOptions, concurrency, processEvalStep);
|
|
754
|
+
}
|
|
755
|
+
// Do we have to run comparisons between row outputs?
|
|
675
756
|
const compareRowsCount = table.body.reduce((count, row) => count + (row.test.assert?.some((a) => a.type === 'select-best') ? 1 : 0), 0);
|
|
676
757
|
let progressBar;
|
|
677
758
|
if (compareRowsCount > 0 && multibar) {
|
|
@@ -729,8 +810,8 @@ class Evaluator {
|
|
|
729
810
|
if (multibar) {
|
|
730
811
|
multibar.stop();
|
|
731
812
|
}
|
|
732
|
-
if (
|
|
733
|
-
|
|
813
|
+
if (progressBar) {
|
|
814
|
+
progressBar.stop();
|
|
734
815
|
}
|
|
735
816
|
telemetry_1.default.record('eval_ran', {
|
|
736
817
|
numPrompts: prompts.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/evaluator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/evaluator.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAazD,OAAO,KAAK,EACV,eAAe,EAEf,iBAAiB,EAGlB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAazD,OAAO,KAAK,EACV,eAAe,EAEf,iBAAiB,EAGlB,MAAM,SAAS,CAAC;AAGjB,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,iBAAe,QAAQ,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,GAAE,eAAoB,8CAsFlF;AAED,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3C,wBAIE"}
|
package/dist/src/index.js
CHANGED
|
@@ -41,6 +41,7 @@ const evaluator_1 = require("./evaluator");
|
|
|
41
41
|
const providers_2 = require("./providers");
|
|
42
42
|
const testCases_1 = require("./testCases");
|
|
43
43
|
const util_1 = require("./util");
|
|
44
|
+
const prompts_1 = require("./prompts");
|
|
44
45
|
__exportStar(require("./types"), exports);
|
|
45
46
|
var table_1 = require("./table");
|
|
46
47
|
Object.defineProperty(exports, "generateTable", { enumerable: true, get: function () { return table_1.generateTable; } });
|
|
@@ -53,7 +54,7 @@ async function evaluate(testSuite, options = {}) {
|
|
|
53
54
|
tests: await (0, testCases_1.readTests)(testSuite.tests),
|
|
54
55
|
nunjucksFilters: await (0, util_1.readFilters)(testSuite.nunjucksFilters || {}),
|
|
55
56
|
// Full prompts expected (not filepaths)
|
|
56
|
-
prompts: testSuite.prompts.map((promptInput) => {
|
|
57
|
+
prompts: (await Promise.all(testSuite.prompts.map(async (promptInput) => {
|
|
57
58
|
if (typeof promptInput === 'function') {
|
|
58
59
|
return {
|
|
59
60
|
raw: promptInput.toString(),
|
|
@@ -62,10 +63,11 @@ async function evaluate(testSuite, options = {}) {
|
|
|
62
63
|
};
|
|
63
64
|
}
|
|
64
65
|
else if (typeof promptInput === 'string') {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
const prompts = await (0, prompts_1.readPrompts)(promptInput);
|
|
67
|
+
return prompts.map((p) => ({
|
|
68
|
+
raw: p.raw,
|
|
69
|
+
display: p.display,
|
|
70
|
+
}));
|
|
69
71
|
}
|
|
70
72
|
else {
|
|
71
73
|
return {
|
|
@@ -73,7 +75,7 @@ async function evaluate(testSuite, options = {}) {
|
|
|
73
75
|
display: JSON.stringify(promptInput),
|
|
74
76
|
};
|
|
75
77
|
}
|
|
76
|
-
}),
|
|
78
|
+
}))).flat(),
|
|
77
79
|
};
|
|
78
80
|
// Resolve nested providers
|
|
79
81
|
for (const test of constructedTestSuite.tests || []) {
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAuC;AAEvC,8DAAsC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/main.d.ts
CHANGED
package/dist/src/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":""}
|
package/dist/src/main.js
CHANGED
|
@@ -30,7 +30,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
30
30
|
const fs_1 = __importDefault(require("fs"));
|
|
31
31
|
const path_1 = __importDefault(require("path"));
|
|
32
32
|
const readline_1 = __importDefault(require("readline"));
|
|
33
|
-
require("dotenv/config");
|
|
34
33
|
const chalk_1 = __importDefault(require("chalk"));
|
|
35
34
|
const chokidar_1 = __importDefault(require("chokidar"));
|
|
36
35
|
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
@@ -52,6 +51,7 @@ const updates_1 = require("./updates");
|
|
|
52
51
|
const feedback_1 = require("./feedback");
|
|
53
52
|
const list_1 = require("./commands/list");
|
|
54
53
|
const show_1 = require("./commands/show");
|
|
54
|
+
const delete_1 = require("./commands/delete");
|
|
55
55
|
const table_1 = require("./table");
|
|
56
56
|
const share_1 = require("./share");
|
|
57
57
|
function createDummyFiles(directory) {
|
|
@@ -206,6 +206,7 @@ async function main() {
|
|
|
206
206
|
evaluateOptions.generateSuggestions = defaultConfig.evaluateOptions.generateSuggestions;
|
|
207
207
|
evaluateOptions.maxConcurrency = defaultConfig.evaluateOptions.maxConcurrency;
|
|
208
208
|
evaluateOptions.showProgressBar = defaultConfig.evaluateOptions.showProgressBar;
|
|
209
|
+
evaluateOptions.interactiveProviders = defaultConfig.evaluateOptions.interactiveProviders;
|
|
209
210
|
}
|
|
210
211
|
const program = new commander_1.Command();
|
|
211
212
|
program.option('--version', 'Print version', () => {
|
|
@@ -229,7 +230,9 @@ async function main() {
|
|
|
229
230
|
.option('-p, --port <number>', 'Port number', '15500')
|
|
230
231
|
.option('-y, --yes', 'Skip confirmation and auto-open the URL')
|
|
231
232
|
.option('--api-base-url <url>', 'Base URL for viewer API calls')
|
|
233
|
+
.option('--env-file <path>', 'Path to .env file')
|
|
232
234
|
.action(async (directory, cmdObj) => {
|
|
235
|
+
(0, util_1.setupEnv)(cmdObj.envFile);
|
|
233
236
|
telemetry_1.default.maybeShowNotice();
|
|
234
237
|
telemetry_1.default.record('command_used', {
|
|
235
238
|
name: 'view',
|
|
@@ -245,7 +248,9 @@ async function main() {
|
|
|
245
248
|
.command('share')
|
|
246
249
|
.description('Create a shareable URL of your most recent eval')
|
|
247
250
|
.option('-y, --yes', 'Skip confirmation')
|
|
251
|
+
.option('--env-file <path>', 'Path to .env file')
|
|
248
252
|
.action(async (cmdObj) => {
|
|
253
|
+
(0, util_1.setupEnv)(cmdObj.envFile);
|
|
249
254
|
telemetry_1.default.maybeShowNotice();
|
|
250
255
|
telemetry_1.default.record('command_used', {
|
|
251
256
|
name: 'share',
|
|
@@ -283,7 +288,9 @@ async function main() {
|
|
|
283
288
|
.description('Manage cache')
|
|
284
289
|
.command('clear')
|
|
285
290
|
.description('Clear cache')
|
|
286
|
-
.
|
|
291
|
+
.option('--env-file <path>', 'Path to .env file')
|
|
292
|
+
.action(async (cmdObj) => {
|
|
293
|
+
(0, util_1.setupEnv)(cmdObj.envFile);
|
|
287
294
|
telemetry_1.default.maybeShowNotice();
|
|
288
295
|
logger_1.default.info('Clearing cache...');
|
|
289
296
|
await (0, cache_1.clearCache)();
|
|
@@ -309,7 +316,9 @@ async function main() {
|
|
|
309
316
|
.option('--numPersonas <number>', 'Number of personas to generate', '5')
|
|
310
317
|
.option('--numTestCasesPerPersona <number>', 'Number of test cases per persona', '3')
|
|
311
318
|
.option('--no-cache', 'Do not read or write results to disk cache', false)
|
|
319
|
+
.option('--env-file <path>', 'Path to .env file')
|
|
312
320
|
.action(async (_, options) => {
|
|
321
|
+
(0, util_1.setupEnv)(options.envFile);
|
|
313
322
|
if (!options.cache) {
|
|
314
323
|
logger_1.default.info('Cache is disabled.');
|
|
315
324
|
(0, cache_1.disableCache)();
|
|
@@ -395,7 +404,10 @@ async function main() {
|
|
|
395
404
|
.option('--grader <provider>', 'Model that will grade outputs', defaultConfig?.commandLineOptions?.grader)
|
|
396
405
|
.option('--verbose', 'Show debug logs', defaultConfig?.commandLineOptions?.verbose)
|
|
397
406
|
.option('-w, --watch', 'Watch for changes in config and re-run')
|
|
407
|
+
.option('--env-file <path>', 'Path to .env file')
|
|
408
|
+
.option('--interactive-providers', 'Run providers interactively, one at a time', defaultConfig?.evaluateOptions?.interactiveProviders)
|
|
398
409
|
.action(async (cmdObj) => {
|
|
410
|
+
(0, util_1.setupEnv)(cmdObj.envFile);
|
|
399
411
|
let config = undefined;
|
|
400
412
|
let testSuite = undefined;
|
|
401
413
|
let basePath = undefined;
|
|
@@ -423,6 +435,7 @@ async function main() {
|
|
|
423
435
|
maxConcurrency: !isNaN(maxConcurrency) && maxConcurrency > 0 ? maxConcurrency : undefined,
|
|
424
436
|
repeat,
|
|
425
437
|
delay: !isNaN(delay) && delay > 0 ? delay : undefined,
|
|
438
|
+
interactiveProviders: cmdObj.interactiveProviders,
|
|
426
439
|
...evaluateOptions,
|
|
427
440
|
};
|
|
428
441
|
if (cmdObj.grader && testSuite.defaultTest) {
|
|
@@ -548,6 +561,7 @@ async function main() {
|
|
|
548
561
|
});
|
|
549
562
|
(0, list_1.listCommand)(program);
|
|
550
563
|
(0, show_1.showCommand)(program);
|
|
564
|
+
(0, delete_1.deleteCommand)(program);
|
|
551
565
|
program.parse(process.argv);
|
|
552
566
|
if (!process.argv.slice(2).length) {
|
|
553
567
|
program.outputHelp();
|