promptfoo 0.95.0 → 0.96.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 +2 -1
- package/dist/package.json +13 -11
- package/dist/src/app/assets/{index-zXzgAsKj.js → index-Dwt7E2K_.js} +178 -178
- package/dist/src/app/assets/{index.es-Jztl1qad.js → index.es-CooNf3HB.js} +1 -1
- package/dist/src/app/assets/{sync-BJBBGzPI.js → sync-Bj1WJrHQ.js} +1 -1
- package/dist/src/app/index.html +1 -1
- package/dist/src/assertions/bleu.d.ts +33 -0
- package/dist/src/assertions/bleu.d.ts.map +1 -0
- package/dist/src/assertions/bleu.js +116 -0
- package/dist/src/assertions/bleu.js.map +1 -0
- package/dist/src/assertions/index.d.ts +1 -12
- package/dist/src/assertions/index.d.ts.map +1 -1
- package/dist/src/assertions/index.js +20 -250
- package/dist/src/assertions/index.js.map +1 -1
- package/dist/src/assertions/json.d.ts +8 -0
- package/dist/src/assertions/json.d.ts.map +1 -0
- package/dist/src/assertions/json.js +121 -0
- package/dist/src/assertions/json.js.map +1 -0
- package/dist/src/assertions/perplexity.d.ts +4 -0
- package/dist/src/assertions/perplexity.d.ts.map +1 -0
- package/dist/src/assertions/perplexity.js +40 -0
- package/dist/src/assertions/perplexity.js.map +1 -0
- package/dist/src/assertions/sql.d.ts +4 -0
- package/dist/src/assertions/sql.d.ts.map +1 -0
- package/dist/src/assertions/sql.js +87 -0
- package/dist/src/assertions/sql.js.map +1 -0
- package/dist/src/assertions/xml.d.ts +9 -0
- package/dist/src/assertions/xml.d.ts.map +1 -0
- package/dist/src/assertions/xml.js +57 -0
- package/dist/src/assertions/xml.js.map +1 -0
- package/dist/src/commands/eval/filterTests.d.ts +1 -0
- package/dist/src/commands/eval/filterTests.d.ts.map +1 -1
- package/dist/src/commands/eval/filterTests.js +14 -1
- package/dist/src/commands/eval/filterTests.js.map +1 -1
- package/dist/src/commands/eval.d.ts.map +1 -1
- package/dist/src/commands/eval.js +14 -3
- package/dist/src/commands/eval.js.map +1 -1
- package/dist/src/commands/import.d.ts.map +1 -1
- package/dist/src/commands/import.js +1 -0
- package/dist/src/commands/import.js.map +1 -1
- package/dist/src/commands/list.d.ts.map +1 -1
- package/dist/src/commands/list.js +15 -0
- package/dist/src/commands/list.js.map +1 -1
- package/dist/src/csv.d.ts.map +1 -1
- package/dist/src/csv.js +9 -4
- package/dist/src/csv.js.map +1 -1
- package/dist/src/database/tables.d.ts +189 -1
- package/dist/src/database/tables.d.ts.map +1 -1
- package/dist/src/envars.d.ts +9 -0
- package/dist/src/envars.d.ts.map +1 -1
- package/dist/src/envars.js.map +1 -1
- package/dist/src/evaluator.js +2 -2
- package/dist/src/evaluator.js.map +1 -1
- package/dist/src/evaluatorHelpers.d.ts.map +1 -1
- package/dist/src/evaluatorHelpers.js +4 -0
- package/dist/src/evaluatorHelpers.js.map +1 -1
- package/dist/src/globalConfig/accounts.d.ts +1 -0
- package/dist/src/globalConfig/accounts.d.ts.map +1 -1
- package/dist/src/globalConfig/accounts.js +24 -0
- package/dist/src/globalConfig/accounts.js.map +1 -1
- package/dist/src/index.d.ts +74 -68
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/onboarding.js +8 -8
- package/dist/src/onboarding.js.map +1 -1
- package/dist/src/providers/adaline.gateway.d.ts.map +1 -1
- package/dist/src/providers/adaline.gateway.js +4 -4
- package/dist/src/providers/adaline.gateway.js.map +1 -1
- package/dist/src/providers/anthropic.d.ts.map +1 -1
- package/dist/src/providers/anthropic.js +21 -0
- package/dist/src/providers/anthropic.js.map +1 -1
- package/dist/src/providers/{azureopenai.d.ts → azure.d.ts} +13 -13
- package/dist/src/providers/azure.d.ts.map +1 -0
- package/dist/src/providers/{azureopenai.js → azure.js} +64 -42
- package/dist/src/providers/azure.js.map +1 -0
- package/dist/src/providers/{azureopenaiUtil.d.ts → azureUtil.d.ts} +1 -1
- package/dist/src/providers/azureUtil.d.ts.map +1 -0
- package/dist/src/providers/{azureopenaiUtil.js → azureUtil.js} +3 -3
- package/dist/src/providers/azureUtil.js.map +1 -0
- package/dist/src/providers/bedrock.d.ts +5 -3
- package/dist/src/providers/bedrock.d.ts.map +1 -1
- package/dist/src/providers/bedrock.js +37 -8
- package/dist/src/providers/bedrock.js.map +1 -1
- package/dist/src/providers/defaults.d.ts.map +1 -1
- package/dist/src/providers/defaults.js +36 -0
- package/dist/src/providers/defaults.js.map +1 -1
- package/dist/src/providers/portkey.d.ts +3 -2
- package/dist/src/providers/portkey.d.ts.map +1 -1
- package/dist/src/providers/portkey.js +17 -10
- package/dist/src/providers/portkey.js.map +1 -1
- package/dist/src/providers/promptfoo.js +2 -2
- package/dist/src/providers/promptfoo.js.map +1 -1
- package/dist/src/providers.d.ts +9 -5
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js +16 -11
- package/dist/src/providers.js.map +1 -1
- package/dist/src/redteam/commands/generate.d.ts.map +1 -1
- package/dist/src/redteam/commands/generate.js +5 -1
- package/dist/src/redteam/commands/generate.js.map +1 -1
- package/dist/src/redteam/commands/init.d.ts +11 -0
- package/dist/src/redteam/commands/init.d.ts.map +1 -1
- package/dist/src/redteam/commands/init.js +47 -12
- package/dist/src/redteam/commands/init.js.map +1 -1
- package/dist/src/redteam/commands/poison.d.ts +3 -0
- package/dist/src/redteam/commands/poison.d.ts.map +1 -0
- package/dist/src/redteam/commands/poison.js +165 -0
- package/dist/src/redteam/commands/poison.js.map +1 -0
- package/dist/src/redteam/commands/run.d.ts.map +1 -1
- package/dist/src/redteam/commands/run.js +2 -0
- package/dist/src/redteam/commands/run.js.map +1 -1
- package/dist/src/redteam/constants.d.ts +2 -2
- package/dist/src/redteam/constants.d.ts.map +1 -1
- package/dist/src/redteam/constants.js +13 -4
- package/dist/src/redteam/constants.js.map +1 -1
- package/dist/src/redteam/extraction/util.js +1 -1
- package/dist/src/redteam/extraction/util.js.map +1 -1
- package/dist/src/redteam/graders.d.ts +34 -32
- package/dist/src/redteam/graders.d.ts.map +1 -1
- package/dist/src/redteam/graders.js +34 -33
- package/dist/src/redteam/graders.js.map +1 -1
- package/dist/src/redteam/index.d.ts.map +1 -1
- package/dist/src/redteam/index.js +9 -2
- package/dist/src/redteam/index.js.map +1 -1
- package/dist/src/redteam/plugins/bfla.d.ts.map +1 -1
- package/dist/src/redteam/plugins/bfla.js +5 -3
- package/dist/src/redteam/plugins/bfla.js.map +1 -1
- package/dist/src/redteam/plugins/bola.js +3 -3
- package/dist/src/redteam/plugins/index.d.ts.map +1 -1
- package/dist/src/redteam/plugins/index.js +3 -2
- package/dist/src/redteam/plugins/index.js.map +1 -1
- package/dist/src/redteam/plugins/intent.d.ts +22 -0
- package/dist/src/redteam/plugins/intent.d.ts.map +1 -0
- package/dist/src/redteam/plugins/intent.js +100 -0
- package/dist/src/redteam/plugins/intent.js.map +1 -0
- package/dist/src/redteam/plugins/pii.d.ts.map +1 -1
- package/dist/src/redteam/plugins/pii.js +21 -14
- package/dist/src/redteam/plugins/pii.js.map +1 -1
- package/dist/src/redteam/plugins/rbac.d.ts.map +1 -1
- package/dist/src/redteam/plugins/rbac.js +5 -4
- package/dist/src/redteam/plugins/rbac.js.map +1 -1
- package/dist/src/redteam/plugins/sqlInjection.d.ts.map +1 -1
- package/dist/src/redteam/plugins/sqlInjection.js +13 -4
- package/dist/src/redteam/plugins/sqlInjection.js.map +1 -1
- package/dist/src/redteam/providers/crescendo/index.d.ts.map +1 -1
- package/dist/src/redteam/providers/crescendo/index.js +6 -4
- package/dist/src/redteam/providers/crescendo/index.js.map +1 -1
- package/dist/src/redteam/providers/goat.js +1 -1
- package/dist/src/redteam/providers/goat.js.map +1 -1
- package/dist/src/redteam/providers/iterative.d.ts.map +1 -1
- package/dist/src/redteam/providers/iterative.js +4 -2
- package/dist/src/redteam/providers/iterative.js.map +1 -1
- package/dist/src/redteam/providers/iterativeImage.d.ts.map +1 -1
- package/dist/src/redteam/providers/iterativeImage.js +4 -2
- package/dist/src/redteam/providers/iterativeImage.js.map +1 -1
- package/dist/src/redteam/providers/iterativeTree.d.ts +3 -1
- package/dist/src/redteam/providers/iterativeTree.d.ts.map +1 -1
- package/dist/src/redteam/providers/iterativeTree.js +5 -3
- package/dist/src/redteam/providers/iterativeTree.js.map +1 -1
- package/dist/src/redteam/providers/shared.d.ts +2 -2
- package/dist/src/redteam/providers/shared.d.ts.map +1 -1
- package/dist/src/redteam/providers/shared.js +2 -2
- package/dist/src/redteam/providers/shared.js.map +1 -1
- package/dist/src/redteam/strategies/mathPrompt.js +1 -1
- package/dist/src/redteam/strategies/mathPrompt.js.map +1 -1
- package/dist/src/redteam/strategies/multilingual.js +1 -1
- package/dist/src/redteam/strategies/multilingual.js.map +1 -1
- package/dist/src/redteam/types.d.ts +1 -0
- package/dist/src/redteam/types.d.ts.map +1 -1
- package/dist/src/remoteGrading.js +1 -1
- package/dist/src/remoteGrading.js.map +1 -1
- package/dist/src/telemetry.d.ts +2 -2
- package/dist/src/types/index.d.ts +4630 -11
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +2 -0
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/providers.d.ts +12 -0
- package/dist/src/types/providers.d.ts.map +1 -1
- package/dist/src/types/providers.js.map +1 -1
- package/dist/src/util/config/load.d.ts +1 -1
- package/dist/src/util/config/load.d.ts.map +1 -1
- package/dist/src/util/config/load.js +14 -2
- package/dist/src/util/config/load.js.map +1 -1
- package/dist/src/util/index.d.ts +34 -0
- package/dist/src/util/index.d.ts.map +1 -1
- package/dist/src/validators/providers.d.ts +391 -0
- package/dist/src/validators/providers.d.ts.map +1 -1
- package/dist/src/validators/providers.js +18 -0
- package/dist/src/validators/providers.js.map +1 -1
- package/dist/src/validators/redteam.d.ts +136 -0
- package/dist/src/validators/redteam.d.ts.map +1 -1
- package/dist/test/assertions/bleu.test.d.ts +2 -0
- package/dist/test/assertions/bleu.test.d.ts.map +1 -0
- package/dist/test/assertions/bleu.test.js +137 -0
- package/dist/test/assertions/bleu.test.js.map +1 -0
- package/dist/test/assertions/index.test.js +276 -297
- package/dist/test/assertions/index.test.js.map +1 -1
- package/dist/test/assertions/json.test.d.ts +2 -0
- package/dist/test/assertions/json.test.d.ts.map +1 -0
- package/dist/test/assertions/json.test.js +36 -0
- package/dist/test/assertions/json.test.js.map +1 -0
- package/dist/test/assertions/sql.test.d.ts +2 -0
- package/dist/test/assertions/sql.test.d.ts.map +1 -0
- package/dist/test/{is-sql-tests/node-sql-parser.test.js → assertions/sql.test.js} +13 -13
- package/dist/test/assertions/sql.test.js.map +1 -0
- package/dist/test/commands/eval/filterTests.test.js +30 -0
- package/dist/test/commands/eval/filterTests.test.js.map +1 -1
- package/dist/test/factories/evalFactory.d.ts +155 -1
- package/dist/test/factories/evalFactory.d.ts.map +1 -1
- package/dist/test/onboarding.test.js +126 -1
- package/dist/test/onboarding.test.js.map +1 -1
- package/dist/test/providers/anthropic.test.js +81 -0
- package/dist/test/providers/anthropic.test.js.map +1 -1
- package/dist/test/providers/azure.test.js +22 -25
- package/dist/test/providers/azure.test.js.map +1 -1
- package/dist/test/providers/bedrock.test.js +178 -55
- package/dist/test/providers/bedrock.test.js.map +1 -1
- package/dist/test/providers/index.test.js +7 -7
- package/dist/test/providers/index.test.js.map +1 -1
- package/dist/test/providers/portkey.test.d.ts +2 -0
- package/dist/test/providers/portkey.test.d.ts.map +1 -0
- package/dist/test/providers/portkey.test.js +46 -0
- package/dist/test/providers/portkey.test.js.map +1 -0
- package/dist/test/redteam/commands/init.test.d.ts +2 -0
- package/dist/test/redteam/commands/init.test.d.ts.map +1 -0
- package/dist/test/redteam/commands/init.test.js +109 -0
- package/dist/test/redteam/commands/init.test.js.map +1 -0
- package/dist/test/redteam/plugins/pluginDocumentation.test.js +4 -1
- package/dist/test/redteam/plugins/pluginDocumentation.test.js.map +1 -1
- package/dist/test/redteam/providers/goat.test.js +1 -1
- package/dist/test/redteam/providers/goat.test.js.map +1 -1
- package/dist/test/redteam/providers/iterativeTree.test.js +8 -3
- package/dist/test/redteam/providers/iterativeTree.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -11
- package/dist/src/providers/azureopenai.d.ts.map +0 -1
- package/dist/src/providers/azureopenai.js.map +0 -1
- package/dist/src/providers/azureopenaiUtil.d.ts.map +0 -1
- package/dist/src/providers/azureopenaiUtil.js.map +0 -1
- package/dist/test/is-sql-tests/node-sql-parser.test.d.ts +0 -2
- package/dist/test/is-sql-tests/node-sql-parser.test.d.ts.map +0 -1
- package/dist/test/is-sql-tests/node-sql-parser.test.js.map +0 -1
|
@@ -27,18 +27,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.MODEL_GRADED_ASSERTION_TYPES = void 0;
|
|
30
|
-
exports.createAjv = createAjv;
|
|
31
|
-
exports.validateXml = validateXml;
|
|
32
|
-
exports.containsXml = containsXml;
|
|
33
|
-
exports.isSql = isSql;
|
|
34
30
|
exports.runAssertion = runAssertion;
|
|
35
31
|
exports.runAssertions = runAssertions;
|
|
36
32
|
exports.runCompareAssertion = runCompareAssertion;
|
|
37
33
|
exports.readAssertions = readAssertions;
|
|
38
|
-
const ajv_1 = __importDefault(require("ajv"));
|
|
39
|
-
const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
40
34
|
const async_1 = __importDefault(require("async"));
|
|
41
|
-
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
42
35
|
const fastest_levenshtein_1 = require("fastest-levenshtein");
|
|
43
36
|
const fs_1 = __importDefault(require("fs"));
|
|
44
37
|
const rouge = __importStar(require("js-rouge"));
|
|
@@ -61,11 +54,15 @@ const graders_1 = require("../redteam/graders");
|
|
|
61
54
|
const telemetry_1 = __importDefault(require("../telemetry"));
|
|
62
55
|
const types_1 = require("../types");
|
|
63
56
|
const file_1 = require("../util/file");
|
|
64
|
-
const json_1 = require("../util/json");
|
|
65
57
|
const templates_1 = require("../util/templates");
|
|
66
58
|
const transform_1 = require("../util/transform");
|
|
67
59
|
const AssertionsResult_1 = require("./AssertionsResult");
|
|
60
|
+
const bleu_1 = require("./bleu");
|
|
61
|
+
const json_1 = require("./json");
|
|
62
|
+
const perplexity_1 = require("./perplexity");
|
|
63
|
+
const sql_1 = require("./sql");
|
|
68
64
|
const utils_1 = require("./utils");
|
|
65
|
+
const xml_1 = require("./xml");
|
|
69
66
|
const ASSERTIONS_MAX_CONCURRENCY = (0, envars_1.getEnvInt)('PROMPTFOO_ASSERTIONS_MAX_CONCURRENCY', 3);
|
|
70
67
|
exports.MODEL_GRADED_ASSERTION_TYPES = new Set([
|
|
71
68
|
'answer-relevance',
|
|
@@ -77,15 +74,6 @@ exports.MODEL_GRADED_ASSERTION_TYPES = new Set([
|
|
|
77
74
|
'factuality',
|
|
78
75
|
'model-graded-factuality',
|
|
79
76
|
]);
|
|
80
|
-
function createAjv() {
|
|
81
|
-
const ajvOptions = {
|
|
82
|
-
strictSchema: !(0, envars_1.getEnvBool)('PROMPTFOO_DISABLE_AJV_STRICT_MODE'),
|
|
83
|
-
};
|
|
84
|
-
const ajv = new ajv_1.default(ajvOptions);
|
|
85
|
-
(0, ajv_formats_1.default)(ajv);
|
|
86
|
-
return ajv;
|
|
87
|
-
}
|
|
88
|
-
const ajv = createAjv();
|
|
89
77
|
const nunjucks = (0, templates_1.getNunjucksEngine)();
|
|
90
78
|
function coerceString(value) {
|
|
91
79
|
if (typeof value === 'string') {
|
|
@@ -107,117 +95,6 @@ function handleRougeScore(baseType, assertion, expected, output, inverted) {
|
|
|
107
95
|
assertion,
|
|
108
96
|
};
|
|
109
97
|
}
|
|
110
|
-
function validateXml(xmlString, requiredElements) {
|
|
111
|
-
if (!xmlString.startsWith('<')) {
|
|
112
|
-
return { isValid: false, reason: 'XML is missing opening tag' };
|
|
113
|
-
}
|
|
114
|
-
const parser = new fast_xml_parser_1.XMLParser({
|
|
115
|
-
allowBooleanAttributes: true,
|
|
116
|
-
ignoreAttributes: false,
|
|
117
|
-
parseAttributeValue: true,
|
|
118
|
-
parseTagValue: true,
|
|
119
|
-
});
|
|
120
|
-
try {
|
|
121
|
-
const parsedXml = parser.parse(xmlString);
|
|
122
|
-
if (requiredElements && requiredElements.length > 0) {
|
|
123
|
-
const missingElements = requiredElements.filter((element) => {
|
|
124
|
-
const path = element.split('.');
|
|
125
|
-
let current = parsedXml;
|
|
126
|
-
for (const key of path) {
|
|
127
|
-
if (current[key] === undefined) {
|
|
128
|
-
return true;
|
|
129
|
-
}
|
|
130
|
-
current = current[key];
|
|
131
|
-
}
|
|
132
|
-
return false;
|
|
133
|
-
});
|
|
134
|
-
if (missingElements.length > 0) {
|
|
135
|
-
return {
|
|
136
|
-
isValid: false,
|
|
137
|
-
reason: `XML is missing required elements: ${missingElements.join(', ')}`,
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
return { isValid: true, reason: 'XML is valid and contains all required elements' };
|
|
142
|
-
}
|
|
143
|
-
catch (err) {
|
|
144
|
-
return { isValid: false, reason: `XML parsing failed: ${err.message}` };
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
function containsXml(outputString, requiredElements) {
|
|
148
|
-
const xmlRegex = /<\?xml.*?>[\s\S]*<\/[^>]+>|\S*<[^>]+>[\s\S]*<\/[^>]+>/;
|
|
149
|
-
const xmlMatches = outputString.match(xmlRegex);
|
|
150
|
-
if (!xmlMatches) {
|
|
151
|
-
return { isValid: false, reason: 'No XML content found in the output' };
|
|
152
|
-
}
|
|
153
|
-
for (const xmlMatch of xmlMatches) {
|
|
154
|
-
const { isValid, reason } = validateXml(xmlMatch, requiredElements);
|
|
155
|
-
if (isValid) {
|
|
156
|
-
return { isValid: true, reason };
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return { isValid: false, reason: 'No valid XML content found matching the requirements' };
|
|
160
|
-
}
|
|
161
|
-
async function isSql(outputString, renderedValue, inverse, assertion) {
|
|
162
|
-
let pass = false;
|
|
163
|
-
let databaseType = 'MySQL';
|
|
164
|
-
let whiteTableList;
|
|
165
|
-
let whiteColumnList;
|
|
166
|
-
if (renderedValue && typeof renderedValue === 'object') {
|
|
167
|
-
const value = renderedValue;
|
|
168
|
-
databaseType = value.databaseType || 'MySQL';
|
|
169
|
-
whiteTableList = value.allowedTables;
|
|
170
|
-
whiteColumnList = value.allowedColumns;
|
|
171
|
-
}
|
|
172
|
-
if (renderedValue && typeof renderedValue !== 'object') {
|
|
173
|
-
throw new Error('is-sql assertion must have a object value.');
|
|
174
|
-
}
|
|
175
|
-
const { Parser: SqlParser } = await Promise.resolve().then(() => __importStar(require('node-sql-parser'))).catch(() => {
|
|
176
|
-
throw new Error('node-sql-parser is not installed. Please install it first');
|
|
177
|
-
});
|
|
178
|
-
const sqlParser = new SqlParser();
|
|
179
|
-
const opt = { database: databaseType };
|
|
180
|
-
const failureReasons = [];
|
|
181
|
-
try {
|
|
182
|
-
sqlParser.astify(outputString, opt);
|
|
183
|
-
pass = !inverse;
|
|
184
|
-
}
|
|
185
|
-
catch {
|
|
186
|
-
pass = inverse;
|
|
187
|
-
failureReasons.push(`SQL statement does not conform to the provided ${databaseType} database syntax.`);
|
|
188
|
-
}
|
|
189
|
-
if (whiteTableList) {
|
|
190
|
-
opt.type = 'table';
|
|
191
|
-
try {
|
|
192
|
-
sqlParser.whiteListCheck(outputString, whiteTableList, opt);
|
|
193
|
-
}
|
|
194
|
-
catch (err) {
|
|
195
|
-
pass = inverse;
|
|
196
|
-
const error = err;
|
|
197
|
-
failureReasons.push(`SQL validation failed: ${error.message}.`);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
if (whiteColumnList) {
|
|
201
|
-
opt.type = 'column';
|
|
202
|
-
try {
|
|
203
|
-
sqlParser.whiteListCheck(outputString, whiteColumnList, opt);
|
|
204
|
-
}
|
|
205
|
-
catch (err) {
|
|
206
|
-
pass = inverse;
|
|
207
|
-
const error = err;
|
|
208
|
-
failureReasons.push(`SQL validation failed: ${error.message}.`);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
if (inverse && pass === false && failureReasons.length === 0) {
|
|
212
|
-
failureReasons.push('The output SQL statement is valid');
|
|
213
|
-
}
|
|
214
|
-
return {
|
|
215
|
-
pass,
|
|
216
|
-
score: pass ? 1 : 0,
|
|
217
|
-
reason: pass ? 'Assertion passed' : failureReasons.join(' '),
|
|
218
|
-
assertion,
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
98
|
async function runAssertion({ prompt, provider, assertion, test, latencyMs, providerResponse, }) {
|
|
222
99
|
const { cost, logProbs, output: originalOutput } = providerResponse;
|
|
223
100
|
let output = originalOutput;
|
|
@@ -329,51 +206,10 @@ async function runAssertion({ prompt, provider, assertion, test, latencyMs, prov
|
|
|
329
206
|
};
|
|
330
207
|
}
|
|
331
208
|
if (baseType === 'is-json') {
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
}
|
|
337
|
-
catch {
|
|
338
|
-
pass = inverse;
|
|
339
|
-
}
|
|
340
|
-
if (pass && renderedValue) {
|
|
341
|
-
let validate;
|
|
342
|
-
if (typeof renderedValue === 'string') {
|
|
343
|
-
if (renderedValue.startsWith('file://')) {
|
|
344
|
-
// Reference the JSON schema from external file
|
|
345
|
-
const schema = valueFromScript;
|
|
346
|
-
(0, tiny_invariant_1.default)(schema, 'is-json references a file that does not export a JSON schema');
|
|
347
|
-
validate = ajv.compile(schema);
|
|
348
|
-
}
|
|
349
|
-
else {
|
|
350
|
-
const scheme = js_yaml_1.default.load(renderedValue);
|
|
351
|
-
validate = ajv.compile(scheme);
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
else if (typeof renderedValue === 'object') {
|
|
355
|
-
// Value is JSON schema
|
|
356
|
-
validate = ajv.compile(renderedValue);
|
|
357
|
-
}
|
|
358
|
-
else {
|
|
359
|
-
throw new Error('is-json assertion must have a string or object value');
|
|
360
|
-
}
|
|
361
|
-
pass = validate(parsedJson);
|
|
362
|
-
if (!pass) {
|
|
363
|
-
return {
|
|
364
|
-
pass,
|
|
365
|
-
score: 0,
|
|
366
|
-
reason: `JSON does not conform to the provided schema. Errors: ${ajv.errorsText(validate.errors)}`,
|
|
367
|
-
assertion,
|
|
368
|
-
};
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
return {
|
|
372
|
-
pass,
|
|
373
|
-
score: pass ? 1 : 0,
|
|
374
|
-
reason: pass ? 'Assertion passed' : 'Expected output to be valid JSON',
|
|
375
|
-
assertion,
|
|
376
|
-
};
|
|
209
|
+
return (0, json_1.handleIsJson)(assertion, renderedValue, valueFromScript, outputString, inverse);
|
|
210
|
+
}
|
|
211
|
+
if (baseType === 'contains-json') {
|
|
212
|
+
return (0, json_1.handleContainsJson)(assertion, renderedValue, valueFromScript, outputString, inverse);
|
|
377
213
|
}
|
|
378
214
|
if (baseType === 'is-xml' || baseType === 'contains-xml') {
|
|
379
215
|
let requiredElements;
|
|
@@ -391,7 +227,7 @@ async function runAssertion({ prompt, provider, assertion, test, latencyMs, prov
|
|
|
391
227
|
throw new Error('xml assertion must contain a string, array value, or no value');
|
|
392
228
|
}
|
|
393
229
|
}
|
|
394
|
-
const result = (baseType === 'is-xml' ? validateXml : containsXml)(outputString, requiredElements);
|
|
230
|
+
const result = (baseType === 'is-xml' ? xml_1.validateXml : xml_1.containsXml)(outputString, requiredElements);
|
|
395
231
|
pass = result.isValid !== inverse;
|
|
396
232
|
return {
|
|
397
233
|
pass,
|
|
@@ -401,16 +237,16 @@ async function runAssertion({ prompt, provider, assertion, test, latencyMs, prov
|
|
|
401
237
|
};
|
|
402
238
|
}
|
|
403
239
|
if (baseType === 'is-sql') {
|
|
404
|
-
return isSql(outputString, renderedValue, inverse, assertion);
|
|
240
|
+
return (0, sql_1.isSql)(outputString, renderedValue, inverse, assertion);
|
|
405
241
|
}
|
|
406
242
|
if (baseType === 'contains-sql') {
|
|
407
243
|
const match = outputString.match(/```(?:sql)?([^`]+)```/);
|
|
408
244
|
if (match) {
|
|
409
245
|
const sqlCode = match[1].trim();
|
|
410
|
-
return isSql(sqlCode, renderedValue, inverse, assertion);
|
|
246
|
+
return (0, sql_1.isSql)(sqlCode, renderedValue, inverse, assertion);
|
|
411
247
|
}
|
|
412
248
|
else {
|
|
413
|
-
return isSql(outputString, renderedValue, inverse, assertion);
|
|
249
|
+
return (0, sql_1.isSql)(outputString, renderedValue, inverse, assertion);
|
|
414
250
|
}
|
|
415
251
|
}
|
|
416
252
|
if (baseType === 'contains') {
|
|
@@ -533,48 +369,6 @@ async function runAssertion({ prompt, provider, assertion, test, latencyMs, prov
|
|
|
533
369
|
assertion,
|
|
534
370
|
};
|
|
535
371
|
}
|
|
536
|
-
if (baseType === 'contains-json') {
|
|
537
|
-
let errorMessage = 'Expected output to contain valid JSON';
|
|
538
|
-
const jsonObjects = (0, json_1.extractJsonObjects)(outputString);
|
|
539
|
-
pass = inverse ? jsonObjects.length === 0 : jsonObjects.length > 0;
|
|
540
|
-
for (const jsonObject of jsonObjects) {
|
|
541
|
-
if (renderedValue) {
|
|
542
|
-
let validate;
|
|
543
|
-
if (typeof renderedValue === 'string') {
|
|
544
|
-
if (renderedValue.startsWith('file://')) {
|
|
545
|
-
// Reference the JSON schema from external file
|
|
546
|
-
const schema = valueFromScript;
|
|
547
|
-
(0, tiny_invariant_1.default)(schema, 'contains-json references a file that does not export a JSON schema');
|
|
548
|
-
validate = ajv.compile(schema);
|
|
549
|
-
}
|
|
550
|
-
else {
|
|
551
|
-
const scheme = js_yaml_1.default.load(renderedValue);
|
|
552
|
-
validate = ajv.compile(scheme);
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
else if (typeof renderedValue === 'object') {
|
|
556
|
-
// Value is JSON schema
|
|
557
|
-
validate = ajv.compile(renderedValue);
|
|
558
|
-
}
|
|
559
|
-
else {
|
|
560
|
-
throw new Error('contains-json assertion must have a string or object value');
|
|
561
|
-
}
|
|
562
|
-
pass = validate(jsonObject);
|
|
563
|
-
if (pass) {
|
|
564
|
-
break;
|
|
565
|
-
}
|
|
566
|
-
else {
|
|
567
|
-
errorMessage = `JSON does not conform to the provided schema. Errors: ${ajv.errorsText(validate.errors)}`;
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
}
|
|
571
|
-
return {
|
|
572
|
-
pass,
|
|
573
|
-
score: pass ? 1 : 0,
|
|
574
|
-
reason: pass ? 'Assertion passed' : errorMessage,
|
|
575
|
-
assertion,
|
|
576
|
-
};
|
|
577
|
-
}
|
|
578
372
|
if (baseType === 'is-valid-openai-tools-call') {
|
|
579
373
|
const toolsOutput = output;
|
|
580
374
|
if (!Array.isArray(toolsOutput) ||
|
|
@@ -1000,6 +794,11 @@ ${isMultiline
|
|
|
1000
794
|
(0, tiny_invariant_1.default)(typeof renderedValue === 'string', '"rouge" assertion type must be a string value');
|
|
1001
795
|
return handleRougeScore(baseType, assertion, renderedValue, outputString, inverse);
|
|
1002
796
|
}
|
|
797
|
+
if (baseType === 'bleu') {
|
|
798
|
+
(0, tiny_invariant_1.default)(typeof renderedValue === 'string' ||
|
|
799
|
+
(Array.isArray(renderedValue) && renderedValue.every((v) => typeof v === 'string')), '"bleu" assertion type must have a string or array of strings value');
|
|
800
|
+
return (0, bleu_1.handleBleuScore)(assertion, renderedValue, outputString, inverse);
|
|
801
|
+
}
|
|
1003
802
|
if (baseType === 'levenshtein') {
|
|
1004
803
|
(0, tiny_invariant_1.default)(typeof renderedValue === 'string', '"levenshtein" assertion type must have a string value');
|
|
1005
804
|
const levDistance = (0, fastest_levenshtein_1.distance)(outputString, renderedValue);
|
|
@@ -1044,39 +843,10 @@ ${isMultiline
|
|
|
1044
843
|
};
|
|
1045
844
|
}
|
|
1046
845
|
if (baseType === 'perplexity') {
|
|
1047
|
-
|
|
1048
|
-
throw new Error('Perplexity assertion does not support providers that do not return logProbs');
|
|
1049
|
-
}
|
|
1050
|
-
const sumLogProbs = logProbs.reduce((acc, logProb) => acc + logProb, 0);
|
|
1051
|
-
const avgLogProb = sumLogProbs / logProbs.length;
|
|
1052
|
-
const perplexity = Math.exp(-avgLogProb);
|
|
1053
|
-
pass = assertion.threshold ? perplexity <= assertion.threshold : true;
|
|
1054
|
-
return {
|
|
1055
|
-
pass,
|
|
1056
|
-
score: pass ? 1 : 0,
|
|
1057
|
-
reason: pass
|
|
1058
|
-
? 'Assertion passed'
|
|
1059
|
-
: `Perplexity ${perplexity.toFixed(2)} is greater than threshold ${assertion.threshold}`,
|
|
1060
|
-
assertion,
|
|
1061
|
-
};
|
|
846
|
+
return (0, perplexity_1.handlePerplexity)(logProbs, assertion);
|
|
1062
847
|
}
|
|
1063
848
|
if (baseType === 'perplexity-score') {
|
|
1064
|
-
|
|
1065
|
-
throw new Error('perplexity-score assertion does not support providers that do not return logProbs');
|
|
1066
|
-
}
|
|
1067
|
-
const sumLogProbs = logProbs.reduce((acc, logProb) => acc + logProb, 0);
|
|
1068
|
-
const avgLogProb = sumLogProbs / logProbs.length;
|
|
1069
|
-
const perplexity = Math.exp(-avgLogProb);
|
|
1070
|
-
const perplexityNorm = 1 / (1 + perplexity);
|
|
1071
|
-
pass = assertion.threshold ? perplexityNorm >= assertion.threshold : true;
|
|
1072
|
-
return {
|
|
1073
|
-
pass,
|
|
1074
|
-
score: perplexityNorm,
|
|
1075
|
-
reason: pass
|
|
1076
|
-
? 'Assertion passed'
|
|
1077
|
-
: `Perplexity score ${perplexityNorm.toFixed(2)} is less than threshold ${assertion.threshold}`,
|
|
1078
|
-
assertion,
|
|
1079
|
-
};
|
|
849
|
+
return (0, perplexity_1.handlePerplexityScore)(logProbs, assertion);
|
|
1080
850
|
}
|
|
1081
851
|
if (baseType === 'cost') {
|
|
1082
852
|
if (!assertion.threshold) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/assertions/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/assertions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import Ajv from 'ajv';
|
|
2
|
+
import type { AssertionValue, GradingResult } from '../types';
|
|
3
|
+
import type { Assertion } from '../types';
|
|
4
|
+
export declare function resetAjv(): void;
|
|
5
|
+
export declare function getAjv(): Ajv;
|
|
6
|
+
export declare function handleIsJson(assertion: Assertion, renderedValue: AssertionValue | undefined, valueFromScript: string | boolean | number | GradingResult | object | undefined, outputString: string, inverse: boolean): GradingResult;
|
|
7
|
+
export declare function handleContainsJson(assertion: Assertion, renderedValue: AssertionValue | undefined, valueFromScript: string | boolean | number | GradingResult | object | undefined, outputString: string, inverse: boolean): GradingResult;
|
|
8
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/assertions/json.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,KAAK,CAAC;AAKtB,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C,wBAAgB,QAAQ,IAAI,IAAI,CAK/B;AAED,wBAAgB,MAAM,IAAI,GAAG,CAS5B;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,cAAc,GAAG,SAAS,EACzC,eAAe,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,EAC/E,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,OAAO,GACf,aAAa,CA8Cf;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,cAAc,GAAG,SAAS,EACzC,eAAe,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,EAC/E,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,OAAO,GACf,aAAa,CAsCf"}
|
|
@@ -0,0 +1,121 @@
|
|
|
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.resetAjv = resetAjv;
|
|
7
|
+
exports.getAjv = getAjv;
|
|
8
|
+
exports.handleIsJson = handleIsJson;
|
|
9
|
+
exports.handleContainsJson = handleContainsJson;
|
|
10
|
+
const ajv_1 = __importDefault(require("ajv"));
|
|
11
|
+
const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
12
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
13
|
+
const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
|
|
14
|
+
const envars_1 = require("../envars");
|
|
15
|
+
const json_1 = require("../util/json");
|
|
16
|
+
let ajvInstance = null;
|
|
17
|
+
function resetAjv() {
|
|
18
|
+
if (process.env.NODE_ENV !== 'test') {
|
|
19
|
+
throw new Error('resetAjv can only be called in test environment');
|
|
20
|
+
}
|
|
21
|
+
ajvInstance = null;
|
|
22
|
+
}
|
|
23
|
+
function getAjv() {
|
|
24
|
+
if (!ajvInstance) {
|
|
25
|
+
const ajvOptions = {
|
|
26
|
+
strictSchema: !(0, envars_1.getEnvBool)('PROMPTFOO_DISABLE_AJV_STRICT_MODE'),
|
|
27
|
+
};
|
|
28
|
+
ajvInstance = new ajv_1.default(ajvOptions);
|
|
29
|
+
(0, ajv_formats_1.default)(ajvInstance);
|
|
30
|
+
}
|
|
31
|
+
return ajvInstance;
|
|
32
|
+
}
|
|
33
|
+
function handleIsJson(assertion, renderedValue, valueFromScript, outputString, inverse) {
|
|
34
|
+
let parsedJson;
|
|
35
|
+
let pass;
|
|
36
|
+
try {
|
|
37
|
+
parsedJson = JSON.parse(outputString);
|
|
38
|
+
pass = !inverse;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
pass = inverse;
|
|
42
|
+
}
|
|
43
|
+
if (pass && renderedValue) {
|
|
44
|
+
let validate;
|
|
45
|
+
if (typeof renderedValue === 'string') {
|
|
46
|
+
if (renderedValue.startsWith('file://')) {
|
|
47
|
+
// Reference the JSON schema from external file
|
|
48
|
+
const schema = valueFromScript;
|
|
49
|
+
(0, tiny_invariant_1.default)(schema, 'is-json references a file that does not export a JSON schema');
|
|
50
|
+
validate = getAjv().compile(schema);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
const scheme = js_yaml_1.default.load(renderedValue);
|
|
54
|
+
validate = getAjv().compile(scheme);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (typeof renderedValue === 'object') {
|
|
58
|
+
validate = getAjv().compile(renderedValue);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
throw new Error('is-json assertion must have a string or object value');
|
|
62
|
+
}
|
|
63
|
+
pass = validate(parsedJson);
|
|
64
|
+
if (!pass) {
|
|
65
|
+
return {
|
|
66
|
+
pass,
|
|
67
|
+
score: 0,
|
|
68
|
+
reason: `JSON does not conform to the provided schema. Errors: ${getAjv().errorsText(validate.errors)}`,
|
|
69
|
+
assertion,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
pass,
|
|
75
|
+
score: pass ? 1 : 0,
|
|
76
|
+
reason: pass ? 'Assertion passed' : 'Expected output to be valid JSON',
|
|
77
|
+
assertion,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function handleContainsJson(assertion, renderedValue, valueFromScript, outputString, inverse) {
|
|
81
|
+
let errorMessage = 'Expected output to contain valid JSON';
|
|
82
|
+
const jsonObjects = (0, json_1.extractJsonObjects)(outputString);
|
|
83
|
+
let pass = inverse ? jsonObjects.length === 0 : jsonObjects.length > 0;
|
|
84
|
+
for (const jsonObject of jsonObjects) {
|
|
85
|
+
if (renderedValue) {
|
|
86
|
+
let validate;
|
|
87
|
+
if (typeof renderedValue === 'string') {
|
|
88
|
+
if (renderedValue.startsWith('file://')) {
|
|
89
|
+
// Reference the JSON schema from external file
|
|
90
|
+
const schema = valueFromScript;
|
|
91
|
+
(0, tiny_invariant_1.default)(schema, 'contains-json references a file that does not export a JSON schema');
|
|
92
|
+
validate = getAjv().compile(schema);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
const scheme = js_yaml_1.default.load(renderedValue);
|
|
96
|
+
validate = getAjv().compile(scheme);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else if (typeof renderedValue === 'object') {
|
|
100
|
+
validate = getAjv().compile(renderedValue);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
throw new Error('contains-json assertion must have a string or object value');
|
|
104
|
+
}
|
|
105
|
+
pass = validate(jsonObject);
|
|
106
|
+
if (pass) {
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
errorMessage = `JSON does not conform to the provided schema. Errors: ${getAjv().errorsText(validate.errors)}`;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
pass,
|
|
116
|
+
score: pass ? 1 : 0,
|
|
117
|
+
reason: pass ? 'Assertion passed' : errorMessage,
|
|
118
|
+
assertion,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=json.js.map
|