promptfoo 0.5.1 → 0.7.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 +35 -250
- 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/cache.d.ts +8 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +78 -0
- package/dist/cache.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 +90 -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 +103 -56
- 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.d.ts.map +1 -1
- package/dist/providers/localai.js +23 -17
- package/dist/providers/localai.js.map +1 -1
- package/dist/providers/openai.d.ts +9 -4
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +61 -58
- 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 +17 -6
- 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 +85 -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 +18 -5
- package/src/assertions.ts +154 -0
- package/src/cache.ts +91 -0
- package/src/esm.ts +5 -2
- package/src/evaluator.ts +63 -139
- package/src/index.ts +12 -0
- package/src/main.ts +39 -9
- package/src/prompts.ts +9 -0
- package/src/providers/localai.ts +9 -11
- package/src/providers/openai.ts +49 -50
- package/src/providers/shared.ts +1 -1
- package/src/providers.ts +8 -0
- package/src/suggestions.ts +63 -0
- package/src/types.ts +20 -6
- package/src/util.ts +24 -4
- 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/evaluator.js
CHANGED
|
@@ -1,10 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.evaluate = void 0;
|
|
30
|
+
const node_readline_1 = __importDefault(require("node:readline"));
|
|
31
|
+
const async_1 = __importDefault(require("async"));
|
|
32
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
33
|
+
const nunjucks_1 = __importDefault(require("nunjucks"));
|
|
34
|
+
const logger_js_1 = __importDefault(require("./logger.js"));
|
|
35
|
+
const assertions_js_1 = require("./assertions.js");
|
|
36
|
+
const suggestions_js_1 = require("./suggestions.js");
|
|
6
37
|
const DEFAULT_MAX_CONCURRENCY = 4;
|
|
7
|
-
const SIMILAR_REGEX = /similar(?::|\((\d+(\.\d+)?)\):)/;
|
|
8
38
|
class Evaluator {
|
|
9
39
|
constructor(options) {
|
|
10
40
|
this.options = options;
|
|
@@ -15,114 +45,13 @@ class Evaluator {
|
|
|
15
45
|
total: 0,
|
|
16
46
|
prompt: 0,
|
|
17
47
|
completion: 0,
|
|
48
|
+
cached: 0,
|
|
18
49
|
},
|
|
19
50
|
};
|
|
20
51
|
}
|
|
21
|
-
async gradeOutput(expected, output) {
|
|
22
|
-
const { grading } = this.options;
|
|
23
|
-
if (!grading) {
|
|
24
|
-
throw new Error('Cannot grade output without grading config. Specify --grader option or grading config.');
|
|
25
|
-
}
|
|
26
|
-
const prompt = nunjucks.renderString(grading.prompt || DEFAULT_GRADING_PROMPT, {
|
|
27
|
-
content: output,
|
|
28
|
-
rubric: expected,
|
|
29
|
-
});
|
|
30
|
-
const resp = await grading.provider.callApi(prompt);
|
|
31
|
-
if (resp.error || !resp.output) {
|
|
32
|
-
return {
|
|
33
|
-
pass: false,
|
|
34
|
-
reason: resp.error || 'No output',
|
|
35
|
-
tokensUsed: {
|
|
36
|
-
total: resp.tokenUsage?.total || 0,
|
|
37
|
-
prompt: resp.tokenUsage?.prompt || 0,
|
|
38
|
-
completion: resp.tokenUsage?.completion || 0,
|
|
39
|
-
},
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
try {
|
|
43
|
-
const parsed = JSON.parse(resp.output);
|
|
44
|
-
parsed.tokensUsed = {
|
|
45
|
-
total: resp.tokenUsage?.total || 0,
|
|
46
|
-
prompt: resp.tokenUsage?.prompt || 0,
|
|
47
|
-
completion: resp.tokenUsage?.completion || 0,
|
|
48
|
-
};
|
|
49
|
-
return parsed;
|
|
50
|
-
}
|
|
51
|
-
catch (err) {
|
|
52
|
-
return {
|
|
53
|
-
pass: false,
|
|
54
|
-
reason: `Output is not valid JSON: ${resp.output}`,
|
|
55
|
-
tokensUsed: {
|
|
56
|
-
total: resp.tokenUsage?.total || 0,
|
|
57
|
-
prompt: resp.tokenUsage?.prompt || 0,
|
|
58
|
-
completion: resp.tokenUsage?.completion || 0,
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
async checkSimilarity(expected, output, threshold) {
|
|
64
|
-
const expectedEmbedding = await DefaultEmbeddingProvider.callEmbeddingApi(expected);
|
|
65
|
-
const outputEmbedding = await DefaultEmbeddingProvider.callEmbeddingApi(output);
|
|
66
|
-
const tokensUsed = {
|
|
67
|
-
total: (expectedEmbedding.tokenUsage?.total || 0) + (outputEmbedding.tokenUsage?.total || 0),
|
|
68
|
-
prompt: (expectedEmbedding.tokenUsage?.prompt || 0) + (outputEmbedding.tokenUsage?.prompt || 0),
|
|
69
|
-
completion: (expectedEmbedding.tokenUsage?.completion || 0) +
|
|
70
|
-
(outputEmbedding.tokenUsage?.completion || 0),
|
|
71
|
-
};
|
|
72
|
-
if (expectedEmbedding.error || outputEmbedding.error) {
|
|
73
|
-
return {
|
|
74
|
-
pass: false,
|
|
75
|
-
reason: expectedEmbedding.error || outputEmbedding.error || 'Unknown error fetching embeddings',
|
|
76
|
-
tokensUsed,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
if (!expectedEmbedding.embedding || !outputEmbedding.embedding) {
|
|
80
|
-
return {
|
|
81
|
-
pass: false,
|
|
82
|
-
reason: 'Embedding not found',
|
|
83
|
-
tokensUsed,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
const similarity = cosineSimilarity(expectedEmbedding.embedding, outputEmbedding.embedding);
|
|
87
|
-
if (similarity < threshold) {
|
|
88
|
-
return {
|
|
89
|
-
pass: false,
|
|
90
|
-
reason: `Similarity ${similarity} is less than threshold ${threshold}`,
|
|
91
|
-
tokensUsed,
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
return {
|
|
95
|
-
pass: true,
|
|
96
|
-
reason: `Similarity ${similarity} is greater than threshold ${threshold}`,
|
|
97
|
-
tokensUsed,
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
async checkExpectedValue(expected, output) {
|
|
101
|
-
const match = expected.match(SIMILAR_REGEX);
|
|
102
|
-
if (match) {
|
|
103
|
-
const threshold = parseFloat(match[1]) || 0.8;
|
|
104
|
-
const rest = expected.replace(SIMILAR_REGEX, '').trim();
|
|
105
|
-
return this.checkSimilarity(rest, output, threshold);
|
|
106
|
-
}
|
|
107
|
-
else if (expected.startsWith('eval:')) {
|
|
108
|
-
const evalBody = expected.slice(5);
|
|
109
|
-
const evalFunction = new Function('output', `return ${evalBody}`);
|
|
110
|
-
return { pass: evalFunction(output) };
|
|
111
|
-
}
|
|
112
|
-
else if (expected.startsWith('grade:')) {
|
|
113
|
-
return this.gradeOutput(expected.slice(6), output);
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
const pass = expected === output;
|
|
117
|
-
return {
|
|
118
|
-
pass,
|
|
119
|
-
reason: pass ? undefined : `Expected: ${expected}, Output: ${output}`,
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
52
|
async runEval({ provider, prompt, vars, includeProviderId, }) {
|
|
124
53
|
vars = vars || {};
|
|
125
|
-
const renderedPrompt =
|
|
54
|
+
const renderedPrompt = nunjucks_1.default.renderString(prompt, vars);
|
|
126
55
|
// Note that we're using original prompt, not renderedPrompt
|
|
127
56
|
const promptDisplay = includeProviderId ? `[${provider.id()}] ${prompt}` : prompt;
|
|
128
57
|
const setup = {
|
|
@@ -144,7 +73,7 @@ class Evaluator {
|
|
|
144
73
|
}
|
|
145
74
|
else if (response.output) {
|
|
146
75
|
const checkResult = vars.__expected
|
|
147
|
-
? await
|
|
76
|
+
? await (0, assertions_js_1.matchesExpectedValue)(vars.__expected, response.output, this.options)
|
|
148
77
|
: { pass: true };
|
|
149
78
|
if (!checkResult.pass) {
|
|
150
79
|
ret.error = checkResult.reason || `Expected: ${vars.__expected}`;
|
|
@@ -159,6 +88,7 @@ class Evaluator {
|
|
|
159
88
|
this.stats.tokenUsage.total += response.tokenUsage?.total || 0;
|
|
160
89
|
this.stats.tokenUsage.prompt += response.tokenUsage?.prompt || 0;
|
|
161
90
|
this.stats.tokenUsage.completion += response.tokenUsage?.completion || 0;
|
|
91
|
+
this.stats.tokenUsage.cached += response.tokenUsage?.cached || 0;
|
|
162
92
|
if (ret.success) {
|
|
163
93
|
this.stats.successes++;
|
|
164
94
|
}
|
|
@@ -178,6 +108,42 @@ class Evaluator {
|
|
|
178
108
|
async evaluate() {
|
|
179
109
|
const options = this.options;
|
|
180
110
|
const prompts = [];
|
|
111
|
+
if (options.prompt?.generateSuggestions) {
|
|
112
|
+
logger_js_1.default.info(`Generating prompt variations...`);
|
|
113
|
+
const { prompts: newPrompts, error } = await (0, suggestions_js_1.generatePrompts)(options.prompts[0], 1);
|
|
114
|
+
if (error || !newPrompts) {
|
|
115
|
+
throw new Error(`Failed to generate prompts: ${error}`);
|
|
116
|
+
}
|
|
117
|
+
logger_js_1.default.info(chalk_1.default.blue('Generated prompts:'));
|
|
118
|
+
let numAdded = 0;
|
|
119
|
+
for (const prompt of newPrompts) {
|
|
120
|
+
logger_js_1.default.info('--------------------------------------------------------');
|
|
121
|
+
logger_js_1.default.info(`${prompt}`);
|
|
122
|
+
logger_js_1.default.info('--------------------------------------------------------');
|
|
123
|
+
// Ask the user if they want to continue
|
|
124
|
+
await new Promise((resolve) => {
|
|
125
|
+
const rl = node_readline_1.default.createInterface({
|
|
126
|
+
input: process.stdin,
|
|
127
|
+
output: process.stdout,
|
|
128
|
+
});
|
|
129
|
+
rl.question(`${chalk_1.default.blue('Do you want to test this prompt?')} (y/N): `, async (answer) => {
|
|
130
|
+
rl.close();
|
|
131
|
+
if (answer.toLowerCase().startsWith('y')) {
|
|
132
|
+
options.prompts.push(prompt);
|
|
133
|
+
numAdded++;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
logger_js_1.default.info('Skipping this prompt.');
|
|
137
|
+
}
|
|
138
|
+
resolve(true);
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
if (numAdded < 1) {
|
|
143
|
+
logger_js_1.default.info(chalk_1.default.red('No prompts selected. Aborting.'));
|
|
144
|
+
process.exit(1);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
181
147
|
for (const promptContent of options.prompts) {
|
|
182
148
|
for (const provider of options.providers) {
|
|
183
149
|
const display = options.providers.length > 1 ? `[${provider.id()}] ${promptContent}` : promptContent;
|
|
@@ -188,23 +154,27 @@ class Evaluator {
|
|
|
188
154
|
}
|
|
189
155
|
}
|
|
190
156
|
const vars = options.vars && options.vars.length > 0 ? options.vars : [{}];
|
|
191
|
-
const
|
|
157
|
+
const varsWithSpecialColsRemoved = vars.map((v) => {
|
|
192
158
|
const ret = { ...v };
|
|
193
|
-
|
|
159
|
+
Object.keys(ret).forEach((key) => {
|
|
160
|
+
if (key.startsWith('__')) {
|
|
161
|
+
delete ret[key];
|
|
162
|
+
}
|
|
163
|
+
});
|
|
194
164
|
return ret;
|
|
195
165
|
});
|
|
196
166
|
const isTest = vars[0].__expected;
|
|
197
167
|
const table = {
|
|
198
168
|
head: {
|
|
199
169
|
prompts: prompts.map((p) => p.display),
|
|
200
|
-
vars: Object.keys(
|
|
170
|
+
vars: Object.keys(varsWithSpecialColsRemoved[0]),
|
|
201
171
|
},
|
|
202
172
|
body: [],
|
|
203
173
|
};
|
|
204
174
|
let progressbar;
|
|
205
175
|
if (options.showProgressBar) {
|
|
206
176
|
const totalNumRuns = options.prompts.length * options.providers.length * (options.vars?.length || 1);
|
|
207
|
-
const cliProgress = await
|
|
177
|
+
const cliProgress = await Promise.resolve().then(() => __importStar(require('cli-progress')));
|
|
208
178
|
progressbar = new cliProgress.SingleBar({
|
|
209
179
|
format: 'Eval: [{bar}] {percentage}% | ETA: {eta}s | {value}/{total} | {provider} "{prompt}" {vars}',
|
|
210
180
|
}, cliProgress.Presets.shades_classic);
|
|
@@ -218,11 +188,13 @@ class Evaluator {
|
|
|
218
188
|
let rowIndex = 0;
|
|
219
189
|
for (const row of vars) {
|
|
220
190
|
let colIndex = 0;
|
|
191
|
+
const prependToPrompt = row.__prefix || options.prompt?.prefix || '';
|
|
192
|
+
const appendToPrompt = row.__suffix || options.prompt?.suffix || '';
|
|
221
193
|
for (const promptContent of options.prompts) {
|
|
222
194
|
for (const provider of options.providers) {
|
|
223
195
|
runEvalOptions.push({
|
|
224
196
|
provider,
|
|
225
|
-
prompt: promptContent,
|
|
197
|
+
prompt: prependToPrompt + promptContent + appendToPrompt,
|
|
226
198
|
vars: row,
|
|
227
199
|
includeProviderId: options.providers.length > 1,
|
|
228
200
|
rowIndex,
|
|
@@ -234,7 +206,7 @@ class Evaluator {
|
|
|
234
206
|
rowIndex++;
|
|
235
207
|
}
|
|
236
208
|
const results = [];
|
|
237
|
-
await
|
|
209
|
+
await async_1.default.forEachOfLimit(runEvalOptions, options.maxConcurrency || DEFAULT_MAX_CONCURRENCY, async (options, index) => {
|
|
238
210
|
const row = await this.runEval(options);
|
|
239
211
|
results.push(row);
|
|
240
212
|
if (progressbar) {
|
|
@@ -283,8 +255,9 @@ class Evaluator {
|
|
|
283
255
|
return { version: 1, results, stats: this.stats, table };
|
|
284
256
|
}
|
|
285
257
|
}
|
|
286
|
-
|
|
258
|
+
function evaluate(options) {
|
|
287
259
|
const ev = new Evaluator(options);
|
|
288
260
|
return ev.evaluate();
|
|
289
261
|
}
|
|
262
|
+
exports.evaluate = evaluate;
|
|
290
263
|
//# sourceMappingURL=evaluator.js.map
|
package/dist/evaluator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kEAAqC;AAErC,kDAA0B;AAC1B,kDAA0B;AAC1B,wDAAgC;AAEhC,4DAAiC;AACjC,mDAAuD;AAYvD,qDAAmD;AAYnD,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAElC,MAAM,SAAS;IAIb,YAAY,OAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG;YACX,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE;gBACV,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,CAAC;gBACb,MAAM,EAAE,CAAC;aACV;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EACZ,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,iBAAiB,GACF;QACf,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,cAAc,GAAG,kBAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE3D,4DAA4D;QAC5D,MAAM,aAAa,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAElF,MAAM,KAAK,GAAG;YACZ,MAAM,EAAE;gBACN,GAAG,EAAE,cAAc;gBACnB,OAAO,EAAE,aAAa;aACvB;YACD,IAAI;SACL,CAAC;QAEF,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACxD,MAAM,GAAG,GAAmB;gBAC1B,GAAG,KAAK;gBACR,QAAQ;gBACR,OAAO,EAAE,KAAK;aACf,CAAC;YACF,IAAI,QAAQ,CAAC,KAAK,EAAE;gBAClB,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;aAC5B;iBAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;gBAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU;oBACjC,CAAC,CAAC,MAAM,IAAA,oCAAoB,EAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC;oBAC5E,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACnB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;oBACrB,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,IAAI,aAAa,IAAI,CAAC,UAAU,EAAE,CAAC;iBAClE;gBACD,GAAG,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;aAChC;iBAAM;gBACL,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;gBACpB,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC;aACzB;YAED,2BAA2B;YAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,QAAQ,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,EAAE,UAAU,IAAI,CAAC,CAAC;YACzE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC;YAEjE,IAAI,GAAG,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;aACvB;YAED,OAAO,GAAG,CAAC;SACZ;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO;gBACL,GAAG,KAAK;gBACR,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;gBAClB,OAAO,EAAE,KAAK;aACf,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,IAAI,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE;YACvC,mBAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,gCAAe,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpF,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;aACzD;YAED,mBAAM,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC9C,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;gBAC/B,mBAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;gBACxE,mBAAM,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;gBACzB,mBAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;gBAExE,wCAAwC;gBACxC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC5B,MAAM,EAAE,GAAG,uBAAQ,CAAC,eAAe,CAAC;wBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;qBACvB,CAAC,CAAC;oBACH,EAAE,CAAC,QAAQ,CACT,GAAG,eAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,UAAU,EAC3D,KAAK,EAAE,MAAM,EAAE,EAAE;wBACf,EAAE,CAAC,KAAK,EAAE,CAAC;wBACX,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;4BACxC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAC7B,QAAQ,EAAE,CAAC;yBACZ;6BAAM;4BACL,mBAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;yBACtC;wBACD,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC,CACF,CAAC;gBACJ,CAAC,CAAC,CAAC;aACJ;YAED,IAAI,QAAQ,GAAG,CAAC,EAAE;gBAChB,mBAAM,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;gBACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;SACF;QAED,KAAK,MAAM,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE;YAC3C,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE;gBACxC,MAAM,OAAO,GACX,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,EAAE,KAAK,aAAa,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;gBACvF,OAAO,CAAC,IAAI,CAAC;oBACX,GAAG,EAAE,aAAa;oBAClB,OAAO;iBACR,CAAC,CAAC;aACJ;SACF;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3E,MAAM,0BAA0B,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAChD,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;oBACxB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAClC,MAAM,KAAK,GAAkB;YAC3B,IAAI,EAAE;gBACJ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBACtC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;aACjD;YACD,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,IAAI,WAAkC,CAAC;QACvC,IAAI,OAAO,CAAC,eAAe,EAAE;YAC3B,MAAM,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,wDAAa,cAAc,GAAC,CAAC;YACjD,WAAW,GAAG,IAAI,WAAW,CAAC,SAAS,CACrC;gBACE,MAAM,EACJ,4FAA4F;aAC/F,EACD,WAAW,CAAC,OAAO,CAAC,cAAc,CACnC,CAAC;YACF,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE;gBACjC,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,EAAE;gBACV,IAAI,EAAE,EAAE;aACT,CAAC,CAAC;SACJ;QAED,MAAM,cAAc,GAAqB,EAAE,CAAC;QAC5C,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,IAAI,QAAQ,GAAG,CAAC,CAAC;YAEjB,MAAM,eAAe,GAAG,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;YACrE,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;YAEpE,KAAK,MAAM,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE;gBAC3C,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE;oBACxC,cAAc,CAAC,IAAI,CAAC;wBAClB,QAAQ;wBACR,MAAM,EAAE,eAAe,GAAG,aAAa,GAAG,cAAc;wBACxD,IAAI,EAAE,GAAG;wBACT,iBAAiB,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;wBAC/C,QAAQ;wBACR,QAAQ;qBACT,CAAC,CAAC;oBACH,QAAQ,EAAE,CAAC;iBACZ;aACF;YACD,QAAQ,EAAE,CAAC;SACZ;QAED,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,MAAM,eAAK,CAAC,cAAc,CACxB,cAAc,EACd,OAAO,CAAC,cAAc,IAAI,uBAAuB,EACjD,KAAK,EAAE,OAAuB,EAAE,KAAsB,EAAE,EAAE;YACxD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAExC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAElB,IAAI,WAAW,EAAE;gBACf,WAAW,CAAC,SAAS,CAAC;oBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE;oBAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;oBACnC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;yBACrC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;yBAC5B,IAAI,CAAC,GAAG,CAAC;yBACT,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iBAChB,CAAC,CAAC;aACJ;YAED,wBAAwB;YACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;aAClD;YAED,IAAI,UAA8B,CAAC;YACnC,IAAI,MAAM,EAAE;gBACV,IAAI,GAAG,CAAC,OAAO,EAAE;oBACf,UAAU,GAAG,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;iBAClE;qBAAM;oBACL,UAAU,GAAG,UAAU,GAAG,CAAC,KAAK,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;iBACrF;aACF;iBAAM,IAAI,GAAG,CAAC,KAAK,EAAE;gBACpB,UAAU,GAAG,UAAU,GAAG,CAAC,KAAK,EAAE,CAAC;aACpC;iBAAM;gBACL,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;aACtD;YAED,sEAAsE;YACtE,uCAAuC;YACvC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACzB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG;oBACrB,OAAO,EAAE,EAAE;oBACX,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;iBACxC,CAAC;aACH;YACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;QACtD,CAAC,CACF,CAAC;QAEF,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,IAAI,EAAE,CAAC;SACpB;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;IAC3D,CAAC;CACF;AAED,SAAgB,QAAQ,CAAC,OAAwB;IAC/C,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;AACvB,CAAC;AAHD,4BAGC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
|
+
import { loadApiProvider } from './providers.js';
|
|
1
2
|
import type { ApiProvider, EvaluateOptions, EvaluateSummary } from './types.js';
|
|
3
|
+
export * from './types.js';
|
|
2
4
|
declare function evaluate(providers: (string | ApiProvider)[] | (string | ApiProvider), options: Omit<EvaluateOptions, 'providers'>): Promise<EvaluateSummary>;
|
|
3
5
|
declare const _default: {
|
|
4
6
|
evaluate: typeof evaluate;
|
|
7
|
+
assertions: {
|
|
8
|
+
matchesSimilarity: typeof import("./assertions.js").matchesSimilarity;
|
|
9
|
+
matchesLlmRubric: typeof import("./assertions.js").matchesLlmRubric;
|
|
10
|
+
};
|
|
11
|
+
providers: {
|
|
12
|
+
OpenAiCompletionProvider: typeof import("./providers/openai.js").OpenAiCompletionProvider;
|
|
13
|
+
OpenAiChatCompletionProvider: typeof import("./providers/openai.js").OpenAiChatCompletionProvider;
|
|
14
|
+
LocalAiCompletionProvider: typeof import("./providers/localai.js").LocalAiCompletionProvider;
|
|
15
|
+
LocalAiChatProvider: typeof import("./providers/localai.js").LocalAiChatProvider;
|
|
16
|
+
loadApiProvider: typeof loadApiProvider;
|
|
17
|
+
};
|
|
5
18
|
};
|
|
6
19
|
export default _default;
|
|
7
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIjD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhF,cAAc,YAAY,CAAC;AAE3B,iBAAe,QAAQ,CACrB,SAAS,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAC5D,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAC1C,OAAO,CAAC,eAAe,CAAC,CAsB1B;;;;;;;;;;;;;;;AAQD,wBAIE"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
const evaluator_js_1 = require("./evaluator.js");
|
|
21
|
+
const providers_js_1 = require("./providers.js");
|
|
22
|
+
const assertions_js_1 = __importDefault(require("./assertions.js"));
|
|
23
|
+
const providers_js_2 = __importDefault(require("./providers.js"));
|
|
24
|
+
__exportStar(require("./types.js"), exports);
|
|
3
25
|
async function evaluate(providers, options) {
|
|
4
26
|
let apiProviders = [];
|
|
5
27
|
const addProvider = async (provider) => {
|
|
6
28
|
if (typeof provider === 'string') {
|
|
7
|
-
apiProviders.push(await loadApiProvider(provider));
|
|
29
|
+
apiProviders.push(await (0, providers_js_1.loadApiProvider)(provider));
|
|
8
30
|
}
|
|
9
31
|
else {
|
|
10
32
|
apiProviders.push(provider);
|
|
@@ -18,12 +40,19 @@ async function evaluate(providers, options) {
|
|
|
18
40
|
else {
|
|
19
41
|
await addProvider(providers);
|
|
20
42
|
}
|
|
21
|
-
return
|
|
43
|
+
return (0, evaluator_js_1.evaluate)({
|
|
22
44
|
...options,
|
|
23
45
|
providers: apiProviders,
|
|
24
46
|
});
|
|
25
47
|
}
|
|
26
|
-
|
|
48
|
+
module.exports = {
|
|
49
|
+
evaluate,
|
|
50
|
+
assertions: assertions_js_1.default,
|
|
51
|
+
providers: providers_js_2.default,
|
|
52
|
+
};
|
|
53
|
+
exports.default = {
|
|
27
54
|
evaluate,
|
|
55
|
+
assertions: assertions_js_1.default,
|
|
56
|
+
providers: providers_js_2.default,
|
|
28
57
|
};
|
|
29
58
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,iDAAwD;AACxD,iDAAiD;AACjD,oEAAyC;AACzC,kEAAuC;AAIvC,6CAA2B;AAE3B,KAAK,UAAU,QAAQ,CACrB,SAA4D,EAC5D,OAA2C;IAE3C,IAAI,YAAY,GAAkB,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,KAAK,EAAE,QAA8B,EAAE,EAAE;QAC3D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,YAAY,CAAC,IAAI,CAAC,MAAM,IAAA,8BAAe,EAAC,QAAQ,CAAC,CAAC,CAAC;SACpD;aAAM;YACL,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC7B;IACH,CAAC,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC5B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC7B;KACF;SAAM;QACL,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;KAC9B;IAED,OAAO,IAAA,uBAAU,EAAC;QAChB,GAAG,OAAO;QACV,SAAS,EAAE,YAAY;KACxB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IACf,QAAQ;IACR,UAAU,EAAV,uBAAU;IACV,SAAS,EAAT,sBAAS;CACV,CAAC;AAEF,kBAAe;IACb,QAAQ;IACR,UAAU,EAAV,uBAAU;IACV,SAAS,EAAT,sBAAS;CACV,CAAC"}
|
package/dist/logger.js
CHANGED
|
@@ -1,32 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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.setLogLevel = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const winston_1 = __importDefault(require("winston"));
|
|
3
9
|
const logLevels = {
|
|
4
10
|
error: 0,
|
|
5
11
|
warn: 1,
|
|
6
12
|
info: 2,
|
|
7
13
|
debug: 3,
|
|
8
14
|
};
|
|
9
|
-
const customFormatter =
|
|
15
|
+
const customFormatter = winston_1.default.format.printf(({ level, message, ...args }) => {
|
|
10
16
|
if (level === 'error') {
|
|
11
|
-
return
|
|
17
|
+
return chalk_1.default.red(message);
|
|
12
18
|
}
|
|
13
19
|
else if (level === 'warn') {
|
|
14
|
-
return
|
|
20
|
+
return chalk_1.default.yellow(message);
|
|
15
21
|
}
|
|
16
22
|
else if (level === 'info') {
|
|
17
23
|
return message;
|
|
18
24
|
}
|
|
19
25
|
else if (level === 'debug') {
|
|
20
|
-
return
|
|
26
|
+
return chalk_1.default.cyan(message);
|
|
21
27
|
}
|
|
22
28
|
throw new Error(`Invalid log level: ${level}`);
|
|
23
29
|
});
|
|
24
|
-
const logger =
|
|
30
|
+
const logger = winston_1.default.createLogger({
|
|
25
31
|
levels: logLevels,
|
|
26
|
-
format:
|
|
27
|
-
transports: [new
|
|
32
|
+
format: winston_1.default.format.combine(winston_1.default.format.simple(), customFormatter),
|
|
33
|
+
transports: [new winston_1.default.transports.Console()],
|
|
28
34
|
});
|
|
29
|
-
|
|
35
|
+
function setLogLevel(level) {
|
|
30
36
|
if (logLevels.hasOwnProperty(level)) {
|
|
31
37
|
logger.transports[0].level = level;
|
|
32
38
|
}
|
|
@@ -34,5 +40,6 @@ export function setLogLevel(level) {
|
|
|
34
40
|
throw new Error(`Invalid log level: ${level}`);
|
|
35
41
|
}
|
|
36
42
|
}
|
|
37
|
-
|
|
43
|
+
exports.setLogLevel = setLogLevel;
|
|
44
|
+
exports.default = logger;
|
|
38
45
|
//# sourceMappingURL=logger.js.map
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,sDAA8B;AAE9B,MAAM,SAAS,GAAG;IAChB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,MAAM,eAAe,GAAG,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC5E,IAAI,KAAK,KAAK,OAAO,EAAE;QACrB,OAAO,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KAC3B;SAAM,IAAI,KAAK,KAAK,MAAM,EAAE;QAC3B,OAAO,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC9B;SAAM,IAAI,KAAK,KAAK,MAAM,EAAE;QAC3B,OAAO,OAAO,CAAC;KAChB;SAAM,IAAI,KAAK,KAAK,OAAO,EAAE;QAC5B,OAAO,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5B;IACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,iBAAO,CAAC,YAAY,CAAC;IAClC,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC;IACxE,UAAU,EAAE,CAAC,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;CAC/C,CAAC,CAAC;AAEH,SAAgB,WAAW,CAAC,KAA6B;IACvD,IAAI,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;KACpC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;KAChD;AACH,CAAC;AAND,kCAMC;AAED,kBAAe,MAAM,CAAC"}
|