promptfoo 0.11.0 → 0.13.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/dist/package.json +87 -0
- package/dist/src/__mocks__/esm.d.ts.map +1 -0
- package/dist/src/__mocks__/esm.js.map +1 -0
- package/dist/src/assertions.d.ts.map +1 -0
- package/dist/{assertions.js → src/assertions.js} +19 -20
- package/dist/src/assertions.js.map +1 -0
- package/dist/src/cache.d.ts.map +1 -0
- package/dist/{cache.js → src/cache.js} +1 -1
- package/dist/src/cache.js.map +1 -0
- package/dist/src/esm.d.ts.map +1 -0
- package/dist/src/esm.js.map +1 -0
- package/dist/src/evaluator.d.ts.map +1 -0
- package/dist/{evaluator.js → src/evaluator.js} +28 -25
- package/dist/src/evaluator.js.map +1 -0
- package/dist/{index.d.ts → src/index.d.ts} +4 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/{index.js → src/index.js} +15 -11
- package/dist/src/index.js.map +1 -0
- package/dist/src/logger.d.ts +12 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/{logger.js → src/logger.js} +13 -5
- package/dist/src/logger.js.map +1 -0
- package/dist/src/main.d.ts.map +1 -0
- package/dist/{main.js → src/main.js} +30 -47
- package/dist/src/main.js.map +1 -0
- package/dist/{onboarding.d.ts → src/onboarding.d.ts} +1 -1
- package/dist/src/onboarding.d.ts.map +1 -0
- package/dist/{onboarding.js → src/onboarding.js} +6 -0
- package/dist/src/onboarding.js.map +1 -0
- package/dist/src/prompts.d.ts.map +1 -0
- package/dist/src/prompts.js.map +1 -0
- package/dist/src/providers/localai.d.ts.map +1 -0
- package/dist/src/providers/localai.js.map +1 -0
- package/dist/{providers → src/providers}/openai.d.ts +11 -3
- package/dist/src/providers/openai.d.ts.map +1 -0
- package/dist/{providers → src/providers}/openai.js +17 -5
- package/dist/src/providers/openai.js.map +1 -0
- package/dist/src/providers/shared.d.ts.map +1 -0
- package/dist/src/providers/shared.js.map +1 -0
- package/dist/{providers.d.ts → src/providers.d.ts} +3 -3
- package/dist/src/providers.d.ts.map +1 -0
- package/dist/{providers.js → src/providers.js} +16 -7
- package/dist/src/providers.js.map +1 -0
- package/dist/src/suggestions.d.ts.map +1 -0
- package/dist/src/suggestions.js.map +1 -0
- package/dist/src/table.d.ts +4 -0
- package/dist/src/table.d.ts.map +1 -0
- package/dist/src/table.js +48 -0
- package/dist/src/table.js.map +1 -0
- package/dist/src/telemetry.d.ts +10 -0
- package/dist/src/telemetry.d.ts.map +1 -0
- package/dist/src/telemetry.js +48 -0
- package/dist/src/telemetry.js.map +1 -0
- package/dist/{types.d.ts → src/types.d.ts} +7 -1
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/updates.d.ts +3 -0
- package/dist/src/updates.d.ts.map +1 -0
- package/dist/src/updates.js +36 -0
- package/dist/src/updates.js.map +1 -0
- package/dist/{util.d.ts → src/util.d.ts} +1 -1
- package/dist/src/util.d.ts.map +1 -0
- package/dist/{util.js → src/util.js} +15 -2
- package/dist/src/util.js.map +1 -0
- package/dist/src/web/client/assets/index-0f6d6b29.js +199 -0
- package/dist/src/web/client/assets/js-yaml-8bbf9398.js +32 -0
- package/dist/{web → src/web}/client/index.html +1 -1
- package/dist/src/web/server.d.ts.map +1 -0
- package/dist/{web → src/web}/server.js +3 -4
- package/dist/src/web/server.js.map +1 -0
- package/package.json +11 -9
- package/src/assertions.ts +18 -23
- package/src/cache.ts +1 -1
- package/src/evaluator.ts +38 -34
- package/src/index.ts +10 -10
- package/src/logger.ts +13 -5
- package/src/main.ts +38 -48
- package/src/onboarding.ts +6 -0
- package/src/providers/openai.ts +32 -6
- package/src/providers.ts +32 -9
- package/src/table.ts +41 -0
- package/src/telemetry.ts +57 -0
- package/src/types.ts +10 -1
- package/src/updates.ts +37 -0
- package/src/util.ts +34 -4
- package/src/web/client/package.json +1 -0
- package/src/web/client/src/App.tsx +36 -12
- package/src/web/client/src/ConfigModal.tsx +81 -0
- package/src/web/client/src/ResultsView.tsx +76 -3
- package/src/web/client/src/ShareModal.tsx +70 -0
- package/src/web/client/src/store.ts +6 -1
- package/src/web/client/src/types.ts +2 -0
- package/src/web/server.ts +3 -7
- package/dist/__mocks__/esm.d.ts.map +0 -1
- package/dist/__mocks__/esm.js.map +0 -1
- package/dist/assertions.d.ts.map +0 -1
- package/dist/assertions.js.map +0 -1
- package/dist/cache.d.ts.map +0 -1
- package/dist/cache.js.map +0 -1
- package/dist/esm.d.ts.map +0 -1
- package/dist/esm.js.map +0 -1
- package/dist/evaluator.d.ts.map +0 -1
- package/dist/evaluator.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/logger.d.ts +0 -11
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js.map +0 -1
- package/dist/main.d.ts.map +0 -1
- package/dist/main.js.map +0 -1
- package/dist/onboarding.d.ts.map +0 -1
- package/dist/onboarding.js.map +0 -1
- package/dist/prompts.d.ts.map +0 -1
- package/dist/prompts.js.map +0 -1
- package/dist/providers/localai.d.ts.map +0 -1
- package/dist/providers/localai.js.map +0 -1
- package/dist/providers/openai.d.ts.map +0 -1
- package/dist/providers/openai.js.map +0 -1
- package/dist/providers/shared.d.ts.map +0 -1
- package/dist/providers/shared.js.map +0 -1
- package/dist/providers.d.ts.map +0 -1
- package/dist/providers.js.map +0 -1
- package/dist/suggestions.d.ts.map +0 -1
- package/dist/suggestions.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/util.d.ts.map +0 -1
- package/dist/util.js.map +0 -1
- package/dist/web/client/assets/index-15dfcd18.js +0 -172
- package/dist/web/server.d.ts.map +0 -1
- package/dist/web/server.js.map +0 -1
- package/src/web/client/package-lock.json +0 -5729
- /package/dist/{__mocks__ → src/__mocks__}/esm.d.ts +0 -0
- /package/dist/{__mocks__ → src/__mocks__}/esm.js +0 -0
- /package/dist/{assertions.d.ts → src/assertions.d.ts} +0 -0
- /package/dist/{cache.d.ts → src/cache.d.ts} +0 -0
- /package/dist/{esm.d.ts → src/esm.d.ts} +0 -0
- /package/dist/{esm.js → src/esm.js} +0 -0
- /package/dist/{evaluator.d.ts → src/evaluator.d.ts} +0 -0
- /package/dist/{main.d.ts → src/main.d.ts} +0 -0
- /package/dist/{prompts.d.ts → src/prompts.d.ts} +0 -0
- /package/dist/{prompts.js → src/prompts.js} +0 -0
- /package/dist/{providers → src/providers}/localai.d.ts +0 -0
- /package/dist/{providers → src/providers}/localai.js +0 -0
- /package/dist/{providers → src/providers}/shared.d.ts +0 -0
- /package/dist/{providers → src/providers}/shared.js +0 -0
- /package/dist/{suggestions.d.ts → src/suggestions.d.ts} +0 -0
- /package/dist/{suggestions.js → src/suggestions.js} +0 -0
- /package/dist/{tableOutput.html → src/tableOutput.html} +0 -0
- /package/dist/{types.js → src/types.js} +0 -0
- /package/dist/{web → src/web}/client/assets/index-87905193.css +0 -0
- /package/dist/{web → src/web}/client/favicon.ico +0 -0
- /package/dist/{web → src/web}/client/logo.svg +0 -0
- /package/dist/{web → src/web}/server.d.ts +0 -0
|
@@ -29,17 +29,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
30
|
const fs_1 = require("fs");
|
|
31
31
|
const path_1 = require("path");
|
|
32
|
-
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
33
32
|
const chalk_1 = __importDefault(require("chalk"));
|
|
34
33
|
const commander_1 = require("commander");
|
|
34
|
+
const telemetry_1 = __importDefault(require("./telemetry"));
|
|
35
35
|
const logger_1 = __importStar(require("./logger"));
|
|
36
36
|
const providers_1 = require("./providers");
|
|
37
37
|
const evaluator_1 = require("./evaluator");
|
|
38
38
|
const util_1 = require("./util");
|
|
39
|
+
const onboarding_1 = require("./onboarding");
|
|
40
|
+
const cache_1 = require("./cache");
|
|
39
41
|
const esm_1 = require("./esm");
|
|
40
42
|
const server_1 = require("./web/server");
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
+
const updates_1 = require("./updates");
|
|
44
|
+
const table_1 = require("./table");
|
|
43
45
|
function createDummyFiles(directory) {
|
|
44
46
|
if (directory) {
|
|
45
47
|
// Make the directory if it doesn't exist
|
|
@@ -68,6 +70,7 @@ function createDummyFiles(directory) {
|
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
72
|
async function main() {
|
|
73
|
+
await (0, updates_1.checkForUpdates)();
|
|
71
74
|
const pwd = process.cwd();
|
|
72
75
|
const potentialPaths = [
|
|
73
76
|
(0, path_1.join)(pwd, 'promptfooconfig.js'),
|
|
@@ -97,21 +100,29 @@ async function main() {
|
|
|
97
100
|
program
|
|
98
101
|
.command('init [directory]')
|
|
99
102
|
.description('Initialize project with dummy files')
|
|
100
|
-
.action((directory) => {
|
|
103
|
+
.action(async (directory) => {
|
|
101
104
|
createDummyFiles(directory);
|
|
105
|
+
telemetry_1.default.record('command_used', {
|
|
106
|
+
name: 'init',
|
|
107
|
+
});
|
|
108
|
+
await telemetry_1.default.send();
|
|
102
109
|
});
|
|
103
110
|
program
|
|
104
111
|
.command('view')
|
|
105
112
|
.description('Start browser ui')
|
|
106
113
|
.option('-p, --port <number>', 'Port number', '15500')
|
|
107
|
-
.action((cmdObj) => {
|
|
114
|
+
.action(async (cmdObj) => {
|
|
115
|
+
telemetry_1.default.record('command_used', {
|
|
116
|
+
name: 'view',
|
|
117
|
+
});
|
|
118
|
+
await telemetry_1.default.send();
|
|
108
119
|
(0, server_1.init)(cmdObj.port);
|
|
109
120
|
});
|
|
110
121
|
program
|
|
111
122
|
.command('eval')
|
|
112
123
|
.description('Evaluate prompts')
|
|
113
124
|
.requiredOption('-p, --prompts <paths...>', 'Paths to prompt files (.txt)', config.prompts)
|
|
114
|
-
.
|
|
125
|
+
.option('-r, --providers <name or path...>', 'One of: openai:chat, openai:completion, openai:<model name>, or path to custom API caller module')
|
|
115
126
|
.option('-c, --config <path>', 'Path to configuration file. Automatically loads promptfooconfig.js/json/yaml')
|
|
116
127
|
.option(
|
|
117
128
|
// TODO(ian): Remove `vars` for v1
|
|
@@ -186,7 +197,7 @@ async function main() {
|
|
|
186
197
|
defaultTest,
|
|
187
198
|
};
|
|
188
199
|
const options = {
|
|
189
|
-
showProgressBar:
|
|
200
|
+
showProgressBar: (0, logger_1.getLogLevel)() !== 'debug',
|
|
190
201
|
maxConcurrency: !isNaN(maxConcurrency) && maxConcurrency > 0 ? maxConcurrency : undefined,
|
|
191
202
|
...evaluateOptions,
|
|
192
203
|
};
|
|
@@ -202,61 +213,33 @@ async function main() {
|
|
|
202
213
|
logger_1.default.info(chalk_1.default.yellow(`Writing output to ${cmdObj.output}`));
|
|
203
214
|
(0, util_1.writeOutput)(cmdObj.output, summary);
|
|
204
215
|
}
|
|
205
|
-
else {
|
|
216
|
+
else if ((0, logger_1.getLogLevel)() !== 'debug') {
|
|
206
217
|
// Output table by default
|
|
207
|
-
const
|
|
208
|
-
const head = summary.table.head;
|
|
209
|
-
const headLength = head.prompts.length + head.vars.length;
|
|
210
|
-
const table = new cli_table3_1.default({
|
|
211
|
-
head: [...head.prompts, ...head.vars],
|
|
212
|
-
colWidths: Array(headLength).fill(Math.floor(maxWidth / headLength)),
|
|
213
|
-
wordWrap: true,
|
|
214
|
-
wrapOnWordBoundary: false,
|
|
215
|
-
style: {
|
|
216
|
-
head: ['blue', 'bold'],
|
|
217
|
-
},
|
|
218
|
-
});
|
|
219
|
-
// Skip first row (header) and add the rest. Color PASS/FAIL
|
|
220
|
-
for (const row of summary.table.body.slice(0, 25)) {
|
|
221
|
-
table.push([
|
|
222
|
-
...row.vars,
|
|
223
|
-
...row.outputs.map((col) => {
|
|
224
|
-
const tableCellMaxLength = parseInt(cmdObj.tableCellMaxLength || '', 10);
|
|
225
|
-
if (!isNaN(tableCellMaxLength) && col.length > tableCellMaxLength) {
|
|
226
|
-
col = col.slice(0, tableCellMaxLength) + '...';
|
|
227
|
-
}
|
|
228
|
-
if (col.startsWith('[PASS]')) {
|
|
229
|
-
// color '[PASS]' green
|
|
230
|
-
return chalk_1.default.green.bold(col.slice(0, 6)) + col.slice(6);
|
|
231
|
-
}
|
|
232
|
-
else if (col.startsWith('[FAIL]')) {
|
|
233
|
-
// color everything red up until '---'
|
|
234
|
-
return col
|
|
235
|
-
.split('---')
|
|
236
|
-
.map((c, idx) => (idx === 0 ? chalk_1.default.red.bold(c) : c))
|
|
237
|
-
.join('---');
|
|
238
|
-
}
|
|
239
|
-
return col;
|
|
240
|
-
}),
|
|
241
|
-
]);
|
|
242
|
-
}
|
|
218
|
+
const table = (0, table_1.generateTable)(summary, parseInt(cmdObj.tableCellMaxLength || '', 10));
|
|
243
219
|
logger_1.default.info('\n' + table.toString());
|
|
244
220
|
if (summary.table.body.length > 25) {
|
|
245
221
|
const rowsLeft = summary.table.body.length - 25;
|
|
246
222
|
logger_1.default.info(`... ${rowsLeft} more row${rowsLeft === 1 ? '' : 's'} not shown ...\n`);
|
|
247
223
|
}
|
|
248
224
|
}
|
|
225
|
+
const border = '='.repeat(process.stdout.columns - 10);
|
|
226
|
+
logger_1.default.info(border);
|
|
249
227
|
if (cmdObj.view || !cmdObj.write) {
|
|
250
|
-
logger_1.default.info('Evaluation complete
|
|
228
|
+
logger_1.default.info(`${chalk_1.default.green('✔')} Evaluation complete`);
|
|
251
229
|
}
|
|
252
230
|
else {
|
|
253
|
-
(0, util_1.writeLatestResults)(summary);
|
|
254
|
-
logger_1.default.info(
|
|
231
|
+
(0, util_1.writeLatestResults)(summary, config);
|
|
232
|
+
logger_1.default.info(`${chalk_1.default.green('✔')} Evaluation complete. To use web viewer, run ${chalk_1.default.green('promptfoo view')}`);
|
|
255
233
|
}
|
|
234
|
+
logger_1.default.info(border);
|
|
256
235
|
logger_1.default.info(chalk_1.default.green.bold(`Successes: ${summary.stats.successes}`));
|
|
257
236
|
logger_1.default.info(chalk_1.default.red.bold(`Failures: ${summary.stats.failures}`));
|
|
258
237
|
logger_1.default.info(`Token usage: Total ${summary.stats.tokenUsage.total}, Prompt ${summary.stats.tokenUsage.prompt}, Completion ${summary.stats.tokenUsage.completion}, Cached ${summary.stats.tokenUsage.cached}`);
|
|
259
238
|
logger_1.default.info('Done.');
|
|
239
|
+
telemetry_1.default.record('command_used', {
|
|
240
|
+
name: 'eval',
|
|
241
|
+
});
|
|
242
|
+
await telemetry_1.default.send();
|
|
260
243
|
if (cmdObj.view) {
|
|
261
244
|
(0, server_1.init)(parseInt(cmdObj.view, 10) || 15500);
|
|
262
245
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const DEFAULT_PROMPTS = "Your first prompt goes here\n---\nNext prompt goes here. You can substitute variables like this: {{var1}} {{var2}} {{var3}}\n---\nThis is the next prompt.\n\nThese prompts are nunjucks templates, so you can use logic like this:\n{% if var1 %}\n {{ var1 }}\n{% endif %}\n---\nIf you prefer, you can break prompts into multiple files (make sure to edit promptfooconfig.yaml accordingly)\n";
|
|
1
|
+
export declare const DEFAULT_PROMPTS = "Your first prompt goes here\n---\nNext prompt goes here. You can substitute variables like this: {{var1}} {{var2}} {{var3}}\n---\nThis is the next prompt.\n\nThese prompts are nunjucks templates, so you can use logic like this:\n{% if var1 %}\n {{ var1 }}\n{% endif %}\n---\n[\n {\"role\": \"system\", \"content\": \"Use JSON too for more complex payloads\"},\n {\"role\": \"user\", \"content\": \"Such as multi-shot prompts\"}\n {\"role\": \"user\", \"content\": \"Variable substitution still works: {{ var3 }}\"}\n]\n---\nIf you prefer, you can break prompts into multiple files (make sure to edit promptfooconfig.yaml accordingly)\n";
|
|
2
2
|
export declare const DEFAULT_YAML_CONFIG = "# This configuration runs each prompt through a series of example inputs and checks if they meet requirements.\n\nprompts: [prompts.txt]\nproviders: [openai:gpt-3.5-turbo]\ntests:\n - description: First test case - automatic review\n vars:\n var1: first variable's value\n var2: another value\n var3: some other value\n assert:\n - type: equality\n value: expected LLM output goes here\n - type: function\n value: output.includes('some text')\n\n - description: Second test case - manual review\n # Test cases don't need assertions if you prefer to manually review the output\n vars:\n var1: new value\n var2: another value\n var3: third value\n\n - description: Third test case - other types of automatic review\n vars:\n var1: yet another value\n var2: and another\n var3: dear llm, please output your response in json format\n assert:\n - type: contains-json\n - type: similarity\n value: ensures that output is semantically similar to this text\n - type: llm-rubric\n value: ensure that output contains a reference to X\n";
|
|
3
3
|
export declare const DEFAULT_README = "To get started, set your OPENAI_API_KEY environment variable.\n\nNext, change a few of the prompts in prompts.txt and edit promptfooconfig.yaml.\n\nThen run:\n```\npromptfoo eval\n```\n\nAfterwards, you can view the results by running `promptfoo view`\n";
|
|
4
4
|
//# sourceMappingURL=onboarding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/onboarding.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,ooBAkB3B,CAAC;AAEF,eAAO,MAAM,mBAAmB,6nCAkC/B,CAAC;AAEF,eAAO,MAAM,cAAc,kQAU1B,CAAC"}
|
|
@@ -12,6 +12,12 @@ These prompts are nunjucks templates, so you can use logic like this:
|
|
|
12
12
|
{{ var1 }}
|
|
13
13
|
{% endif %}
|
|
14
14
|
---
|
|
15
|
+
[
|
|
16
|
+
{"role": "system", "content": "Use JSON too for more complex payloads"},
|
|
17
|
+
{"role": "user", "content": "Such as multi-shot prompts"}
|
|
18
|
+
{"role": "user", "content": "Variable substitution still works: {{ var3 }}"}
|
|
19
|
+
]
|
|
20
|
+
---
|
|
15
21
|
If you prefer, you can break prompts into multiple files (make sure to edit promptfooconfig.yaml accordingly)
|
|
16
22
|
`;
|
|
17
23
|
exports.DEFAULT_YAML_CONFIG = `# This configuration runs each prompt through a series of example inputs and checks if they meet requirements.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/onboarding.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG;;;;;;;;;;;;;;;;;;CAkB9B,CAAC;AAEW,QAAA,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkClC,CAAC;AAEW,QAAA,cAAc,GAAG;;;;;;;;;;CAU7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/prompts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,QAmBjC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;CAO1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/prompts.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC;IACnD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;;;;;;;;;;gEAUmD;KAC7D;IACD;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,8CAA8C;KACxD;CACF,CAAC,CAAC;AAEU,QAAA,8BAA8B,GAAG;IAC5C,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;;;;+FAIoF;CAC9F,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localai.d.ts","sourceRoot":"","sources":["../../../src/providers/localai.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjE,cAAM,sBAAuB,YAAW,WAAW;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;gBAEP,SAAS,EAAE,MAAM;IAK7B,EAAE,IAAI,MAAM;IAIZ,QAAQ,IAAI,MAAM;IAKZ,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAGzD;AAED,qBAAa,mBAAoB,SAAQ,sBAAsB;IACvD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAsCzD;AAED,qBAAa,yBAA0B,SAAQ,sBAAsB;IAC7D,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAsCzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localai.js","sourceRoot":"","sources":["../../../src/providers/localai.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import type { ApiProvider, ProviderEmbeddingResponse, ProviderResponse } from '../types.js';
|
|
2
2
|
interface OpenAiCompletionOptions {
|
|
3
|
-
temperature
|
|
3
|
+
temperature?: number;
|
|
4
|
+
functions?: {
|
|
5
|
+
name: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
parameters: any;
|
|
8
|
+
}[];
|
|
9
|
+
function_call?: 'none' | 'auto';
|
|
4
10
|
}
|
|
5
11
|
declare class OpenAiGenericProvider implements ApiProvider {
|
|
6
12
|
modelName: string;
|
|
@@ -16,12 +22,14 @@ export declare class OpenAiEmbeddingProvider extends OpenAiGenericProvider {
|
|
|
16
22
|
}
|
|
17
23
|
export declare class OpenAiCompletionProvider extends OpenAiGenericProvider {
|
|
18
24
|
static OPENAI_COMPLETION_MODELS: string[];
|
|
19
|
-
|
|
25
|
+
options: OpenAiCompletionOptions;
|
|
26
|
+
constructor(modelName: string, apiKey?: string, context?: OpenAiCompletionOptions);
|
|
20
27
|
callApi(prompt: string, options?: OpenAiCompletionOptions): Promise<ProviderResponse>;
|
|
21
28
|
}
|
|
22
29
|
export declare class OpenAiChatCompletionProvider extends OpenAiGenericProvider {
|
|
23
30
|
static OPENAI_CHAT_MODELS: string[];
|
|
24
|
-
|
|
31
|
+
options: OpenAiCompletionOptions;
|
|
32
|
+
constructor(modelName: string, apiKey?: string, context?: OpenAiCompletionOptions);
|
|
25
33
|
callApi(prompt: string, options?: OpenAiCompletionOptions): Promise<ProviderResponse>;
|
|
26
34
|
}
|
|
27
35
|
export declare const DefaultEmbeddingProvider: OpenAiEmbeddingProvider;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/providers/openai.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI5F,UAAU,uBAAuB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,GAAG,CAAC;KACjB,EAAE,CAAC;IACJ,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,cAAM,qBAAsB,YAAW,WAAW;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;gBAEJ,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQ9C,EAAE,IAAI,MAAM;IAIZ,QAAQ,IAAI,MAAM;IAKZ,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAG5F;AAED,qBAAa,uBAAwB,SAAQ,qBAAqB;IAC1D,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;CA+DzE;AAED,qBAAa,wBAAyB,SAAQ,qBAAqB;IACjE,MAAM,CAAC,wBAAwB,WAM7B;IAEF,OAAO,EAAE,uBAAuB,CAAC;gBAErB,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB;IAQ3E,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAgE5F;AAED,qBAAa,4BAA6B,SAAQ,qBAAqB;IACrE,MAAM,CAAC,kBAAkB,WASvB;IAEF,OAAO,EAAE,uBAAuB,CAAC;gBAErB,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB;IAS3E,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAuE5F;AAED,eAAO,MAAM,wBAAwB,yBAAwD,CAAC;AAC9F,eAAO,MAAM,sBAAsB,8BAA4C,CAAC;AAChF,eAAO,MAAM,0BAA0B,8BAA4C,CAAC"}
|
|
@@ -87,11 +87,12 @@ class OpenAiEmbeddingProvider extends OpenAiGenericProvider {
|
|
|
87
87
|
}
|
|
88
88
|
exports.OpenAiEmbeddingProvider = OpenAiEmbeddingProvider;
|
|
89
89
|
class OpenAiCompletionProvider extends OpenAiGenericProvider {
|
|
90
|
-
constructor(modelName, apiKey) {
|
|
90
|
+
constructor(modelName, apiKey, context) {
|
|
91
91
|
if (!OpenAiCompletionProvider.OPENAI_COMPLETION_MODELS.includes(modelName)) {
|
|
92
92
|
logger_1.default.warn(`Using unknown OpenAI completion model: ${modelName}`);
|
|
93
93
|
}
|
|
94
94
|
super(modelName, apiKey);
|
|
95
|
+
this.options = context || {};
|
|
95
96
|
}
|
|
96
97
|
async callApi(prompt, options) {
|
|
97
98
|
if (!this.apiKey) {
|
|
@@ -110,7 +111,9 @@ class OpenAiCompletionProvider extends OpenAiGenericProvider {
|
|
|
110
111
|
model: this.modelName,
|
|
111
112
|
prompt,
|
|
112
113
|
max_tokens: parseInt(process.env.OPENAI_MAX_TOKENS || '1024'),
|
|
113
|
-
temperature: options?.temperature ??
|
|
114
|
+
temperature: options?.temperature ??
|
|
115
|
+
this.options.temperature ??
|
|
116
|
+
parseFloat(process.env.OPENAI_TEMPERATURE || '0'),
|
|
114
117
|
stop,
|
|
115
118
|
};
|
|
116
119
|
logger_1.default.debug(`Calling OpenAI API: ${JSON.stringify(body)}`);
|
|
@@ -159,11 +162,12 @@ OpenAiCompletionProvider.OPENAI_COMPLETION_MODELS = [
|
|
|
159
162
|
];
|
|
160
163
|
exports.OpenAiCompletionProvider = OpenAiCompletionProvider;
|
|
161
164
|
class OpenAiChatCompletionProvider extends OpenAiGenericProvider {
|
|
162
|
-
constructor(modelName, apiKey) {
|
|
165
|
+
constructor(modelName, apiKey, context) {
|
|
163
166
|
if (!OpenAiChatCompletionProvider.OPENAI_CHAT_MODELS.includes(modelName)) {
|
|
164
167
|
logger_1.default.warn(`Using unknown OpenAI chat model: ${modelName}`);
|
|
165
168
|
}
|
|
166
169
|
super(modelName, apiKey);
|
|
170
|
+
this.options = context || {};
|
|
167
171
|
}
|
|
168
172
|
// TODO(ian): support passing in `messages` directly
|
|
169
173
|
async callApi(prompt, options) {
|
|
@@ -183,7 +187,11 @@ class OpenAiChatCompletionProvider extends OpenAiGenericProvider {
|
|
|
183
187
|
model: this.modelName,
|
|
184
188
|
messages: messages,
|
|
185
189
|
max_tokens: parseInt(process.env.OPENAI_MAX_TOKENS || '1024'),
|
|
186
|
-
temperature: options?.temperature ??
|
|
190
|
+
temperature: options?.temperature ??
|
|
191
|
+
this.options.temperature ??
|
|
192
|
+
parseFloat(process.env.OPENAI_TEMPERATURE || '0'),
|
|
193
|
+
functions: options?.functions || this.options.functions || undefined,
|
|
194
|
+
function_call: options?.function_call || this.options.function_call || undefined,
|
|
187
195
|
};
|
|
188
196
|
logger_1.default.debug(`Calling OpenAI API: ${JSON.stringify(body)}`);
|
|
189
197
|
let data, cached = false;
|
|
@@ -204,8 +212,10 @@ class OpenAiChatCompletionProvider extends OpenAiGenericProvider {
|
|
|
204
212
|
}
|
|
205
213
|
logger_1.default.debug(`\tOpenAI API response: ${JSON.stringify(data)}`);
|
|
206
214
|
try {
|
|
215
|
+
const message = data.choices[0].message;
|
|
216
|
+
const output = message.content === null ? JSON.stringify(message.function_call) : message.content;
|
|
207
217
|
return {
|
|
208
|
-
output
|
|
218
|
+
output,
|
|
209
219
|
tokenUsage: cached
|
|
210
220
|
? { cached: data.usage.total_tokens }
|
|
211
221
|
: {
|
|
@@ -225,10 +235,12 @@ class OpenAiChatCompletionProvider extends OpenAiGenericProvider {
|
|
|
225
235
|
OpenAiChatCompletionProvider.OPENAI_CHAT_MODELS = [
|
|
226
236
|
'gpt-4',
|
|
227
237
|
'gpt-4-0314',
|
|
238
|
+
'gpt-4-0613',
|
|
228
239
|
'gpt-4-32k',
|
|
229
240
|
'gpt-4-32k-0314',
|
|
230
241
|
'gpt-3.5-turbo',
|
|
231
242
|
'gpt-3.5-turbo-0301',
|
|
243
|
+
'gpt-3.5-turbo-0613',
|
|
232
244
|
];
|
|
233
245
|
exports.OpenAiChatCompletionProvider = OpenAiChatCompletionProvider;
|
|
234
246
|
exports.DefaultEmbeddingProvider = new OpenAiEmbeddingProvider('text-embedding-ada-002');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/providers/shared.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,QAEpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/providers/shared.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB;IAC9D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,CAAC;IAC9C,CAAC,CAAC,MAAO,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ApiProvider } from './types';
|
|
1
|
+
import { ApiProvider, ProviderConfig, ProviderId, RawProviderConfig } from './types';
|
|
2
2
|
import { OpenAiCompletionProvider, OpenAiChatCompletionProvider } from './providers/openai';
|
|
3
3
|
import { LocalAiCompletionProvider, LocalAiChatProvider } from './providers/localai';
|
|
4
|
-
export declare function loadApiProviders(providerPaths:
|
|
5
|
-
export declare function loadApiProvider(providerPath: string): Promise<ApiProvider>;
|
|
4
|
+
export declare function loadApiProviders(providerPaths: ProviderId | ProviderId[] | RawProviderConfig[]): Promise<ApiProvider[]>;
|
|
5
|
+
export declare function loadApiProvider(providerPath: string, context?: ProviderConfig | undefined): Promise<ApiProvider>;
|
|
6
6
|
declare const _default: {
|
|
7
7
|
OpenAiCompletionProvider: typeof OpenAiCompletionProvider;
|
|
8
8
|
OpenAiChatCompletionProvider: typeof OpenAiChatCompletionProvider;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAErF,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAErF,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,iBAAiB,EAAE,GAC7D,OAAO,CAAC,WAAW,EAAE,CAAC,CAiBxB;AAED,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,cAAc,GAAG,SAAqB,GAC9C,OAAO,CAAC,WAAW,CAAC,CA+CtB;;;;;;;;AAED,wBAME"}
|
|
@@ -35,28 +35,37 @@ async function loadApiProviders(providerPaths) {
|
|
|
35
35
|
return [await loadApiProvider(providerPaths)];
|
|
36
36
|
}
|
|
37
37
|
else if (Array.isArray(providerPaths)) {
|
|
38
|
-
return Promise.all(providerPaths.map((provider) =>
|
|
38
|
+
return Promise.all(providerPaths.map((provider) => {
|
|
39
|
+
if (typeof provider === 'string') {
|
|
40
|
+
return loadApiProvider(provider);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
const id = Object.keys(provider)[0];
|
|
44
|
+
const context = { ...provider[id], id };
|
|
45
|
+
return loadApiProvider(id, context);
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
39
48
|
}
|
|
40
49
|
throw new Error('Invalid providers list');
|
|
41
50
|
}
|
|
42
51
|
exports.loadApiProviders = loadApiProviders;
|
|
43
|
-
async function loadApiProvider(providerPath) {
|
|
52
|
+
async function loadApiProvider(providerPath, context = undefined) {
|
|
44
53
|
if (providerPath?.startsWith('openai:')) {
|
|
45
54
|
// Load OpenAI module
|
|
46
55
|
const options = providerPath.split(':');
|
|
47
56
|
const modelType = options[1];
|
|
48
57
|
const modelName = options[2];
|
|
49
58
|
if (modelType === 'chat') {
|
|
50
|
-
return new openai_1.OpenAiChatCompletionProvider(modelName || 'gpt-3.5-turbo');
|
|
59
|
+
return new openai_1.OpenAiChatCompletionProvider(modelName || 'gpt-3.5-turbo', undefined, context?.config);
|
|
51
60
|
}
|
|
52
61
|
else if (modelType === 'completion') {
|
|
53
|
-
return new openai_1.OpenAiCompletionProvider(modelName || 'text-davinci-003');
|
|
62
|
+
return new openai_1.OpenAiCompletionProvider(modelName || 'text-davinci-003', undefined, context?.config);
|
|
54
63
|
}
|
|
55
64
|
else if (openai_1.OpenAiChatCompletionProvider.OPENAI_CHAT_MODELS.includes(modelType)) {
|
|
56
|
-
return new openai_1.OpenAiChatCompletionProvider(modelType);
|
|
65
|
+
return new openai_1.OpenAiChatCompletionProvider(modelType, undefined, context?.config);
|
|
57
66
|
}
|
|
58
67
|
else if (openai_1.OpenAiCompletionProvider.OPENAI_COMPLETION_MODELS.includes(modelType)) {
|
|
59
|
-
return new openai_1.OpenAiCompletionProvider(modelType);
|
|
68
|
+
return new openai_1.OpenAiCompletionProvider(modelType, undefined, context?.config);
|
|
60
69
|
}
|
|
61
70
|
else {
|
|
62
71
|
throw new Error(`Unknown OpenAI model type: ${modelType}. Use one of the following providers: openai:chat:<model name>, openai:completion:<model name>`);
|
|
@@ -78,7 +87,7 @@ async function loadApiProvider(providerPath) {
|
|
|
78
87
|
}
|
|
79
88
|
// Load custom module
|
|
80
89
|
const CustomApiProvider = (await Promise.resolve(`${node_path_1.default.join(process.cwd(), providerPath)}`).then(s => __importStar(require(s)))).default;
|
|
81
|
-
return new CustomApiProvider();
|
|
90
|
+
return new CustomApiProvider(context);
|
|
82
91
|
}
|
|
83
92
|
exports.loadApiProvider = loadApiProvider;
|
|
84
93
|
exports.default = {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggestions.d.ts","sourceRoot":"","sources":["../../src/suggestions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C,UAAU,qBAAqB;IAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAiDjG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggestions.js","sourceRoot":"","sources":["../../src/suggestions.ts"],"names":[],"mappings":";;;AAAA,uCAA2D;AAC3D,+CAAgE;AAIhE,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAQzB,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,GAAW;IAC/D,MAAM,QAAQ,GAAG,mCAA0B,CAAC;IAE5C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CACjC,IAAI,CAAC,SAAS,CAAC;QACb,wCAA8B;QAC9B;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,8CAA8C;SACxD;QACD;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,MAAM;SAChB;KACF,CAAC,EACF;QACE,WAAW,EAAE,mBAAmB;KACjC,CACF,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAC9B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,eAAe;YACpC,UAAU,EAAE;gBACV,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC;gBAClC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;gBACpC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,CAAC;aAC7C;SACF,CAAC;KACH;IAED,IAAI;QACF,OAAO;YACL,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;YACtB,UAAU,EAAE;gBACV,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC;gBAClC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;gBACpC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,CAAC;aAC7C;SACF,CAAC;KACH;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO;YACL,KAAK,EAAE,6BAA6B,IAAI,CAAC,MAAM,EAAE;YACjD,UAAU,EAAE;gBACV,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC;gBAClC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;gBACpC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,CAAC;aAC7C;SACF,CAAC;KACH;AACH,CAAC;AAjDD,0CAiDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,kBAAkB,SAAM,EAAE,OAAO,SAAK,eAoC7F"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateTable = void 0;
|
|
7
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
function generateTable(summary, tableCellMaxLength = 250, maxRows = 25) {
|
|
10
|
+
const maxWidth = process.stdout.columns ? process.stdout.columns - 10 : 120;
|
|
11
|
+
const head = summary.table.head;
|
|
12
|
+
const headLength = head.prompts.length + head.vars.length;
|
|
13
|
+
const table = new cli_table3_1.default({
|
|
14
|
+
head: [...head.prompts, ...head.vars],
|
|
15
|
+
colWidths: Array(headLength).fill(Math.floor(maxWidth / headLength)),
|
|
16
|
+
wordWrap: true,
|
|
17
|
+
wrapOnWordBoundary: false,
|
|
18
|
+
style: {
|
|
19
|
+
head: ['blue', 'bold'],
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
// Skip first row (header) and add the rest. Color PASS/FAIL
|
|
23
|
+
for (const row of summary.table.body.slice(0, maxRows)) {
|
|
24
|
+
table.push([
|
|
25
|
+
...row.vars,
|
|
26
|
+
...row.outputs.map((col) => {
|
|
27
|
+
if (col.length > tableCellMaxLength) {
|
|
28
|
+
col = col.slice(0, tableCellMaxLength) + '...';
|
|
29
|
+
}
|
|
30
|
+
if (col.startsWith('[PASS]')) {
|
|
31
|
+
// color '[PASS]' green
|
|
32
|
+
return chalk_1.default.green.bold(col.slice(0, 6)) + col.slice(6);
|
|
33
|
+
}
|
|
34
|
+
else if (col.startsWith('[FAIL]')) {
|
|
35
|
+
// color everything red up until '---'
|
|
36
|
+
return col
|
|
37
|
+
.split('---')
|
|
38
|
+
.map((c, idx) => (idx === 0 ? chalk_1.default.red.bold(c) : c))
|
|
39
|
+
.join('---');
|
|
40
|
+
}
|
|
41
|
+
return col;
|
|
42
|
+
}),
|
|
43
|
+
]);
|
|
44
|
+
}
|
|
45
|
+
return table;
|
|
46
|
+
}
|
|
47
|
+
exports.generateTable = generateTable;
|
|
48
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/table.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA+B;AAC/B,kDAA0B;AAG1B,SAAgB,aAAa,CAAC,OAAwB,EAAE,kBAAkB,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE;IAC5F,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1D,MAAM,KAAK,GAAG,IAAI,oBAAK,CAAC;QACtB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;QACpE,QAAQ,EAAE,IAAI;QACd,kBAAkB,EAAE,KAAK;QACzB,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;SACvB;KACF,CAAC,CAAC;IACH,4DAA4D;IAC5D,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;QACtD,KAAK,CAAC,IAAI,CAAC;YACT,GAAG,GAAG,CAAC,IAAI;YACX,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzB,IAAI,GAAG,CAAC,MAAM,GAAG,kBAAkB,EAAE;oBACnC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC;iBAChD;gBACD,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;oBAC5B,uBAAuB;oBACvB,OAAO,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACzD;qBAAM,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;oBACnC,sCAAsC;oBACtC,OAAO,GAAG;yBACP,KAAK,CAAC,KAAK,CAAC;yBACZ,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yBACpD,IAAI,CAAC,KAAK,CAAC,CAAC;iBAChB;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC;SACH,CAAC,CAAC;KACJ;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AApCD,sCAoCC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type TelemetryEventTypes = 'eval_ran' | 'assertion_used' | 'command_used';
|
|
2
|
+
export declare class Telemetry {
|
|
3
|
+
private events;
|
|
4
|
+
get disabled(): boolean;
|
|
5
|
+
record(eventName: TelemetryEventTypes, properties: Record<string, string | number>): void;
|
|
6
|
+
send(): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
declare const telemetry: Telemetry;
|
|
9
|
+
export default telemetry;
|
|
10
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"AASA,KAAK,mBAAmB,GAAG,UAAU,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAM1E,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAwB;IAEtC,IAAI,QAAQ,YAEX;IAED,MAAM,CAAC,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI;IAUnF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAqB5B;AAED,QAAA,MAAM,SAAS,WAAkB,CAAC;AAClC,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Telemetry = void 0;
|
|
7
|
+
const package_json_1 = __importDefault(require("../package.json"));
|
|
8
|
+
const util_1 = require("./util");
|
|
9
|
+
const TELEMETRY_ENDPOINT = 'https://api.promptfoo.dev/telemetry';
|
|
10
|
+
const TELEMETRY_TIMEOUT_MS = 1000;
|
|
11
|
+
class Telemetry {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.events = [];
|
|
14
|
+
}
|
|
15
|
+
get disabled() {
|
|
16
|
+
return process.env.PROMPTFOO_DISABLE_TELEMETRY === '1';
|
|
17
|
+
}
|
|
18
|
+
record(eventName, properties) {
|
|
19
|
+
if (!this.disabled) {
|
|
20
|
+
this.events.push({
|
|
21
|
+
event: eventName,
|
|
22
|
+
packageVersion: package_json_1.default.version,
|
|
23
|
+
properties,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async send() {
|
|
28
|
+
if (!this.disabled && this.events.length > 0) {
|
|
29
|
+
try {
|
|
30
|
+
const response = await (0, util_1.fetchWithTimeout)(TELEMETRY_ENDPOINT, {
|
|
31
|
+
method: 'POST',
|
|
32
|
+
headers: {
|
|
33
|
+
'Content-Type': 'application/json',
|
|
34
|
+
},
|
|
35
|
+
body: JSON.stringify(this.events),
|
|
36
|
+
}, TELEMETRY_TIMEOUT_MS);
|
|
37
|
+
if (response.ok) {
|
|
38
|
+
this.events = [];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch (err) { }
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.Telemetry = Telemetry;
|
|
46
|
+
const telemetry = new Telemetry();
|
|
47
|
+
exports.default = telemetry;
|
|
48
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":";;;;;;AAAA,mEAA0C;AAC1C,iCAA0C;AAU1C,MAAM,kBAAkB,GAAG,qCAAqC,CAAC;AAEjE,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC,MAAa,SAAS;IAAtB;QACU,WAAM,GAAqB,EAAE,CAAC;IAqCxC,CAAC;IAnCC,IAAI,QAAQ;QACV,OAAO,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,GAAG,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,SAA8B,EAAE,UAA2C;QAChF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,SAAS;gBAChB,cAAc,EAAE,sBAAW,CAAC,OAAO;gBACnC,UAAU;aACX,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5C,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAgB,EACrC,kBAAkB,EAClB;oBACE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;iBAClC,EACD,oBAAoB,CACrB,CAAC;gBAEF,IAAI,QAAQ,CAAC,EAAE,EAAE;oBACf,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;iBAClB;aACF;YAAC,OAAO,GAAG,EAAE,GAAE;SACjB;IACH,CAAC;CACF;AAtCD,8BAsCC;AAED,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAClC,kBAAe,SAAS,CAAC"}
|
|
@@ -16,6 +16,10 @@ export interface CommandLineOptions {
|
|
|
16
16
|
promptPrefix?: string;
|
|
17
17
|
promptSuffix?: string;
|
|
18
18
|
}
|
|
19
|
+
export interface ProviderConfig {
|
|
20
|
+
id: ProviderId;
|
|
21
|
+
config?: any;
|
|
22
|
+
}
|
|
19
23
|
export interface ApiProvider {
|
|
20
24
|
id: () => string;
|
|
21
25
|
callApi: (prompt: string) => Promise<ProviderResponse>;
|
|
@@ -115,9 +119,11 @@ export interface TestSuite {
|
|
|
115
119
|
tests?: TestCase[];
|
|
116
120
|
defaultTest?: Partial<TestCase>;
|
|
117
121
|
}
|
|
122
|
+
export type ProviderId = string;
|
|
123
|
+
export type RawProviderConfig = Record<ProviderId, Omit<ProviderConfig, 'id'>>;
|
|
118
124
|
export interface TestSuiteConfig {
|
|
119
125
|
description?: string;
|
|
120
|
-
providers:
|
|
126
|
+
providers: ProviderId | ProviderId[] | RawProviderConfig[];
|
|
121
127
|
prompts: string | string[];
|
|
122
128
|
tests: string | TestCase[];
|
|
123
129
|
defaultTest?: Omit<TestCase, 'description'>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAEjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IAGf,cAAc,EAAE,MAAM,CAAC;IAGvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,MAAM,CAAC;IACjB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;IAEF,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,KAAK,kBAAkB,GACnB,QAAQ,GACR,UAAU,GACV,WAAW,GACX,cAAc,GACd,cAAc,GACd,OAAO,GACP,SAAS,GACT,eAAe,GACf,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAEd,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,OAAO,CAAC,EAAE,CAAC;AAEhD,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;AAGjF,MAAM,WAAW,SAAS;IAExB,IAAI,EAAE,aAAa,CAAC;IAGpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAG1B,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAGD,MAAM,WAAW,QAAQ;IAEvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAGzC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IAGrB,OAAO,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;CACxC;AAGD,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAGD,MAAM,WAAW,SAAS;IAExB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,SAAS,EAAE,WAAW,EAAE,CAAC;IAGzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAGlB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IAGnB,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;AAG/E,MAAM,WAAW,eAAe;IAE9B,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,SAAS,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAG3D,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAG3B,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IAG3B,WAAW,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAG5C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG;IAC5C,eAAe,EAAE,eAAe,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|