promptfoo 0.5.1 → 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 +9 -4
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +39 -29
- 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 +16 -9
- 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/providers/openai.js
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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.DefaultSuggestionsProvider = exports.DefaultGradingProvider = exports.DefaultEmbeddingProvider = exports.OpenAiChatCompletionProvider = exports.OpenAiCompletionProvider = exports.OpenAiEmbeddingProvider = void 0;
|
|
7
|
+
const lru_cache_1 = require("lru-cache");
|
|
8
|
+
const logger_js_1 = __importDefault(require("../logger.js"));
|
|
9
|
+
const util_js_1 = require("../util.js");
|
|
10
|
+
const shared_js_1 = require("./shared.js");
|
|
5
11
|
const DEFAULT_OPENAI_HOST = 'api.openai.com';
|
|
6
|
-
const embeddingsCache = new LRUCache({
|
|
12
|
+
const embeddingsCache = new lru_cache_1.LRUCache({
|
|
7
13
|
max: 1000,
|
|
8
14
|
});
|
|
9
15
|
class OpenAiGenericProvider {
|
|
@@ -19,11 +25,11 @@ class OpenAiGenericProvider {
|
|
|
19
25
|
return `[OpenAI Provider ${this.modelName}]`;
|
|
20
26
|
}
|
|
21
27
|
// @ts-ignore: Prompt is not used in this implementation
|
|
22
|
-
async callApi(prompt) {
|
|
28
|
+
async callApi(prompt, options) {
|
|
23
29
|
throw new Error('Not implemented');
|
|
24
30
|
}
|
|
25
31
|
}
|
|
26
|
-
|
|
32
|
+
class OpenAiEmbeddingProvider extends OpenAiGenericProvider {
|
|
27
33
|
async callEmbeddingApi(text) {
|
|
28
34
|
if (!this.apiKey) {
|
|
29
35
|
throw new Error('OpenAI API key must be set for similarity comparison');
|
|
@@ -39,14 +45,14 @@ export class OpenAiEmbeddingProvider extends OpenAiGenericProvider {
|
|
|
39
45
|
};
|
|
40
46
|
let response, data;
|
|
41
47
|
try {
|
|
42
|
-
response = await fetchWithTimeout(`https://${this.apiHost}/v1/embeddings`, {
|
|
48
|
+
response = await (0, util_js_1.fetchWithTimeout)(`https://${this.apiHost}/v1/embeddings`, {
|
|
43
49
|
method: 'POST',
|
|
44
50
|
headers: {
|
|
45
51
|
'Content-Type': 'application/json',
|
|
46
52
|
Authorization: `Bearer ${this.apiKey}`,
|
|
47
53
|
},
|
|
48
54
|
body: JSON.stringify(body),
|
|
49
|
-
}, REQUEST_TIMEOUT_MS);
|
|
55
|
+
}, shared_js_1.REQUEST_TIMEOUT_MS);
|
|
50
56
|
data = (await response.json());
|
|
51
57
|
}
|
|
52
58
|
catch (err) {
|
|
@@ -59,7 +65,7 @@ export class OpenAiEmbeddingProvider extends OpenAiGenericProvider {
|
|
|
59
65
|
},
|
|
60
66
|
};
|
|
61
67
|
}
|
|
62
|
-
|
|
68
|
+
logger_js_1.default.debug(`\tOpenAI API response (embeddings): ${JSON.stringify(data)}`);
|
|
63
69
|
try {
|
|
64
70
|
const embedding = data?.data?.[0]?.embedding;
|
|
65
71
|
if (!embedding) {
|
|
@@ -88,36 +94,36 @@ export class OpenAiEmbeddingProvider extends OpenAiGenericProvider {
|
|
|
88
94
|
}
|
|
89
95
|
}
|
|
90
96
|
}
|
|
91
|
-
|
|
97
|
+
exports.OpenAiEmbeddingProvider = OpenAiEmbeddingProvider;
|
|
92
98
|
class OpenAiCompletionProvider extends OpenAiGenericProvider {
|
|
93
99
|
constructor(modelName, apiKey) {
|
|
94
100
|
if (!OpenAiCompletionProvider.OPENAI_COMPLETION_MODELS.includes(modelName)) {
|
|
95
|
-
|
|
101
|
+
logger_js_1.default.warn(`Using unknown OpenAI completion model: ${modelName}`);
|
|
96
102
|
}
|
|
97
103
|
super(modelName, apiKey);
|
|
104
|
+
}
|
|
105
|
+
async callApi(prompt, options) {
|
|
98
106
|
if (!this.apiKey) {
|
|
99
107
|
throw new Error('OpenAI API key is not set. Set OPENAI_API_KEY environment variable or pass it as an argument to the constructor.');
|
|
100
108
|
}
|
|
101
|
-
}
|
|
102
|
-
async callApi(prompt) {
|
|
103
109
|
const body = {
|
|
104
110
|
model: this.modelName,
|
|
105
111
|
prompt,
|
|
106
112
|
max_tokens: process.env.OPENAI_MAX_TOKENS || 1024,
|
|
107
|
-
temperature: process.env.
|
|
113
|
+
temperature: options?.temperature ?? (process.env.OPENAI_MAX_TEMPERATURE || 0),
|
|
108
114
|
stop: process.env.OPENAI_STOP ? JSON.parse(process.env.OPENAI_STOP) : undefined,
|
|
109
115
|
};
|
|
110
|
-
|
|
116
|
+
logger_js_1.default.debug(`Calling OpenAI API: ${JSON.stringify(body)}`);
|
|
111
117
|
let response, data;
|
|
112
118
|
try {
|
|
113
|
-
response = await fetchWithTimeout(`https://${this.apiHost}/v1/completions`, {
|
|
119
|
+
response = await (0, util_js_1.fetchWithTimeout)(`https://${this.apiHost}/v1/completions`, {
|
|
114
120
|
method: 'POST',
|
|
115
121
|
headers: {
|
|
116
122
|
'Content-Type': 'application/json',
|
|
117
123
|
Authorization: `Bearer ${this.apiKey}`,
|
|
118
124
|
},
|
|
119
125
|
body: JSON.stringify(body),
|
|
120
|
-
}, REQUEST_TIMEOUT_MS);
|
|
126
|
+
}, shared_js_1.REQUEST_TIMEOUT_MS);
|
|
121
127
|
data = (await response.json());
|
|
122
128
|
}
|
|
123
129
|
catch (err) {
|
|
@@ -125,7 +131,7 @@ class OpenAiCompletionProvider extends OpenAiGenericProvider {
|
|
|
125
131
|
error: `API call error: ${String(err)}`,
|
|
126
132
|
};
|
|
127
133
|
}
|
|
128
|
-
|
|
134
|
+
logger_js_1.default.debug(`\tOpenAI API response: ${JSON.stringify(data)}`);
|
|
129
135
|
try {
|
|
130
136
|
return {
|
|
131
137
|
output: data.choices[0].text,
|
|
@@ -150,18 +156,19 @@ OpenAiCompletionProvider.OPENAI_COMPLETION_MODELS = [
|
|
|
150
156
|
'text-babbage-001',
|
|
151
157
|
'text-ada-001',
|
|
152
158
|
];
|
|
153
|
-
|
|
159
|
+
exports.OpenAiCompletionProvider = OpenAiCompletionProvider;
|
|
154
160
|
class OpenAiChatCompletionProvider extends OpenAiGenericProvider {
|
|
155
161
|
constructor(modelName, apiKey) {
|
|
156
162
|
if (!OpenAiChatCompletionProvider.OPENAI_CHAT_MODELS.includes(modelName)) {
|
|
157
|
-
|
|
163
|
+
logger_js_1.default.warn(`Using unknown OpenAI chat model: ${modelName}`);
|
|
158
164
|
}
|
|
159
165
|
super(modelName, apiKey);
|
|
166
|
+
}
|
|
167
|
+
// TODO(ian): support passing in `messages` directly
|
|
168
|
+
async callApi(prompt, options) {
|
|
160
169
|
if (!this.apiKey) {
|
|
161
170
|
throw new Error('OpenAI API key is not set. Set OPENAI_API_KEY environment variable or pass it as an argument to the constructor.');
|
|
162
171
|
}
|
|
163
|
-
}
|
|
164
|
-
async callApi(prompt) {
|
|
165
172
|
let messages;
|
|
166
173
|
try {
|
|
167
174
|
// User can specify `messages` payload as JSON, or we'll just put the
|
|
@@ -175,19 +182,19 @@ class OpenAiChatCompletionProvider extends OpenAiGenericProvider {
|
|
|
175
182
|
model: this.modelName,
|
|
176
183
|
messages: messages,
|
|
177
184
|
max_tokens: process.env.OPENAI_MAX_TOKENS || 1024,
|
|
178
|
-
temperature: process.env.OPENAI_MAX_TEMPERATURE || 0,
|
|
185
|
+
temperature: options?.temperature ?? (process.env.OPENAI_MAX_TEMPERATURE || 0),
|
|
179
186
|
};
|
|
180
|
-
|
|
187
|
+
logger_js_1.default.debug(`Calling OpenAI API: ${JSON.stringify(body)}`);
|
|
181
188
|
let response, data;
|
|
182
189
|
try {
|
|
183
|
-
response = await fetchWithTimeout(`https://${this.apiHost}/v1/chat/completions`, {
|
|
190
|
+
response = await (0, util_js_1.fetchWithTimeout)(`https://${this.apiHost}/v1/chat/completions`, {
|
|
184
191
|
method: 'POST',
|
|
185
192
|
headers: {
|
|
186
193
|
'Content-Type': 'application/json',
|
|
187
194
|
Authorization: `Bearer ${this.apiKey}`,
|
|
188
195
|
},
|
|
189
196
|
body: JSON.stringify(body),
|
|
190
|
-
}, REQUEST_TIMEOUT_MS);
|
|
197
|
+
}, shared_js_1.REQUEST_TIMEOUT_MS);
|
|
191
198
|
data = (await response.json());
|
|
192
199
|
}
|
|
193
200
|
catch (err) {
|
|
@@ -195,7 +202,7 @@ class OpenAiChatCompletionProvider extends OpenAiGenericProvider {
|
|
|
195
202
|
error: `API call error: ${String(err)}`,
|
|
196
203
|
};
|
|
197
204
|
}
|
|
198
|
-
|
|
205
|
+
logger_js_1.default.debug(`\tOpenAI API response: ${JSON.stringify(data)}`);
|
|
199
206
|
try {
|
|
200
207
|
return {
|
|
201
208
|
output: data.choices[0].message.content,
|
|
@@ -221,5 +228,8 @@ OpenAiChatCompletionProvider.OPENAI_CHAT_MODELS = [
|
|
|
221
228
|
'gpt-3.5-turbo',
|
|
222
229
|
'gpt-3.5-turbo-0301',
|
|
223
230
|
];
|
|
224
|
-
|
|
231
|
+
exports.OpenAiChatCompletionProvider = OpenAiChatCompletionProvider;
|
|
232
|
+
exports.DefaultEmbeddingProvider = new OpenAiEmbeddingProvider('text-embedding-ada-002');
|
|
233
|
+
exports.DefaultGradingProvider = new OpenAiChatCompletionProvider('gpt-4');
|
|
234
|
+
exports.DefaultSuggestionsProvider = new OpenAiChatCompletionProvider('gpt-4');
|
|
225
235
|
//# sourceMappingURL=openai.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/providers/shared.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/providers/shared.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,QAEpB,CAAC"}
|
package/dist/providers/shared.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.REQUEST_TIMEOUT_MS = void 0;
|
|
4
|
+
exports.REQUEST_TIMEOUT_MS = process.env.REQUEST_TIMEOUT_MS
|
|
2
5
|
? parseInt(process.env.REQUEST_TIMEOUT_MS, 10)
|
|
3
|
-
:
|
|
6
|
+
: 300000;
|
|
4
7
|
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/providers/shared.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/providers.d.ts
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
import { ApiProvider } from './types.js';
|
|
2
|
+
import { OpenAiCompletionProvider, OpenAiChatCompletionProvider } from './providers/openai.js';
|
|
3
|
+
import { LocalAiCompletionProvider, LocalAiChatProvider } from './providers/localai.js';
|
|
2
4
|
export declare function loadApiProvider(providerPath: string): Promise<ApiProvider>;
|
|
5
|
+
declare const _default: {
|
|
6
|
+
OpenAiCompletionProvider: typeof OpenAiCompletionProvider;
|
|
7
|
+
OpenAiChatCompletionProvider: typeof OpenAiChatCompletionProvider;
|
|
8
|
+
LocalAiCompletionProvider: typeof LocalAiCompletionProvider;
|
|
9
|
+
LocalAiChatProvider: typeof LocalAiChatProvider;
|
|
10
|
+
loadApiProvider: typeof loadApiProvider;
|
|
11
|
+
};
|
|
12
|
+
export default _default;
|
|
3
13
|
//# sourceMappingURL=providers.d.ts.map
|
package/dist/providers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAExF,wBAAsB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAuChF;;;;;;;;AAED,wBAME"}
|
package/dist/providers.js
CHANGED
|
@@ -1,23 +1,52 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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.loadApiProvider = void 0;
|
|
30
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
31
|
+
const openai_js_1 = require("./providers/openai.js");
|
|
32
|
+
const localai_js_1 = require("./providers/localai.js");
|
|
33
|
+
async function loadApiProvider(providerPath) {
|
|
5
34
|
if (providerPath?.startsWith('openai:')) {
|
|
6
35
|
// Load OpenAI module
|
|
7
36
|
const options = providerPath.split(':');
|
|
8
37
|
const modelType = options[1];
|
|
9
38
|
const modelName = options[2];
|
|
10
39
|
if (modelType === 'chat') {
|
|
11
|
-
return new OpenAiChatCompletionProvider(modelName || 'gpt-3.5-turbo');
|
|
40
|
+
return new openai_js_1.OpenAiChatCompletionProvider(modelName || 'gpt-3.5-turbo');
|
|
12
41
|
}
|
|
13
42
|
else if (modelType === 'completion') {
|
|
14
|
-
return new OpenAiCompletionProvider(modelName || 'text-davinci-003');
|
|
43
|
+
return new openai_js_1.OpenAiCompletionProvider(modelName || 'text-davinci-003');
|
|
15
44
|
}
|
|
16
|
-
else if (OpenAiChatCompletionProvider.OPENAI_CHAT_MODELS.includes(modelType)) {
|
|
17
|
-
return new OpenAiChatCompletionProvider(modelType);
|
|
45
|
+
else if (openai_js_1.OpenAiChatCompletionProvider.OPENAI_CHAT_MODELS.includes(modelType)) {
|
|
46
|
+
return new openai_js_1.OpenAiChatCompletionProvider(modelType);
|
|
18
47
|
}
|
|
19
|
-
else if (OpenAiCompletionProvider.OPENAI_COMPLETION_MODELS.includes(modelType)) {
|
|
20
|
-
return new OpenAiCompletionProvider(modelType);
|
|
48
|
+
else if (openai_js_1.OpenAiCompletionProvider.OPENAI_COMPLETION_MODELS.includes(modelType)) {
|
|
49
|
+
return new openai_js_1.OpenAiCompletionProvider(modelType);
|
|
21
50
|
}
|
|
22
51
|
else {
|
|
23
52
|
throw new Error(`Unknown OpenAI model type: ${modelType}. Use one of the following providers: openai:chat:<model name>, openai:completion:<model name>`);
|
|
@@ -28,17 +57,25 @@ export async function loadApiProvider(providerPath) {
|
|
|
28
57
|
const modelType = options[1];
|
|
29
58
|
const modelName = options[2];
|
|
30
59
|
if (modelType === 'chat') {
|
|
31
|
-
return new LocalAiChatProvider(modelName);
|
|
60
|
+
return new localai_js_1.LocalAiChatProvider(modelName);
|
|
32
61
|
}
|
|
33
62
|
else if (modelType === 'completion') {
|
|
34
|
-
return new LocalAiCompletionProvider(modelName);
|
|
63
|
+
return new localai_js_1.LocalAiCompletionProvider(modelName);
|
|
35
64
|
}
|
|
36
65
|
else {
|
|
37
|
-
return new LocalAiChatProvider(modelType);
|
|
66
|
+
return new localai_js_1.LocalAiChatProvider(modelType);
|
|
38
67
|
}
|
|
39
68
|
}
|
|
40
69
|
// Load custom module
|
|
41
|
-
const CustomApiProvider = (await
|
|
70
|
+
const CustomApiProvider = (await Promise.resolve(`${node_path_1.default.join(process.cwd(), providerPath)}`).then(s => __importStar(require(s)))).default;
|
|
42
71
|
return new CustomApiProvider();
|
|
43
72
|
}
|
|
73
|
+
exports.loadApiProvider = loadApiProvider;
|
|
74
|
+
exports.default = {
|
|
75
|
+
OpenAiCompletionProvider: openai_js_1.OpenAiCompletionProvider,
|
|
76
|
+
OpenAiChatCompletionProvider: openai_js_1.OpenAiChatCompletionProvider,
|
|
77
|
+
LocalAiCompletionProvider: localai_js_1.LocalAiCompletionProvider,
|
|
78
|
+
LocalAiChatProvider: localai_js_1.LocalAiChatProvider,
|
|
79
|
+
loadApiProvider,
|
|
80
|
+
};
|
|
44
81
|
//# sourceMappingURL=providers.js.map
|
package/dist/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA6B;AAI7B,qDAA+F;AAC/F,uDAAwF;AAEjF,KAAK,UAAU,eAAe,CAAC,YAAoB;IACxD,IAAI,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE;QACvC,qBAAqB;QACrB,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE7B,IAAI,SAAS,KAAK,MAAM,EAAE;YACxB,OAAO,IAAI,wCAA4B,CAAC,SAAS,IAAI,eAAe,CAAC,CAAC;SACvE;aAAM,IAAI,SAAS,KAAK,YAAY,EAAE;YACrC,OAAO,IAAI,oCAAwB,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC;SACtE;aAAM,IAAI,wCAA4B,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAC9E,OAAO,IAAI,wCAA4B,CAAC,SAAS,CAAC,CAAC;SACpD;aAAM,IAAI,oCAAwB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAChF,OAAO,IAAI,oCAAwB,CAAC,SAAS,CAAC,CAAC;SAChD;aAAM;YACL,MAAM,IAAI,KAAK,CACb,8BAA8B,SAAS,gGAAgG,CACxI,CAAC;SACH;KACF;IAED,IAAI,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE;QACxC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE7B,IAAI,SAAS,KAAK,MAAM,EAAE;YACxB,OAAO,IAAI,gCAAmB,CAAC,SAAS,CAAC,CAAC;SAC3C;aAAM,IAAI,SAAS,KAAK,YAAY,EAAE;YACrC,OAAO,IAAI,sCAAyB,CAAC,SAAS,CAAC,CAAC;SACjD;aAAM;YACL,OAAO,IAAI,gCAAmB,CAAC,SAAS,CAAC,CAAC;SAC3C;KACF;IAED,qBAAqB;IACrB,MAAM,iBAAiB,GAAG,CAAC,yBAAa,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,uCAAC,CAAC,CAAC,OAAO,CAAC;IACzF,OAAO,IAAI,iBAAiB,EAAE,CAAC;AACjC,CAAC;AAvCD,0CAuCC;AAED,kBAAe;IACb,wBAAwB,EAAxB,oCAAwB;IACxB,4BAA4B,EAA5B,wCAA4B;IAC5B,yBAAyB,EAAzB,sCAAyB;IACzB,mBAAmB,EAAnB,gCAAmB;IACnB,eAAe;CAChB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TokenUsage } from './types';
|
|
2
|
+
interface GeneratePromptsOutput {
|
|
3
|
+
prompts?: string[];
|
|
4
|
+
error?: string;
|
|
5
|
+
tokensUsed: TokenUsage;
|
|
6
|
+
}
|
|
7
|
+
export declare function generatePrompts(prompt: string, num: number): Promise<GeneratePromptsOutput>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=suggestions.d.ts.map
|
|
@@ -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,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generatePrompts = void 0;
|
|
4
|
+
const prompts_1 = require("./prompts");
|
|
5
|
+
const openai_1 = require("./providers/openai");
|
|
6
|
+
const DEFAULT_TEMPERATURE = 0.9;
|
|
7
|
+
async function generatePrompts(prompt, num) {
|
|
8
|
+
const provider = openai_1.DefaultSuggestionsProvider;
|
|
9
|
+
const resp = await provider.callApi(JSON.stringify([
|
|
10
|
+
prompts_1.SUGGEST_PROMPTS_SYSTEM_MESSAGE,
|
|
11
|
+
{
|
|
12
|
+
role: 'user',
|
|
13
|
+
content: 'Generate a variant for the following prompt:',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
role: 'user',
|
|
17
|
+
content: prompt,
|
|
18
|
+
},
|
|
19
|
+
]), {
|
|
20
|
+
temperature: DEFAULT_TEMPERATURE,
|
|
21
|
+
});
|
|
22
|
+
if (resp.error || !resp.output) {
|
|
23
|
+
return {
|
|
24
|
+
error: resp.error || 'Unknown error',
|
|
25
|
+
tokensUsed: {
|
|
26
|
+
total: resp.tokenUsage?.total || 0,
|
|
27
|
+
prompt: resp.tokenUsage?.prompt || 0,
|
|
28
|
+
completion: resp.tokenUsage?.completion || 0,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
return {
|
|
34
|
+
prompts: [resp.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
|
+
catch (err) {
|
|
43
|
+
return {
|
|
44
|
+
error: `Output is not valid JSON: ${resp.output}`,
|
|
45
|
+
tokensUsed: {
|
|
46
|
+
total: resp.tokenUsage?.total || 0,
|
|
47
|
+
prompt: resp.tokenUsage?.prompt || 0,
|
|
48
|
+
completion: resp.tokenUsage?.completion || 0,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.generatePrompts = generatePrompts;
|
|
54
|
+
//# sourceMappingURL=suggestions.js.map
|
|
@@ -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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -7,9 +7,12 @@ export interface CommandLineOptions {
|
|
|
7
7
|
verbose?: boolean;
|
|
8
8
|
maxConcurrency?: string;
|
|
9
9
|
grader?: string;
|
|
10
|
-
view?:
|
|
10
|
+
view?: string;
|
|
11
11
|
noWrite?: boolean;
|
|
12
12
|
tableCellMaxLength?: string;
|
|
13
|
+
generateSuggestions?: boolean;
|
|
14
|
+
promptPrefix?: string;
|
|
15
|
+
promptSuffix?: string;
|
|
13
16
|
}
|
|
14
17
|
export interface ApiProvider {
|
|
15
18
|
id: () => string;
|
|
@@ -36,7 +39,12 @@ export interface CsvRow {
|
|
|
36
39
|
export type VarMapping = Record<string, string>;
|
|
37
40
|
export interface GradingConfig {
|
|
38
41
|
prompt?: string;
|
|
39
|
-
provider
|
|
42
|
+
provider?: string | ApiProvider;
|
|
43
|
+
}
|
|
44
|
+
export interface PromptConfig {
|
|
45
|
+
prefix?: string;
|
|
46
|
+
suffix?: string;
|
|
47
|
+
generateSuggestions?: boolean;
|
|
40
48
|
}
|
|
41
49
|
export interface EvaluateOptions {
|
|
42
50
|
providers: ApiProvider[];
|
|
@@ -45,6 +53,7 @@ export interface EvaluateOptions {
|
|
|
45
53
|
maxConcurrency?: number;
|
|
46
54
|
showProgressBar?: boolean;
|
|
47
55
|
grading?: GradingConfig;
|
|
56
|
+
prompt?: PromptConfig;
|
|
48
57
|
}
|
|
49
58
|
export interface Prompt {
|
|
50
59
|
raw: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
package/dist/util.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CsvRow } from './types.js';
|
|
2
2
|
import type { RequestInfo, RequestInit, Response } from 'node-fetch';
|
|
3
3
|
import type { EvaluateSummary } from './types.js';
|
|
4
|
-
export declare function readPrompts(
|
|
4
|
+
export declare function readPrompts(promptPathsOrGlobs: string[]): string[];
|
|
5
5
|
export declare function readVars(varsPath: string): CsvRow[];
|
|
6
6
|
export declare function writeOutput(outputPath: string, summary: EvaluateSummary): void;
|
|
7
7
|
export declare function fetchWithTimeout(url: RequestInfo, options: RequestInit | undefined, timeout: number): Promise<Response>;
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAOpC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAYlD,wBAAgB,WAAW,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAsBlE;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAanD;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CA2B9E;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,WAAW,EAChB,OAAO,yBAAkB,EACzB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,QAAQ,CAAC,CAwBnB;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,QAS1D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAQ9D"}
|