promptfoo 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -248
- package/dist/__mocks__/esm.js +5 -1
- package/dist/__mocks__/esm.js.map +1 -1
- package/dist/assertions.d.ts +18 -0
- package/dist/assertions.d.ts.map +1 -0
- package/dist/assertions.js +128 -0
- package/dist/assertions.js.map +1 -0
- package/dist/esm.d.ts.map +1 -1
- package/dist/esm.js +10 -3
- package/dist/esm.js.map +1 -1
- package/dist/evaluator.d.ts.map +1 -1
- package/dist/evaluator.js +88 -117
- package/dist/evaluator.js.map +1 -1
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -5
- package/dist/index.js.map +1 -1
- package/dist/logger.js +18 -11
- package/dist/logger.js.map +1 -1
- package/dist/main.js +95 -53
- package/dist/main.js.map +1 -1
- package/dist/prompts.d.ts +4 -0
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +12 -1
- package/dist/prompts.js.map +1 -1
- package/dist/providers/localai.js +21 -13
- package/dist/providers/localai.js.map +1 -1
- package/dist/providers/openai.d.ts +10 -5
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +44 -32
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/shared.d.ts.map +1 -1
- package/dist/providers/shared.js +5 -2
- package/dist/providers/shared.js.map +1 -1
- package/dist/providers.d.ts +10 -0
- package/dist/providers.d.ts.map +1 -1
- package/dist/providers.js +51 -14
- package/dist/providers.js.map +1 -1
- package/dist/suggestions.d.ts +9 -0
- package/dist/suggestions.d.ts.map +1 -0
- package/dist/suggestions.js +54 -0
- package/dist/suggestions.js.map +1 -0
- package/dist/types.d.ts +11 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -1
- package/dist/util.d.ts +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +86 -31
- package/dist/util.js.map +1 -1
- package/dist/web/client/assets/index-207192fc.css +1 -0
- package/dist/web/client/assets/index-8751749f.js +172 -0
- package/dist/web/client/index.html +2 -2
- package/dist/web/server.js +38 -31
- package/dist/web/server.js.map +1 -1
- package/package.json +14 -4
- package/src/assertions.ts +154 -0
- package/src/esm.ts +5 -2
- package/src/evaluator.ts +61 -139
- package/src/index.ts +12 -0
- package/src/main.ts +28 -3
- package/src/prompts.ts +9 -0
- package/src/providers/openai.ts +28 -15
- package/src/providers/shared.ts +1 -1
- package/src/providers.ts +8 -0
- package/src/suggestions.ts +63 -0
- package/src/types.ts +14 -2
- package/src/util.ts +24 -3
- package/src/web/client/package.json +1 -0
- package/src/web/client/src/App.css +4 -0
- package/src/web/client/src/App.tsx +29 -5
- package/src/web/client/src/Logo.css +5 -0
- package/src/web/client/src/NavBar.css +18 -0
- package/src/web/client/src/NavBar.tsx +12 -1
- package/src/web/client/src/index.css +10 -0
- package/src/web/server.ts +2 -2
- package/dist/web/client/assets/index-710f1308.css +0 -1
- package/dist/web/client/assets/index-900b20c0.js +0 -172
package/dist/main.js
CHANGED
|
@@ -1,20 +1,48 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
+
if (mod && mod.__esModule) return mod;
|
|
21
|
+
var result = {};
|
|
22
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
+
__setModuleDefault(result, mod);
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
26
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
27
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
const fs_1 = require("fs");
|
|
31
|
+
const path_1 = require("path");
|
|
32
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
33
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
34
|
+
const commander_1 = require("commander");
|
|
35
|
+
const logger_js_1 = __importStar(require("./logger.js"));
|
|
36
|
+
const providers_js_1 = require("./providers.js");
|
|
37
|
+
const evaluator_js_1 = require("./evaluator.js");
|
|
38
|
+
const util_js_1 = require("./util.js");
|
|
39
|
+
const esm_js_1 = require("./esm.js");
|
|
40
|
+
const server_js_1 = require("./web/server.js");
|
|
13
41
|
function createDummyFiles(directory) {
|
|
14
42
|
if (directory) {
|
|
15
43
|
// Make the directory if it doesn't exist
|
|
16
|
-
if (!existsSync(directory)) {
|
|
17
|
-
mkdirSync(directory);
|
|
44
|
+
if (!(0, fs_1.existsSync)(directory)) {
|
|
45
|
+
(0, fs_1.mkdirSync)(directory);
|
|
18
46
|
}
|
|
19
47
|
}
|
|
20
48
|
const dummyPrompts = `Your first prompt goes here
|
|
@@ -28,7 +56,7 @@ These prompts are nunjucks templates, so you can use logic like this:
|
|
|
28
56
|
{{ var1 }}
|
|
29
57
|
{% endif %}`;
|
|
30
58
|
const dummyVars = 'var1,var2,var3\nvalue1,value2,value3\nanother value1,another value2,another value3';
|
|
31
|
-
const dummyConfig = `
|
|
59
|
+
const dummyConfig = `module.exports = {
|
|
32
60
|
prompts: ['prompts.txt'],
|
|
33
61
|
providers: ['openai:gpt-3.5-turbo'],
|
|
34
62
|
vars: 'vars.csv',
|
|
@@ -42,36 +70,40 @@ promptfoo eval
|
|
|
42
70
|
You'll probably want to change a few of the prompts in prompts.txt and the variables in vars.csv before letting it rip.
|
|
43
71
|
`;
|
|
44
72
|
if (directory) {
|
|
45
|
-
if (!existsSync(directory)) {
|
|
46
|
-
|
|
47
|
-
mkdirSync(directory);
|
|
73
|
+
if (!(0, fs_1.existsSync)(directory)) {
|
|
74
|
+
logger_js_1.default.info(`Creating directory ${directory} ...`);
|
|
75
|
+
(0, fs_1.mkdirSync)(directory);
|
|
48
76
|
}
|
|
49
77
|
}
|
|
50
78
|
else {
|
|
51
79
|
directory = '.';
|
|
52
80
|
}
|
|
53
|
-
writeFileSync(
|
|
54
|
-
writeFileSync(
|
|
55
|
-
writeFileSync(
|
|
56
|
-
writeFileSync(
|
|
81
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(process.cwd(), directory, 'prompts.txt'), dummyPrompts);
|
|
82
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(process.cwd(), directory, 'vars.csv'), dummyVars);
|
|
83
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(process.cwd(), directory, 'promptfooconfig.js'), dummyConfig);
|
|
84
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(process.cwd(), directory, 'README.md'), readme);
|
|
57
85
|
if (directory === '.') {
|
|
58
|
-
|
|
86
|
+
logger_js_1.default.info('Wrote prompts.txt, vars.csv, and promptfooconfig.js. Open README.md to get started!');
|
|
59
87
|
}
|
|
60
88
|
else {
|
|
61
|
-
|
|
62
|
-
|
|
89
|
+
logger_js_1.default.info(`Wrote prompts.txt, vars.csv, and promptfooconfig.js to ${directory}`);
|
|
90
|
+
logger_js_1.default.info(`\`cd ${directory}\` and open README.md to get started!`);
|
|
63
91
|
}
|
|
64
92
|
}
|
|
65
93
|
async function main() {
|
|
66
94
|
let defaultConfig = {};
|
|
67
|
-
if (existsSync('promptfooconfig.js')) {
|
|
95
|
+
if ((0, fs_1.existsSync)('promptfooconfig.js')) {
|
|
68
96
|
// @ts-ignore
|
|
69
|
-
defaultConfig = (await
|
|
70
|
-
|
|
97
|
+
defaultConfig = (await Promise.resolve(`${(0, path_1.join)(process.cwd(), './promptfooconfig.js')}`).then(s => __importStar(require(s)))).default;
|
|
98
|
+
logger_js_1.default.info('Loaded default config from promptfooconfig.js');
|
|
99
|
+
}
|
|
100
|
+
if ((0, fs_1.existsSync)('promptfooconfig.json')) {
|
|
101
|
+
defaultConfig = JSON.parse((0, fs_1.readFileSync)('promptfooconfig.json', 'utf-8'));
|
|
102
|
+
logger_js_1.default.info('Loaded default config from promptfooconfig.json');
|
|
71
103
|
}
|
|
72
|
-
const program = new Command();
|
|
104
|
+
const program = new commander_1.Command();
|
|
73
105
|
program.option('--version', 'Print version', () => {
|
|
74
|
-
const packageJson = JSON.parse(readFileSync(
|
|
106
|
+
const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)((0, esm_js_1.getDirectory)(), '../package.json'), 'utf8'));
|
|
75
107
|
console.log(packageJson.version);
|
|
76
108
|
process.exit(0);
|
|
77
109
|
});
|
|
@@ -86,7 +118,7 @@ async function main() {
|
|
|
86
118
|
.description('Start browser ui')
|
|
87
119
|
.option('-p, --port <number>', 'Port number', '15500')
|
|
88
120
|
.action((cmdObj) => {
|
|
89
|
-
init(cmdObj.port);
|
|
121
|
+
(0, server_js_1.init)(cmdObj.port);
|
|
90
122
|
});
|
|
91
123
|
program
|
|
92
124
|
.command('eval')
|
|
@@ -98,21 +130,24 @@ async function main() {
|
|
|
98
130
|
.option('-c, --config <path>', 'Path to configuration file. Automatically loads promptfooconfig.js', defaultConfig.config)
|
|
99
131
|
.option('-j, --max-concurrency <number>', 'Maximum number of concurrent API calls', String(defaultConfig.maxConcurrency))
|
|
100
132
|
.option('--table-cell-max-length <number>', 'Truncate console table cells to this length', '250')
|
|
133
|
+
.option('--suggest-prompts <number>', 'Generate N new prompts and append them to the prompt list')
|
|
134
|
+
.option('--prompt-prefix <path>', 'This prefix is prepended to every prompt', defaultConfig.promptPrefix)
|
|
135
|
+
.option('--prompt-suffix <path>', 'This suffix is append to every prompt', defaultConfig.promptSuffix)
|
|
101
136
|
.option('--no-write', 'Do not write results to promptfoo directory')
|
|
102
137
|
.option('--grader', 'Model that will grade outputs', defaultConfig.grader)
|
|
103
138
|
.option('--verbose', 'Show debug logs', defaultConfig.verbose)
|
|
104
|
-
.option('--view', 'View in browser ui')
|
|
139
|
+
.option('--view [port]', 'View in browser ui')
|
|
105
140
|
.action(async (cmdObj) => {
|
|
106
141
|
if (cmdObj.verbose) {
|
|
107
|
-
setLogLevel('debug');
|
|
142
|
+
(0, logger_js_1.setLogLevel)('debug');
|
|
108
143
|
}
|
|
109
144
|
const configPath = cmdObj.config;
|
|
110
145
|
let config = {};
|
|
111
146
|
if (configPath) {
|
|
112
|
-
const ext = parse(configPath).ext;
|
|
147
|
+
const ext = (0, path_1.parse)(configPath).ext;
|
|
113
148
|
switch (ext) {
|
|
114
149
|
case '.json':
|
|
115
|
-
const content = readFileSync(configPath, 'utf-8');
|
|
150
|
+
const content = (0, fs_1.readFileSync)(configPath, 'utf-8');
|
|
116
151
|
config = JSON.parse(content);
|
|
117
152
|
break;
|
|
118
153
|
case '.js':
|
|
@@ -124,34 +159,41 @@ async function main() {
|
|
|
124
159
|
}
|
|
125
160
|
let vars = [];
|
|
126
161
|
if (cmdObj.vars) {
|
|
127
|
-
vars = readVars(cmdObj.vars);
|
|
162
|
+
vars = (0, util_js_1.readVars)(cmdObj.vars);
|
|
128
163
|
}
|
|
129
|
-
const providers = await Promise.all(cmdObj.providers.map(async (p) => await loadApiProvider(p)));
|
|
164
|
+
const providers = await Promise.all(cmdObj.providers.map(async (p) => await (0, providers_js_1.loadApiProvider)(p)));
|
|
130
165
|
const maxConcurrency = parseInt(cmdObj.maxConcurrency || '', 10);
|
|
131
166
|
const options = {
|
|
132
|
-
prompts: readPrompts(cmdObj.prompts),
|
|
167
|
+
prompts: (0, util_js_1.readPrompts)(cmdObj.prompts),
|
|
133
168
|
vars,
|
|
134
169
|
providers,
|
|
135
170
|
showProgressBar: true,
|
|
136
171
|
maxConcurrency: !isNaN(maxConcurrency) && maxConcurrency > 0 ? maxConcurrency : undefined,
|
|
172
|
+
prompt: {
|
|
173
|
+
prefix: cmdObj.promptPrefix,
|
|
174
|
+
suffix: cmdObj.promptSuffix,
|
|
175
|
+
},
|
|
137
176
|
...config,
|
|
138
177
|
};
|
|
139
178
|
if (cmdObj.grader) {
|
|
140
179
|
options.grading = {
|
|
141
|
-
provider: await loadApiProvider(cmdObj.grader),
|
|
180
|
+
provider: await (0, providers_js_1.loadApiProvider)(cmdObj.grader),
|
|
142
181
|
};
|
|
143
182
|
}
|
|
144
|
-
|
|
183
|
+
if (cmdObj.generateSuggestions) {
|
|
184
|
+
options.prompt.generateSuggestions = true;
|
|
185
|
+
}
|
|
186
|
+
const summary = await (0, evaluator_js_1.evaluate)(options);
|
|
145
187
|
if (cmdObj.output) {
|
|
146
|
-
|
|
147
|
-
writeOutput(cmdObj.output, summary);
|
|
188
|
+
logger_js_1.default.info(chalk_1.default.yellow(`Writing output to ${cmdObj.output}`));
|
|
189
|
+
(0, util_js_1.writeOutput)(cmdObj.output, summary);
|
|
148
190
|
}
|
|
149
191
|
else {
|
|
150
192
|
// Output table by default
|
|
151
193
|
const maxWidth = process.stdout.columns ? process.stdout.columns - 10 : 120;
|
|
152
194
|
const head = summary.table.head;
|
|
153
195
|
const headLength = head.prompts.length + head.vars.length;
|
|
154
|
-
const table = new
|
|
196
|
+
const table = new cli_table3_1.default({
|
|
155
197
|
head: [...head.prompts, ...head.vars],
|
|
156
198
|
colWidths: Array(headLength).fill(Math.floor(maxWidth / headLength)),
|
|
157
199
|
wordWrap: true,
|
|
@@ -170,13 +212,13 @@ async function main() {
|
|
|
170
212
|
}
|
|
171
213
|
if (col.startsWith('[PASS]')) {
|
|
172
214
|
// color '[PASS]' green
|
|
173
|
-
return
|
|
215
|
+
return chalk_1.default.green.bold(col.slice(0, 6)) + col.slice(6);
|
|
174
216
|
}
|
|
175
217
|
else if (col.startsWith('[FAIL]')) {
|
|
176
218
|
// color everything red up until '---'
|
|
177
219
|
return col
|
|
178
220
|
.split('---')
|
|
179
|
-
.map((c, idx) => (idx === 0 ?
|
|
221
|
+
.map((c, idx) => (idx === 0 ? chalk_1.default.red.bold(c) : c))
|
|
180
222
|
.join('---');
|
|
181
223
|
}
|
|
182
224
|
return col;
|
|
@@ -184,21 +226,21 @@ async function main() {
|
|
|
184
226
|
...row.vars,
|
|
185
227
|
]);
|
|
186
228
|
}
|
|
187
|
-
|
|
229
|
+
logger_js_1.default.info('\n' + table.toString());
|
|
188
230
|
}
|
|
189
231
|
if (cmdObj.noWrite || cmdObj.view) {
|
|
190
|
-
|
|
232
|
+
logger_js_1.default.info('Evaluation complete');
|
|
191
233
|
}
|
|
192
234
|
else {
|
|
193
|
-
writeLatestResults(summary);
|
|
194
|
-
|
|
235
|
+
(0, util_js_1.writeLatestResults)(summary);
|
|
236
|
+
logger_js_1.default.info(`Evaluation complete. To use web viewer, run ${chalk_1.default.green('promptfoo view')}`);
|
|
195
237
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
238
|
+
logger_js_1.default.info(chalk_1.default.green.bold(`Successes: ${summary.stats.successes}`));
|
|
239
|
+
logger_js_1.default.info(chalk_1.default.red.bold(`Failures: ${summary.stats.failures}`));
|
|
240
|
+
logger_js_1.default.info(`Token usage: Total ${summary.stats.tokenUsage.total} Prompt ${summary.stats.tokenUsage.prompt} Completion ${summary.stats.tokenUsage.completion}`);
|
|
241
|
+
logger_js_1.default.info('Done.');
|
|
200
242
|
if (cmdObj.view) {
|
|
201
|
-
init(15500);
|
|
243
|
+
(0, server_js_1.init)(parseInt(cmdObj.view, 10) || 15500);
|
|
202
244
|
}
|
|
203
245
|
});
|
|
204
246
|
program.parse(process.argv);
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts.d.ts
CHANGED
package/dist/prompts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,QAmBjC,CAAC"}
|
|
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"}
|
package/dist/prompts.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SUGGEST_PROMPTS_SYSTEM_MESSAGE = exports.DEFAULT_GRADING_PROMPT = void 0;
|
|
4
|
+
exports.DEFAULT_GRADING_PROMPT = JSON.stringify([
|
|
2
5
|
{
|
|
3
6
|
role: 'system',
|
|
4
7
|
content: `You are grading content according to a user-specified rubric. If the statement in the rubric is true, then the content passes the test. You respond with a JSON object with this structure: {pass: boolean; reason: string;}.
|
|
@@ -18,4 +21,12 @@ Rubric: Does not speak like a pirate
|
|
|
18
21
|
content: 'Content: {{ content }}\nRubric: {{ rubric }}',
|
|
19
22
|
},
|
|
20
23
|
]);
|
|
24
|
+
exports.SUGGEST_PROMPTS_SYSTEM_MESSAGE = {
|
|
25
|
+
role: 'system',
|
|
26
|
+
content: `You're helping a scientist who is tuning a prompt for a large language model. You will receive messages, and each message is a full prompt. Generate a candidate variation of the given prompt. This variation will be tested for quality in order to select a winner.
|
|
27
|
+
|
|
28
|
+
Substantially revise the prompt, revising its structure and content however necessary to make it perform better, while preserving the original intent and including important details.
|
|
29
|
+
|
|
30
|
+
Your output is going to be copied directly into the program. It should contain the prompt ONLY`,
|
|
31
|
+
};
|
|
21
32
|
//# sourceMappingURL=prompts.js.map
|
package/dist/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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.LocalAiCompletionProvider = exports.LocalAiChatProvider = void 0;
|
|
7
|
+
const logger_js_1 = __importDefault(require("../logger.js"));
|
|
8
|
+
const util_js_1 = require("../util.js");
|
|
9
|
+
const shared_js_1 = require("./shared.js");
|
|
4
10
|
class LocalAiGenericProvider {
|
|
5
11
|
constructor(modelName) {
|
|
6
12
|
this.modelName = modelName;
|
|
@@ -17,23 +23,23 @@ class LocalAiGenericProvider {
|
|
|
17
23
|
throw new Error('Not implemented');
|
|
18
24
|
}
|
|
19
25
|
}
|
|
20
|
-
|
|
26
|
+
class LocalAiChatProvider extends LocalAiGenericProvider {
|
|
21
27
|
async callApi(prompt) {
|
|
22
28
|
const body = {
|
|
23
29
|
model: this.modelName,
|
|
24
30
|
prompt,
|
|
25
31
|
temperature: process.env.LOCALAI_TEMPERATURE || 0.7,
|
|
26
32
|
};
|
|
27
|
-
|
|
33
|
+
logger_js_1.default.debug(`Calling LocalAI API: ${JSON.stringify(body)}`);
|
|
28
34
|
let response, data;
|
|
29
35
|
try {
|
|
30
|
-
response = await fetchWithTimeout(`${this.apiBaseUrl}/chat/completions`, {
|
|
36
|
+
response = await (0, util_js_1.fetchWithTimeout)(`${this.apiBaseUrl}/chat/completions`, {
|
|
31
37
|
method: 'POST',
|
|
32
38
|
headers: {
|
|
33
39
|
'Content-Type': 'application/json',
|
|
34
40
|
},
|
|
35
41
|
body: JSON.stringify(body),
|
|
36
|
-
}, REQUEST_TIMEOUT_MS);
|
|
42
|
+
}, shared_js_1.REQUEST_TIMEOUT_MS);
|
|
37
43
|
data = (await response.json());
|
|
38
44
|
}
|
|
39
45
|
catch (err) {
|
|
@@ -41,7 +47,7 @@ export class LocalAiChatProvider extends LocalAiGenericProvider {
|
|
|
41
47
|
error: `API call error: ${String(err)}`,
|
|
42
48
|
};
|
|
43
49
|
}
|
|
44
|
-
|
|
50
|
+
logger_js_1.default.debug(` LocalAI API response: ${JSON.stringify(data)}`);
|
|
45
51
|
try {
|
|
46
52
|
return {
|
|
47
53
|
output: data.choices[0].text,
|
|
@@ -54,23 +60,24 @@ export class LocalAiChatProvider extends LocalAiGenericProvider {
|
|
|
54
60
|
}
|
|
55
61
|
}
|
|
56
62
|
}
|
|
57
|
-
|
|
63
|
+
exports.LocalAiChatProvider = LocalAiChatProvider;
|
|
64
|
+
class LocalAiCompletionProvider extends LocalAiGenericProvider {
|
|
58
65
|
async callApi(prompt) {
|
|
59
66
|
const body = {
|
|
60
67
|
model: this.modelName,
|
|
61
68
|
prompt,
|
|
62
69
|
temperature: process.env.LOCALAI_TEMPERATURE || 0.7,
|
|
63
70
|
};
|
|
64
|
-
|
|
71
|
+
logger_js_1.default.debug(`Calling LocalAI API: ${JSON.stringify(body)}`);
|
|
65
72
|
let response, data;
|
|
66
73
|
try {
|
|
67
|
-
response = await fetchWithTimeout(`${this.apiBaseUrl}/completions`, {
|
|
74
|
+
response = await (0, util_js_1.fetchWithTimeout)(`${this.apiBaseUrl}/completions`, {
|
|
68
75
|
method: 'POST',
|
|
69
76
|
headers: {
|
|
70
77
|
'Content-Type': 'application/json',
|
|
71
78
|
},
|
|
72
79
|
body: JSON.stringify(body),
|
|
73
|
-
}, REQUEST_TIMEOUT_MS);
|
|
80
|
+
}, shared_js_1.REQUEST_TIMEOUT_MS);
|
|
74
81
|
data = (await response.json());
|
|
75
82
|
}
|
|
76
83
|
catch (err) {
|
|
@@ -78,7 +85,7 @@ export class LocalAiCompletionProvider extends LocalAiGenericProvider {
|
|
|
78
85
|
error: `API call error: ${String(err)}`,
|
|
79
86
|
};
|
|
80
87
|
}
|
|
81
|
-
|
|
88
|
+
logger_js_1.default.debug(` LocalAI API response: ${JSON.stringify(data)}`);
|
|
82
89
|
try {
|
|
83
90
|
return {
|
|
84
91
|
output: data.choices[0].text,
|
|
@@ -91,4 +98,5 @@ export class LocalAiCompletionProvider extends LocalAiGenericProvider {
|
|
|
91
98
|
}
|
|
92
99
|
}
|
|
93
100
|
}
|
|
101
|
+
exports.LocalAiCompletionProvider = LocalAiCompletionProvider;
|
|
94
102
|
//# sourceMappingURL=localai.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localai.js","sourceRoot":"","sources":["../../src/providers/localai.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"localai.js","sourceRoot":"","sources":["../../src/providers/localai.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,31 @@
|
|
|
1
1
|
import type { ApiProvider, ProviderEmbeddingResponse, ProviderResponse } from '../types.js';
|
|
2
|
+
interface OpenAiCompletionOptions {
|
|
3
|
+
temperature: number;
|
|
4
|
+
}
|
|
2
5
|
declare class OpenAiGenericProvider implements ApiProvider {
|
|
3
6
|
modelName: string;
|
|
4
|
-
apiKey
|
|
7
|
+
apiKey?: string;
|
|
5
8
|
apiHost: string;
|
|
6
9
|
constructor(modelName: string, apiKey?: string);
|
|
7
10
|
id(): string;
|
|
8
11
|
toString(): string;
|
|
9
|
-
callApi(prompt: string): Promise<ProviderResponse>;
|
|
12
|
+
callApi(prompt: string, options?: OpenAiCompletionOptions): Promise<ProviderResponse>;
|
|
10
13
|
}
|
|
11
14
|
export declare class OpenAiEmbeddingProvider extends OpenAiGenericProvider {
|
|
12
15
|
callEmbeddingApi(text: string): Promise<ProviderEmbeddingResponse>;
|
|
13
16
|
}
|
|
14
|
-
export declare const DefaultEmbeddingProvider: OpenAiEmbeddingProvider;
|
|
15
17
|
export declare class OpenAiCompletionProvider extends OpenAiGenericProvider {
|
|
16
18
|
static OPENAI_COMPLETION_MODELS: string[];
|
|
17
19
|
constructor(modelName: string, apiKey?: string);
|
|
18
|
-
callApi(prompt: string): Promise<ProviderResponse>;
|
|
20
|
+
callApi(prompt: string, options?: OpenAiCompletionOptions): Promise<ProviderResponse>;
|
|
19
21
|
}
|
|
20
22
|
export declare class OpenAiChatCompletionProvider extends OpenAiGenericProvider {
|
|
21
23
|
static OPENAI_CHAT_MODELS: string[];
|
|
22
24
|
constructor(modelName: string, apiKey?: string);
|
|
23
|
-
callApi(prompt: string): Promise<ProviderResponse>;
|
|
25
|
+
callApi(prompt: string, options?: OpenAiCompletionOptions): Promise<ProviderResponse>;
|
|
24
26
|
}
|
|
27
|
+
export declare const DefaultEmbeddingProvider: OpenAiEmbeddingProvider;
|
|
28
|
+
export declare const DefaultGradingProvider: OpenAiChatCompletionProvider;
|
|
29
|
+
export declare const DefaultSuggestionsProvider: OpenAiChatCompletionProvider;
|
|
25
30
|
export {};
|
|
26
31
|
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQ5F,cAAM,qBAAsB,YAAW,WAAW;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQ5F,UAAU,uBAAuB;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;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;CAoEzE;AAED,qBAAa,wBAAyB,SAAQ,qBAAqB;IACjE,MAAM,CAAC,wBAAwB,WAM7B;gBAEU,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAOxC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAoD5F;AAED,qBAAa,4BAA6B,SAAQ,qBAAqB;IACrE,MAAM,CAAC,kBAAkB,WAOvB;gBAEU,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAQxC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA4D5F;AAED,eAAO,MAAM,wBAAwB,yBAAwD,CAAC;AAC9F,eAAO,MAAM,sBAAsB,8BAA4C,CAAC;AAChF,eAAO,MAAM,0BAA0B,8BAA4C,CAAC"}
|