promptfoo 0.93.2 → 0.94.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/drizzle/0008_broad_boomer.sql +2 -0
- package/dist/drizzle/0009_strong_marten_broadcloak.sql +19 -0
- package/dist/drizzle/meta/0008_snapshot.json +732 -0
- package/dist/drizzle/meta/0009_snapshot.json +622 -0
- package/dist/drizzle/meta/_journal.json +14 -0
- package/dist/package.json +16 -19
- package/dist/src/app/assets/index-CKeaKcHn.css +1 -0
- package/dist/src/app/assets/index-D0jdLrEN.js +769 -0
- package/dist/src/app/assets/{index.es-C_NMLMrz.js → index.es-BExeKHIA.js} +1 -1
- package/dist/src/app/assets/{sync-C0Slgwbm.js → sync-B6HKT-pd.js} +1 -1
- package/dist/src/app/index.html +3 -3
- package/dist/src/{assertions.d.ts → assertions/index.d.ts} +4 -4
- package/dist/src/assertions/index.d.ts.map +1 -0
- package/dist/src/{assertions.js → assertions/index.js} +33 -45
- package/dist/src/assertions/index.js.map +1 -0
- package/dist/src/assertions/utils.d.ts +4 -0
- package/dist/src/assertions/utils.d.ts.map +1 -0
- package/dist/src/assertions/utils.js +39 -0
- package/dist/src/assertions/utils.js.map +1 -0
- package/dist/src/cache.d.ts +0 -1
- package/dist/src/cache.d.ts.map +1 -1
- package/dist/src/cache.js.map +1 -1
- package/dist/src/commands/auth.d.ts.map +1 -1
- package/dist/src/commands/auth.js +25 -18
- package/dist/src/commands/auth.js.map +1 -1
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +41 -8
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/eval.d.ts.map +1 -1
- package/dist/src/commands/eval.js +37 -19
- package/dist/src/commands/eval.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +3 -4
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/database/index.d.ts.map +1 -1
- package/dist/src/database/index.js +4 -1
- package/dist/src/database/index.js.map +1 -1
- package/dist/src/database/tables.d.ts +0 -114
- package/dist/src/database/tables.d.ts.map +1 -1
- package/dist/src/database/tables.js +7 -34
- package/dist/src/database/tables.js.map +1 -1
- package/dist/src/envars.d.ts +8 -5
- package/dist/src/envars.d.ts.map +1 -1
- package/dist/src/envars.js.map +1 -1
- package/dist/src/evaluator.d.ts.map +1 -1
- package/dist/src/evaluator.js +0 -5
- package/dist/src/evaluator.js.map +1 -1
- package/dist/src/fetch.d.ts +0 -1
- package/dist/src/fetch.d.ts.map +1 -1
- package/dist/src/fetch.js +3 -4
- package/dist/src/fetch.js.map +1 -1
- package/dist/src/globalConfig/cloud.d.ts +22 -1
- package/dist/src/globalConfig/cloud.d.ts.map +1 -1
- package/dist/src/globalConfig/cloud.js +5 -0
- package/dist/src/globalConfig/cloud.js.map +1 -1
- package/dist/src/googleSheets.d.ts.map +1 -1
- package/dist/src/googleSheets.js +13 -2
- package/dist/src/googleSheets.js.map +1 -1
- package/dist/src/integrations/portkey.d.ts.map +1 -1
- package/dist/src/integrations/portkey.js +1 -2
- package/dist/src/integrations/portkey.js.map +1 -1
- package/dist/src/models/eval.d.ts +1 -3
- package/dist/src/models/eval.d.ts.map +1 -1
- package/dist/src/models/eval.js +5 -21
- package/dist/src/models/eval.js.map +1 -1
- package/dist/src/models/evalResult.d.ts +2 -0
- package/dist/src/models/evalResult.d.ts.map +1 -1
- package/dist/src/models/evalResult.js +4 -1
- package/dist/src/models/evalResult.js.map +1 -1
- package/dist/src/onboarding.d.ts +1 -1
- package/dist/src/onboarding.d.ts.map +1 -1
- package/dist/src/onboarding.js +8 -2
- package/dist/src/onboarding.js.map +1 -1
- package/dist/src/prompts/processors/javascript.d.ts +1 -0
- package/dist/src/prompts/processors/javascript.d.ts.map +1 -1
- package/dist/src/prompts/processors/javascript.js +6 -2
- package/dist/src/prompts/processors/javascript.js.map +1 -1
- package/dist/src/prompts/processors/python.d.ts +2 -0
- package/dist/src/prompts/processors/python.d.ts.map +1 -1
- package/dist/src/prompts/processors/python.js +4 -2
- package/dist/src/prompts/processors/python.js.map +1 -1
- package/dist/src/providers/anthropic.js +1 -1
- package/dist/src/providers/anthropic.js.map +1 -1
- package/dist/src/providers/bedrock.d.ts +4 -0
- package/dist/src/providers/bedrock.d.ts.map +1 -1
- package/dist/src/providers/bedrock.js +12 -0
- package/dist/src/providers/bedrock.js.map +1 -1
- package/dist/src/providers/fal.d.ts.map +1 -1
- package/dist/src/providers/fal.js +1 -2
- package/dist/src/providers/fal.js.map +1 -1
- package/dist/src/providers/http.d.ts +6 -2
- package/dist/src/providers/http.d.ts.map +1 -1
- package/dist/src/providers/http.js +70 -29
- package/dist/src/providers/http.js.map +1 -1
- package/dist/src/providers/openai.d.ts.map +1 -1
- package/dist/src/providers/openai.js +39 -30
- package/dist/src/providers/openai.js.map +1 -1
- package/dist/src/providers/palm.d.ts.map +1 -1
- package/dist/src/providers/palm.js +3 -1
- package/dist/src/providers/palm.js.map +1 -1
- package/dist/src/providers/replicate.d.ts.map +1 -1
- package/dist/src/providers/replicate.js +2 -3
- package/dist/src/providers/replicate.js.map +1 -1
- package/dist/src/providers/togetherai.d.ts +7 -0
- package/dist/src/providers/togetherai.d.ts.map +1 -0
- package/dist/src/providers/togetherai.js +33 -0
- package/dist/src/providers/togetherai.js.map +1 -0
- package/dist/src/providers/vertex.d.ts.map +1 -1
- package/dist/src/providers/vertex.js +4 -4
- package/dist/src/providers/vertex.js.map +1 -1
- package/dist/src/providers/vertexUtil.d.ts +78 -1
- package/dist/src/providers/vertexUtil.d.ts.map +1 -1
- package/dist/src/providers/vertexUtil.js +57 -15
- package/dist/src/providers/vertexUtil.js.map +1 -1
- package/dist/src/providers/watsonx.d.ts +39 -4
- package/dist/src/providers/watsonx.d.ts.map +1 -1
- package/dist/src/providers/watsonx.js +293 -22
- package/dist/src/providers/watsonx.js.map +1 -1
- package/dist/src/providers/xai.d.ts +7 -0
- package/dist/src/providers/xai.d.ts.map +1 -0
- package/dist/src/providers/xai.js +23 -0
- package/dist/src/providers/xai.js.map +1 -0
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js +26 -0
- package/dist/src/providers.js.map +1 -1
- package/dist/src/python/pythonUtils.js +2 -2
- package/dist/src/python/pythonUtils.js.map +1 -1
- package/dist/src/redteam/commands/init.d.ts.map +1 -1
- package/dist/src/redteam/commands/init.js +8 -3
- package/dist/src/redteam/commands/init.js.map +1 -1
- package/dist/src/redteam/constants.d.ts +25 -2
- package/dist/src/redteam/constants.d.ts.map +1 -1
- package/dist/src/redteam/constants.js +361 -27
- package/dist/src/redteam/constants.js.map +1 -1
- package/dist/src/redteam/strategies/index.d.ts.map +1 -1
- package/dist/src/redteam/strategies/index.js +10 -0
- package/dist/src/redteam/strategies/index.js.map +1 -1
- package/dist/src/redteam/strategies/mathPrompt.d.ts +5 -0
- package/dist/src/redteam/strategies/mathPrompt.d.ts.map +1 -0
- package/dist/src/redteam/strategies/mathPrompt.js +140 -0
- package/dist/src/redteam/strategies/mathPrompt.js.map +1 -0
- package/dist/src/server/apiSchemas.d.ts +59 -0
- package/dist/src/server/apiSchemas.d.ts.map +1 -0
- package/dist/src/server/apiSchemas.js +37 -0
- package/dist/src/server/apiSchemas.js.map +1 -0
- package/dist/src/server/routes/eval.d.ts +2 -0
- package/dist/src/server/routes/eval.d.ts.map +1 -0
- package/dist/src/server/routes/eval.js +160 -0
- package/dist/src/server/routes/eval.js.map +1 -0
- package/dist/src/server/routes/providers.d.ts.map +1 -1
- package/dist/src/server/routes/providers.js.map +1 -1
- package/dist/src/server/routes/redteam.d.ts +2 -0
- package/dist/src/server/routes/redteam.d.ts.map +1 -0
- package/dist/src/server/routes/redteam.js +43 -0
- package/dist/src/server/routes/redteam.js.map +1 -0
- package/dist/src/server/routes/user.d.ts +2 -0
- package/dist/src/server/routes/user.d.ts.map +1 -0
- package/dist/src/server/routes/user.js +60 -0
- package/dist/src/server/routes/user.js.map +1 -0
- package/dist/src/server/server.d.ts.map +1 -1
- package/dist/src/server/server.js +25 -141
- package/dist/src/server/server.js.map +1 -1
- package/dist/src/share.d.ts.map +1 -1
- package/dist/src/share.js.map +1 -1
- package/dist/src/telemetry.d.ts +21 -6
- package/dist/src/telemetry.d.ts.map +1 -1
- package/dist/src/telemetry.js +28 -11
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/testCases.d.ts.map +1 -1
- package/dist/src/testCases.js +9 -0
- package/dist/src/testCases.js.map +1 -1
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +1 -0
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/prompts.d.ts +1 -0
- package/dist/src/types/prompts.d.ts.map +1 -1
- package/dist/src/types/providers.d.ts +3 -2
- package/dist/src/types/providers.d.ts.map +1 -1
- package/dist/src/types/providers.js.map +1 -1
- package/dist/src/util/config/default.d.ts +1 -0
- package/dist/src/util/config/default.d.ts.map +1 -1
- package/dist/src/util/config/default.js +4 -0
- package/dist/src/util/config/default.js.map +1 -1
- package/dist/src/util/index.d.ts +0 -1
- package/dist/src/util/index.d.ts.map +1 -1
- package/dist/src/util/index.js +1 -10
- package/dist/src/util/index.js.map +1 -1
- package/dist/src/validators/redteam.d.ts +6 -3
- package/dist/src/validators/redteam.d.ts.map +1 -1
- package/dist/src/validators/redteam.js +15 -14
- package/dist/src/validators/redteam.js.map +1 -1
- package/dist/test/assertions.test.js +191 -113
- package/dist/test/assertions.test.js.map +1 -1
- package/dist/test/assertions.utils.test.d.ts +2 -0
- package/dist/test/assertions.utils.test.d.ts.map +1 -0
- package/dist/test/assertions.utils.test.js +124 -0
- package/dist/test/assertions.utils.test.js.map +1 -0
- package/dist/test/cache.test.js +10 -16
- package/dist/test/cache.test.js.map +1 -1
- package/dist/test/commands/init.test.js +14 -11
- package/dist/test/commands/init.test.js.map +1 -1
- package/dist/test/evaluator.test.js +0 -1
- package/dist/test/evaluator.test.js.map +1 -1
- package/dist/test/evaluatorHelpers.test.js +0 -1
- package/dist/test/evaluatorHelpers.test.js.map +1 -1
- package/dist/test/models/eval.test.js +30 -1
- package/dist/test/models/eval.test.js.map +1 -1
- package/dist/test/onboarding.test.js +1 -1
- package/dist/test/prompts.processors.javascript.test.js +54 -1
- package/dist/test/prompts.processors.javascript.test.js.map +1 -1
- package/dist/test/prompts.processors.python.test.js +15 -0
- package/dist/test/prompts.processors.python.test.js.map +1 -1
- package/dist/test/prompts.processors.python.utils.test.js +2 -0
- package/dist/test/prompts.processors.python.utils.test.js.map +1 -1
- package/dist/test/prompts.test.js +2 -0
- package/dist/test/prompts.test.js.map +1 -1
- package/dist/test/providers.bedrock.test.js +58 -6
- package/dist/test/providers.bedrock.test.js.map +1 -1
- package/dist/test/providers.http.test.js +127 -31
- package/dist/test/providers.http.test.js.map +1 -1
- package/dist/test/providers.palm.test.d.ts +2 -0
- package/dist/test/providers.palm.test.d.ts.map +1 -0
- package/dist/test/providers.palm.test.js +131 -0
- package/dist/test/providers.palm.test.js.map +1 -0
- package/dist/test/providers.test.js +165 -73
- package/dist/test/providers.test.js.map +1 -1
- package/dist/test/providers.togetherai.test.d.ts +2 -0
- package/dist/test/providers.togetherai.test.d.ts.map +1 -0
- package/dist/test/providers.togetherai.test.js +53 -0
- package/dist/test/providers.togetherai.test.js.map +1 -0
- package/dist/test/providers.vertex.test.js +103 -1
- package/dist/test/providers.vertex.test.js.map +1 -1
- package/dist/test/providers.watsonx.test.js +81 -10
- package/dist/test/providers.watsonx.test.js.map +1 -1
- package/dist/test/providers.xai.test.d.ts +2 -0
- package/dist/test/providers.xai.test.d.ts.map +1 -0
- package/dist/test/providers.xai.test.js +47 -0
- package/dist/test/providers.xai.test.js.map +1 -0
- package/dist/test/rateLimit.test.js +18 -28
- package/dist/test/rateLimit.test.js.map +1 -1
- package/dist/test/redteam/plugins/pluginDocumentation.test.d.ts +2 -0
- package/dist/test/redteam/plugins/pluginDocumentation.test.d.ts.map +1 -0
- package/dist/test/redteam/plugins/pluginDocumentation.test.js +38 -0
- package/dist/test/redteam/plugins/pluginDocumentation.test.js.map +1 -0
- package/dist/test/redteam/validators.test.js +1 -0
- package/dist/test/redteam/validators.test.js.map +1 -1
- package/dist/test/server/providers.test.js +13 -1
- package/dist/test/server/providers.test.js.map +1 -1
- package/dist/test/testCases.test.js +8 -1
- package/dist/test/testCases.test.js.map +1 -1
- package/dist/test/util.config.load.test.d.ts +2 -0
- package/dist/test/util.config.load.test.d.ts.map +1 -0
- package/dist/test/{util.config.load.test.ts.js → util.config.load.test.js} +1 -26
- package/dist/test/util.config.load.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -19
- package/dist/src/app/assets/index-CkOXAWT6.js +0 -767
- package/dist/src/app/assets/index-DSMggY6i.css +0 -1
- package/dist/src/assertions.d.ts.map +0 -1
- package/dist/src/assertions.js.map +0 -1
- package/dist/src/models/provider.d.ts +0 -11
- package/dist/src/models/provider.d.ts.map +0 -1
- package/dist/src/models/provider.js +0 -52
- package/dist/src/models/provider.js.map +0 -1
- package/dist/test/util.config.load.test.ts.d.ts +0 -2
- package/dist/test/util.config.load.test.ts.d.ts.map +0 -1
- package/dist/test/util.config.load.test.ts.js.map +0 -1
|
@@ -28,7 +28,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
const dedent_1 = __importDefault(require("dedent"));
|
|
30
30
|
const fs = __importStar(require("fs"));
|
|
31
|
-
const node_fetch_1 = require("node-fetch");
|
|
32
31
|
const path = __importStar(require("path"));
|
|
33
32
|
const assertions_1 = require("../src/assertions");
|
|
34
33
|
const fetch_1 = require("../src/fetch");
|
|
@@ -74,8 +73,13 @@ jest.mock('../src/esm');
|
|
|
74
73
|
jest.mock('../src/database', () => ({
|
|
75
74
|
getDb: jest.fn(),
|
|
76
75
|
}));
|
|
76
|
+
jest.mock('path', () => ({
|
|
77
|
+
...jest.requireActual('path'),
|
|
78
|
+
resolve: jest.fn(jest.requireActual('path').resolve),
|
|
79
|
+
extname: jest.fn(jest.requireActual('path').extname),
|
|
80
|
+
}));
|
|
77
81
|
jest.mock('../src/cliState', () => ({
|
|
78
|
-
basePath: '/
|
|
82
|
+
basePath: '/base/path',
|
|
79
83
|
}));
|
|
80
84
|
jest.mock('../src/matchers', () => {
|
|
81
85
|
const actual = jest.requireActual('../src/matchers');
|
|
@@ -133,7 +137,7 @@ describe('runAssertions', () => {
|
|
|
133
137
|
const output = 'Expected output';
|
|
134
138
|
const result = await (0, assertions_1.runAssertions)({
|
|
135
139
|
prompt: 'Some prompt',
|
|
136
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
140
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
137
141
|
test,
|
|
138
142
|
providerResponse: { output },
|
|
139
143
|
});
|
|
@@ -146,7 +150,7 @@ describe('runAssertions', () => {
|
|
|
146
150
|
const output = 'Actual output';
|
|
147
151
|
const result = await (0, assertions_1.runAssertions)({
|
|
148
152
|
prompt: 'Some prompt',
|
|
149
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
153
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
150
154
|
test,
|
|
151
155
|
providerResponse: { output },
|
|
152
156
|
});
|
|
@@ -159,7 +163,7 @@ describe('runAssertions', () => {
|
|
|
159
163
|
const output = { key: 'value' };
|
|
160
164
|
const result = await (0, assertions_1.runAssertions)({
|
|
161
165
|
prompt: 'Some prompt',
|
|
162
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
166
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
163
167
|
test,
|
|
164
168
|
providerResponse: { output },
|
|
165
169
|
});
|
|
@@ -171,7 +175,7 @@ describe('runAssertions', () => {
|
|
|
171
175
|
it('should fail when combined score is less than threshold', async () => {
|
|
172
176
|
const result = await (0, assertions_1.runAssertions)({
|
|
173
177
|
prompt: 'Some prompt',
|
|
174
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
178
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
175
179
|
test: {
|
|
176
180
|
threshold: 0.5,
|
|
177
181
|
assert: [
|
|
@@ -197,7 +201,7 @@ describe('runAssertions', () => {
|
|
|
197
201
|
it('should pass when combined score is greater than threshold', async () => {
|
|
198
202
|
const result = await (0, assertions_1.runAssertions)({
|
|
199
203
|
prompt: 'Some prompt',
|
|
200
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
204
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
201
205
|
test: {
|
|
202
206
|
threshold: 0.25,
|
|
203
207
|
assert: [
|
|
@@ -222,7 +226,7 @@ describe('runAssertions', () => {
|
|
|
222
226
|
});
|
|
223
227
|
describe('assert-set', () => {
|
|
224
228
|
const prompt = 'Some prompt';
|
|
225
|
-
const provider = new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
229
|
+
const provider = new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini');
|
|
226
230
|
it('assert-set success', async () => {
|
|
227
231
|
const output = 'Expected output';
|
|
228
232
|
const test = {
|
|
@@ -602,7 +606,7 @@ describe('runAssertion', () => {
|
|
|
602
606
|
const output = 'Expected output';
|
|
603
607
|
const result = await (0, assertions_1.runAssertion)({
|
|
604
608
|
prompt: 'Some prompt',
|
|
605
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
609
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
606
610
|
assertion: equalityAssertion,
|
|
607
611
|
test: {},
|
|
608
612
|
providerResponse: { output },
|
|
@@ -616,7 +620,7 @@ describe('runAssertion', () => {
|
|
|
616
620
|
const output = 'Actual output';
|
|
617
621
|
const result = await (0, assertions_1.runAssertion)({
|
|
618
622
|
prompt: 'Some prompt',
|
|
619
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
623
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
620
624
|
assertion: equalityAssertion,
|
|
621
625
|
test: {},
|
|
622
626
|
providerResponse: { output },
|
|
@@ -637,7 +641,7 @@ describe('runAssertion', () => {
|
|
|
637
641
|
assertion: notEqualsAssertion,
|
|
638
642
|
test: {},
|
|
639
643
|
providerResponse: { output },
|
|
640
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
644
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
641
645
|
});
|
|
642
646
|
expect(result).toMatchObject({
|
|
643
647
|
pass: true,
|
|
@@ -651,7 +655,7 @@ describe('runAssertion', () => {
|
|
|
651
655
|
assertion: notEqualsAssertion,
|
|
652
656
|
test: {},
|
|
653
657
|
providerResponse: { output },
|
|
654
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
658
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
655
659
|
});
|
|
656
660
|
expect(result).toMatchObject({
|
|
657
661
|
pass: false,
|
|
@@ -662,7 +666,7 @@ describe('runAssertion', () => {
|
|
|
662
666
|
const output = { key: 'value' };
|
|
663
667
|
const result = await (0, assertions_1.runAssertion)({
|
|
664
668
|
prompt: 'Some prompt',
|
|
665
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
669
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
666
670
|
assertion: equalityAssertion,
|
|
667
671
|
test: {},
|
|
668
672
|
providerResponse: { output },
|
|
@@ -676,7 +680,7 @@ describe('runAssertion', () => {
|
|
|
676
680
|
const output = { key: 'value' };
|
|
677
681
|
const result = await (0, assertions_1.runAssertion)({
|
|
678
682
|
prompt: 'Some prompt',
|
|
679
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
683
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
680
684
|
assertion: equalityAssertionWithObject,
|
|
681
685
|
test: {},
|
|
682
686
|
providerResponse: { output },
|
|
@@ -690,7 +694,7 @@ describe('runAssertion', () => {
|
|
|
690
694
|
const output = { key: 'not value' };
|
|
691
695
|
const result = await (0, assertions_1.runAssertion)({
|
|
692
696
|
prompt: 'Some prompt',
|
|
693
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
697
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
694
698
|
assertion: equalityAssertionWithObject,
|
|
695
699
|
test: {},
|
|
696
700
|
providerResponse: { output },
|
|
@@ -709,7 +713,7 @@ describe('runAssertion', () => {
|
|
|
709
713
|
const output = '{"key":"value"}';
|
|
710
714
|
const result = await (0, assertions_1.runAssertion)({
|
|
711
715
|
prompt: 'Some prompt',
|
|
712
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
716
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
713
717
|
assertion,
|
|
714
718
|
test: {},
|
|
715
719
|
providerResponse: { output },
|
|
@@ -729,7 +733,7 @@ describe('runAssertion', () => {
|
|
|
729
733
|
const output = '{"key":"not value"}';
|
|
730
734
|
const result = await (0, assertions_1.runAssertion)({
|
|
731
735
|
prompt: 'Some prompt',
|
|
732
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
736
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
733
737
|
assertion,
|
|
734
738
|
test: {},
|
|
735
739
|
providerResponse: { output },
|
|
@@ -744,7 +748,7 @@ describe('runAssertion', () => {
|
|
|
744
748
|
const output = '{"key":"value"}';
|
|
745
749
|
const result = await (0, assertions_1.runAssertion)({
|
|
746
750
|
prompt: 'Some prompt',
|
|
747
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
751
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
748
752
|
assertion: isJsonAssertion,
|
|
749
753
|
test: {},
|
|
750
754
|
providerResponse: { output },
|
|
@@ -758,7 +762,7 @@ describe('runAssertion', () => {
|
|
|
758
762
|
const output = 'Not valid JSON';
|
|
759
763
|
const result = await (0, assertions_1.runAssertion)({
|
|
760
764
|
prompt: 'Some prompt',
|
|
761
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
765
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
762
766
|
assertion: isJsonAssertion,
|
|
763
767
|
test: {},
|
|
764
768
|
providerResponse: { output },
|
|
@@ -772,7 +776,7 @@ describe('runAssertion', () => {
|
|
|
772
776
|
const output = '{"latitude": 80.123, "longitude": -1}';
|
|
773
777
|
const result = await (0, assertions_1.runAssertion)({
|
|
774
778
|
prompt: 'Some prompt',
|
|
775
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
779
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
776
780
|
assertion: isJsonAssertionWithSchema,
|
|
777
781
|
test: {},
|
|
778
782
|
providerResponse: { output },
|
|
@@ -786,7 +790,7 @@ describe('runAssertion', () => {
|
|
|
786
790
|
const output = '{"latitude": "high", "longitude": [-1]}';
|
|
787
791
|
const result = await (0, assertions_1.runAssertion)({
|
|
788
792
|
prompt: 'Some prompt',
|
|
789
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
793
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
790
794
|
assertion: isJsonAssertionWithSchema,
|
|
791
795
|
test: {},
|
|
792
796
|
providerResponse: { output },
|
|
@@ -800,7 +804,7 @@ describe('runAssertion', () => {
|
|
|
800
804
|
const output = '{"latitude": 80.123, "longitude": -1}';
|
|
801
805
|
const result = await (0, assertions_1.runAssertion)({
|
|
802
806
|
prompt: 'Some prompt',
|
|
803
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
807
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
804
808
|
assertion: isJsonAssertionWithSchemaYamlString,
|
|
805
809
|
test: {},
|
|
806
810
|
providerResponse: { output },
|
|
@@ -814,7 +818,7 @@ describe('runAssertion', () => {
|
|
|
814
818
|
const output = '{"latitude": "high", "longitude": [-1]}';
|
|
815
819
|
const result = await (0, assertions_1.runAssertion)({
|
|
816
820
|
prompt: 'Some prompt',
|
|
817
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
821
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
818
822
|
assertion: isJsonAssertionWithSchemaYamlString,
|
|
819
823
|
test: {},
|
|
820
824
|
providerResponse: { output },
|
|
@@ -838,7 +842,7 @@ describe('runAssertion', () => {
|
|
|
838
842
|
};
|
|
839
843
|
const result = await (0, assertions_1.runAssertion)({
|
|
840
844
|
prompt: 'Some prompt',
|
|
841
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
845
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
842
846
|
assertion: { type: 'is-json', value: schemaWithFormat },
|
|
843
847
|
test: {},
|
|
844
848
|
providerResponse: { output },
|
|
@@ -862,7 +866,7 @@ describe('runAssertion', () => {
|
|
|
862
866
|
};
|
|
863
867
|
const result = await (0, assertions_1.runAssertion)({
|
|
864
868
|
prompt: 'Some prompt',
|
|
865
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
869
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
866
870
|
assertion: { type: 'is-json', value: schemaWithFormat },
|
|
867
871
|
test: {},
|
|
868
872
|
providerResponse: { output },
|
|
@@ -896,7 +900,7 @@ describe('runAssertion', () => {
|
|
|
896
900
|
const output = '{"latitude": 80.123, "longitude": -1}';
|
|
897
901
|
const result = await (0, assertions_1.runAssertion)({
|
|
898
902
|
prompt: 'Some prompt',
|
|
899
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
903
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
900
904
|
assertion,
|
|
901
905
|
test: {},
|
|
902
906
|
providerResponse: { output },
|
|
@@ -931,7 +935,7 @@ describe('runAssertion', () => {
|
|
|
931
935
|
const output = '{"latitude": "high", "longitude": [-1]}';
|
|
932
936
|
const result = await (0, assertions_1.runAssertion)({
|
|
933
937
|
prompt: 'Some prompt',
|
|
934
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
938
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
935
939
|
assertion,
|
|
936
940
|
test: {},
|
|
937
941
|
providerResponse: { output },
|
|
@@ -946,7 +950,7 @@ describe('runAssertion', () => {
|
|
|
946
950
|
const output = 'SELECT id, name FROM users';
|
|
947
951
|
const result = await (0, assertions_1.runAssertion)({
|
|
948
952
|
prompt: 'Some prompt',
|
|
949
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
953
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
950
954
|
assertion: isSqlAssertion,
|
|
951
955
|
test: {},
|
|
952
956
|
providerResponse: { output },
|
|
@@ -960,7 +964,7 @@ describe('runAssertion', () => {
|
|
|
960
964
|
const output = 'SELECT * FROM orders ORDERY BY order_date';
|
|
961
965
|
const result = await (0, assertions_1.runAssertion)({
|
|
962
966
|
prompt: 'Some prompt',
|
|
963
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
967
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
964
968
|
assertion: isSqlAssertion,
|
|
965
969
|
test: {},
|
|
966
970
|
providerResponse: { output },
|
|
@@ -974,7 +978,7 @@ describe('runAssertion', () => {
|
|
|
974
978
|
const output = 'SELECT * FROM orders ORDERY BY order_date';
|
|
975
979
|
const result = await (0, assertions_1.runAssertion)({
|
|
976
980
|
prompt: 'Some prompt',
|
|
977
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
981
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
978
982
|
assertion: notIsSqlAssertion,
|
|
979
983
|
test: {},
|
|
980
984
|
providerResponse: { output },
|
|
@@ -988,7 +992,7 @@ describe('runAssertion', () => {
|
|
|
988
992
|
const output = 'SELECT id, name FROM users';
|
|
989
993
|
const result = await (0, assertions_1.runAssertion)({
|
|
990
994
|
prompt: 'Some prompt',
|
|
991
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
995
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
992
996
|
assertion: notIsSqlAssertion,
|
|
993
997
|
test: {},
|
|
994
998
|
providerResponse: { output },
|
|
@@ -1002,7 +1006,7 @@ describe('runAssertion', () => {
|
|
|
1002
1006
|
const output = 'SELECT id, name FROM users';
|
|
1003
1007
|
const result = await (0, assertions_1.runAssertion)({
|
|
1004
1008
|
prompt: 'Some prompt',
|
|
1005
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1009
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1006
1010
|
assertion: isSqlAssertionWithDatabase,
|
|
1007
1011
|
test: {},
|
|
1008
1012
|
providerResponse: { output },
|
|
@@ -1016,7 +1020,7 @@ describe('runAssertion', () => {
|
|
|
1016
1020
|
const output = `SELECT first_name, last_name FROM employees WHERE first_name ILIKE 'john%'`;
|
|
1017
1021
|
const result = await (0, assertions_1.runAssertion)({
|
|
1018
1022
|
prompt: 'Some prompt',
|
|
1019
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1023
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1020
1024
|
assertion: isSqlAssertionWithDatabase,
|
|
1021
1025
|
test: {},
|
|
1022
1026
|
providerResponse: { output },
|
|
@@ -1030,7 +1034,7 @@ describe('runAssertion', () => {
|
|
|
1030
1034
|
const output = 'SELECT * FROM departments WHERE department_id = 1';
|
|
1031
1035
|
const result = await (0, assertions_1.runAssertion)({
|
|
1032
1036
|
prompt: 'Some prompt',
|
|
1033
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1037
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1034
1038
|
assertion: isSqlAssertionWithDatabaseAndWhiteTableList,
|
|
1035
1039
|
test: {},
|
|
1036
1040
|
providerResponse: { output },
|
|
@@ -1044,7 +1048,7 @@ describe('runAssertion', () => {
|
|
|
1044
1048
|
const output = 'UPDATE employees SET department_id = 2 WHERE employee_id = 1';
|
|
1045
1049
|
const result = await (0, assertions_1.runAssertion)({
|
|
1046
1050
|
prompt: 'Some prompt',
|
|
1047
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1051
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1048
1052
|
assertion: isSqlAssertionWithDatabaseAndWhiteTableList,
|
|
1049
1053
|
test: {},
|
|
1050
1054
|
providerResponse: { output },
|
|
@@ -1058,7 +1062,7 @@ describe('runAssertion', () => {
|
|
|
1058
1062
|
const output = 'SELECT name FROM t';
|
|
1059
1063
|
const result = await (0, assertions_1.runAssertion)({
|
|
1060
1064
|
prompt: 'Some prompt',
|
|
1061
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1065
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1062
1066
|
assertion: isSqlAssertionWithDatabaseAndWhiteColumnList,
|
|
1063
1067
|
test: {},
|
|
1064
1068
|
providerResponse: { output },
|
|
@@ -1072,7 +1076,7 @@ describe('runAssertion', () => {
|
|
|
1072
1076
|
const output = 'SELECT age FROM a WHERE id = 1';
|
|
1073
1077
|
const result = await (0, assertions_1.runAssertion)({
|
|
1074
1078
|
prompt: 'Some prompt',
|
|
1075
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1079
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1076
1080
|
assertion: isSqlAssertionWithDatabaseAndWhiteColumnList,
|
|
1077
1081
|
test: {},
|
|
1078
1082
|
providerResponse: { output },
|
|
@@ -1086,7 +1090,7 @@ describe('runAssertion', () => {
|
|
|
1086
1090
|
const output = 'SELECT name FROM departments';
|
|
1087
1091
|
const result = await (0, assertions_1.runAssertion)({
|
|
1088
1092
|
prompt: 'Some prompt',
|
|
1089
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1093
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1090
1094
|
assertion: isSqlAssertionWithDatabaseAndBothList,
|
|
1091
1095
|
test: {},
|
|
1092
1096
|
providerResponse: { output },
|
|
@@ -1100,7 +1104,7 @@ describe('runAssertion', () => {
|
|
|
1100
1104
|
const output = `INSERT INTO departments (name) VALUES ('HR')`;
|
|
1101
1105
|
const result = await (0, assertions_1.runAssertion)({
|
|
1102
1106
|
prompt: 'Some prompt',
|
|
1103
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1107
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1104
1108
|
assertion: isSqlAssertionWithDatabaseAndBothList,
|
|
1105
1109
|
test: {},
|
|
1106
1110
|
providerResponse: { output },
|
|
@@ -1114,7 +1118,7 @@ describe('runAssertion', () => {
|
|
|
1114
1118
|
const output = 'UPDATE a SET id = 1';
|
|
1115
1119
|
const result = await (0, assertions_1.runAssertion)({
|
|
1116
1120
|
prompt: 'Some prompt',
|
|
1117
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1121
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1118
1122
|
assertion: isSqlAssertionWithDatabaseAndBothList,
|
|
1119
1123
|
test: {},
|
|
1120
1124
|
providerResponse: { output },
|
|
@@ -1128,7 +1132,7 @@ describe('runAssertion', () => {
|
|
|
1128
1132
|
const output = `DELETE FROM employees;`;
|
|
1129
1133
|
const result = await (0, assertions_1.runAssertion)({
|
|
1130
1134
|
prompt: 'Some prompt',
|
|
1131
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1135
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1132
1136
|
assertion: isSqlAssertionWithDatabaseAndBothList,
|
|
1133
1137
|
test: {},
|
|
1134
1138
|
providerResponse: { output },
|
|
@@ -1142,7 +1146,7 @@ describe('runAssertion', () => {
|
|
|
1142
1146
|
const output = 'wassup\n```\nSELECT id, name FROM users\n```\nyolo';
|
|
1143
1147
|
const result = await (0, assertions_1.runAssertion)({
|
|
1144
1148
|
prompt: 'Some prompt',
|
|
1145
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1149
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1146
1150
|
assertion: {
|
|
1147
1151
|
type: 'contains-sql',
|
|
1148
1152
|
},
|
|
@@ -1158,7 +1162,7 @@ describe('runAssertion', () => {
|
|
|
1158
1162
|
const output = 'wassup\n```sql\nSELECT id, name FROM users\n```\nyolo';
|
|
1159
1163
|
const result = await (0, assertions_1.runAssertion)({
|
|
1160
1164
|
prompt: 'Some prompt',
|
|
1161
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1165
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1162
1166
|
assertion: {
|
|
1163
1167
|
type: 'contains-sql',
|
|
1164
1168
|
},
|
|
@@ -1174,7 +1178,7 @@ describe('runAssertion', () => {
|
|
|
1174
1178
|
const output = 'SELECT id, name FROM users';
|
|
1175
1179
|
const result = await (0, assertions_1.runAssertion)({
|
|
1176
1180
|
prompt: 'Some prompt',
|
|
1177
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1181
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1178
1182
|
assertion: {
|
|
1179
1183
|
type: 'contains-sql',
|
|
1180
1184
|
},
|
|
@@ -1190,7 +1194,7 @@ describe('runAssertion', () => {
|
|
|
1190
1194
|
const output = 'nothin';
|
|
1191
1195
|
const result = await (0, assertions_1.runAssertion)({
|
|
1192
1196
|
prompt: 'Some prompt',
|
|
1193
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1197
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1194
1198
|
assertion: {
|
|
1195
1199
|
type: 'contains-sql',
|
|
1196
1200
|
},
|
|
@@ -1205,7 +1209,7 @@ describe('runAssertion', () => {
|
|
|
1205
1209
|
const output = '```python\nprint("Hello, World!")\n```';
|
|
1206
1210
|
const result = await (0, assertions_1.runAssertion)({
|
|
1207
1211
|
prompt: 'Some prompt',
|
|
1208
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1212
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1209
1213
|
assertion: {
|
|
1210
1214
|
type: 'contains-sql',
|
|
1211
1215
|
},
|
|
@@ -1220,7 +1224,7 @@ describe('runAssertion', () => {
|
|
|
1220
1224
|
const output = 'this is some other stuff \n\n {"key": "value", "key2": {"key3": "value2", "key4": ["value3", "value4"]}} \n\n blah blah';
|
|
1221
1225
|
const result = await (0, assertions_1.runAssertion)({
|
|
1222
1226
|
prompt: 'Some prompt',
|
|
1223
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1227
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1224
1228
|
assertion: containsJsonAssertion,
|
|
1225
1229
|
test: {},
|
|
1226
1230
|
providerResponse: { output },
|
|
@@ -1234,7 +1238,7 @@ describe('runAssertion', () => {
|
|
|
1234
1238
|
const output = 'this is some other stuff \n\n {"key": "value", "key2": {"key3": "value2", "key4": ["value3", "value4"]}} another {"key": "value", "key2": {"key3": "value2", "key4": ["value3", "value4"]}}\n\n blah blah';
|
|
1235
1239
|
const result = await (0, assertions_1.runAssertion)({
|
|
1236
1240
|
prompt: 'Some prompt',
|
|
1237
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1241
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1238
1242
|
assertion: containsJsonAssertion,
|
|
1239
1243
|
test: {},
|
|
1240
1244
|
providerResponse: { output },
|
|
@@ -1248,7 +1252,7 @@ describe('runAssertion', () => {
|
|
|
1248
1252
|
const output = 'Not valid JSON';
|
|
1249
1253
|
const result = await (0, assertions_1.runAssertion)({
|
|
1250
1254
|
prompt: 'Some prompt',
|
|
1251
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1255
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1252
1256
|
assertion: containsJsonAssertion,
|
|
1253
1257
|
test: {},
|
|
1254
1258
|
providerResponse: { output },
|
|
@@ -1262,7 +1266,7 @@ describe('runAssertion', () => {
|
|
|
1262
1266
|
const output = 'here is the answer\n\n```{"latitude": 80.123, "longitude": -1}```';
|
|
1263
1267
|
const result = await (0, assertions_1.runAssertion)({
|
|
1264
1268
|
prompt: 'Some prompt',
|
|
1265
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1269
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1266
1270
|
assertion: containsJsonAssertionWithSchema,
|
|
1267
1271
|
test: {},
|
|
1268
1272
|
providerResponse: { output },
|
|
@@ -1276,7 +1280,7 @@ describe('runAssertion', () => {
|
|
|
1276
1280
|
const output = 'here is the answer\n\n```{"latitude": 80.123, "longitude": -1}```';
|
|
1277
1281
|
const result = await (0, assertions_1.runAssertion)({
|
|
1278
1282
|
prompt: 'Some prompt',
|
|
1279
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1283
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1280
1284
|
assertion: containsJsonAssertionWithSchema,
|
|
1281
1285
|
test: {},
|
|
1282
1286
|
providerResponse: { output },
|
|
@@ -1310,7 +1314,7 @@ describe('runAssertion', () => {
|
|
|
1310
1314
|
const output = 'here is the answer\n\n```{"latitude": 80.123, "longitude": -1}```';
|
|
1311
1315
|
const result = await (0, assertions_1.runAssertion)({
|
|
1312
1316
|
prompt: 'Some prompt',
|
|
1313
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1317
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1314
1318
|
assertion,
|
|
1315
1319
|
test: {},
|
|
1316
1320
|
providerResponse: { output },
|
|
@@ -1345,7 +1349,7 @@ describe('runAssertion', () => {
|
|
|
1345
1349
|
const output = 'here is the answer\n\n```{"latitude": "medium", "longitude": -1}```';
|
|
1346
1350
|
const result = await (0, assertions_1.runAssertion)({
|
|
1347
1351
|
prompt: 'Some prompt',
|
|
1348
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1352
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1349
1353
|
assertion,
|
|
1350
1354
|
test: {},
|
|
1351
1355
|
providerResponse: { output },
|
|
@@ -1360,7 +1364,7 @@ describe('runAssertion', () => {
|
|
|
1360
1364
|
const output = 'here is the answer\n\n```{"latitude": "medium", "longitude": -1}```';
|
|
1361
1365
|
const result = await (0, assertions_1.runAssertion)({
|
|
1362
1366
|
prompt: 'Some prompt',
|
|
1363
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1367
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1364
1368
|
assertion: containsJsonAssertionWithSchema,
|
|
1365
1369
|
test: {},
|
|
1366
1370
|
providerResponse: { output },
|
|
@@ -1374,7 +1378,7 @@ describe('runAssertion', () => {
|
|
|
1374
1378
|
const output = 'Expected output';
|
|
1375
1379
|
const result = await (0, assertions_1.runAssertion)({
|
|
1376
1380
|
prompt: 'Some prompt',
|
|
1377
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1381
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1378
1382
|
assertion: javascriptStringAssertion,
|
|
1379
1383
|
test: {},
|
|
1380
1384
|
providerResponse: { output },
|
|
@@ -1388,7 +1392,7 @@ describe('runAssertion', () => {
|
|
|
1388
1392
|
const output = 'Expected output';
|
|
1389
1393
|
const result = await (0, assertions_1.runAssertion)({
|
|
1390
1394
|
prompt: 'Some prompt',
|
|
1391
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1395
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1392
1396
|
assertion: javascriptStringAssertionWithNumber,
|
|
1393
1397
|
test: {},
|
|
1394
1398
|
providerResponse: { output },
|
|
@@ -1403,7 +1407,7 @@ describe('runAssertion', () => {
|
|
|
1403
1407
|
const output = 'Expected output';
|
|
1404
1408
|
const result = await (0, assertions_1.runAssertion)({
|
|
1405
1409
|
prompt: 'Some prompt',
|
|
1406
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1410
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1407
1411
|
assertion: javascriptBooleanAssertionWithConfig,
|
|
1408
1412
|
test: {},
|
|
1409
1413
|
providerResponse: { output },
|
|
@@ -1418,7 +1422,7 @@ describe('runAssertion', () => {
|
|
|
1418
1422
|
const output = 'Expected output with some extra characters';
|
|
1419
1423
|
const result = await (0, assertions_1.runAssertion)({
|
|
1420
1424
|
prompt: 'Some prompt',
|
|
1421
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1425
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1422
1426
|
assertion: javascriptBooleanAssertionWithConfig,
|
|
1423
1427
|
test: {},
|
|
1424
1428
|
providerResponse: { output },
|
|
@@ -1433,7 +1437,7 @@ describe('runAssertion', () => {
|
|
|
1433
1437
|
const output = 'Expected output';
|
|
1434
1438
|
const result = await (0, assertions_1.runAssertion)({
|
|
1435
1439
|
prompt: 'Some prompt',
|
|
1436
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1440
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1437
1441
|
assertion: javascriptStringAssertionWithNumberAndThreshold,
|
|
1438
1442
|
test: {},
|
|
1439
1443
|
providerResponse: { output },
|
|
@@ -1448,7 +1452,7 @@ describe('runAssertion', () => {
|
|
|
1448
1452
|
const output = '';
|
|
1449
1453
|
const result = await (0, assertions_1.runAssertion)({
|
|
1450
1454
|
prompt: 'Some prompt',
|
|
1451
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1455
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1452
1456
|
assertion: javascriptStringAssertionWithNumberAndThreshold,
|
|
1453
1457
|
test: {},
|
|
1454
1458
|
providerResponse: { output },
|
|
@@ -1467,7 +1471,7 @@ describe('runAssertion', () => {
|
|
|
1467
1471
|
};
|
|
1468
1472
|
const result = await (0, assertions_1.runAssertion)({
|
|
1469
1473
|
prompt: 'Some prompt',
|
|
1470
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1474
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1471
1475
|
assertion,
|
|
1472
1476
|
test: {},
|
|
1473
1477
|
providerResponse: { output },
|
|
@@ -1482,7 +1486,7 @@ describe('runAssertion', () => {
|
|
|
1482
1486
|
const output = 'Different output';
|
|
1483
1487
|
const result = await (0, assertions_1.runAssertion)({
|
|
1484
1488
|
prompt: 'Some prompt',
|
|
1485
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1489
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1486
1490
|
assertion: javascriptStringAssertion,
|
|
1487
1491
|
test: {},
|
|
1488
1492
|
providerResponse: { output },
|
|
@@ -1500,7 +1504,7 @@ describe('runAssertion', () => {
|
|
|
1500
1504
|
};
|
|
1501
1505
|
const result = await (0, assertions_1.runAssertion)({
|
|
1502
1506
|
prompt: 'variable value',
|
|
1503
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1507
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1504
1508
|
assertion,
|
|
1505
1509
|
test: { vars: { foo: 'Expected output' } },
|
|
1506
1510
|
providerResponse: { output },
|
|
@@ -1518,7 +1522,7 @@ describe('runAssertion', () => {
|
|
|
1518
1522
|
};
|
|
1519
1523
|
const result = await (0, assertions_1.runAssertion)({
|
|
1520
1524
|
prompt: 'Some prompt',
|
|
1521
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1525
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1522
1526
|
assertion: javascriptStringAssertionWithVars,
|
|
1523
1527
|
test: { vars: { foo: 'bar' } },
|
|
1524
1528
|
providerResponse: { output },
|
|
@@ -1536,7 +1540,7 @@ describe('runAssertion', () => {
|
|
|
1536
1540
|
};
|
|
1537
1541
|
const result = await (0, assertions_1.runAssertion)({
|
|
1538
1542
|
prompt: 'Some prompt',
|
|
1539
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1543
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1540
1544
|
assertion: javascriptStringAssertionWithVars,
|
|
1541
1545
|
test: { vars: { foo: 'bar' } },
|
|
1542
1546
|
providerResponse: { output },
|
|
@@ -1550,7 +1554,7 @@ describe('runAssertion', () => {
|
|
|
1550
1554
|
const output = 'Expected output';
|
|
1551
1555
|
const result = await (0, assertions_1.runAssertion)({
|
|
1552
1556
|
prompt: 'Some prompt',
|
|
1553
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1557
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1554
1558
|
assertion: javascriptFunctionAssertion,
|
|
1555
1559
|
test: {},
|
|
1556
1560
|
providerResponse: { output },
|
|
@@ -1565,7 +1569,7 @@ describe('runAssertion', () => {
|
|
|
1565
1569
|
const output = 'Expected output';
|
|
1566
1570
|
const result = await (0, assertions_1.runAssertion)({
|
|
1567
1571
|
prompt: 'Some prompt',
|
|
1568
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1572
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1569
1573
|
assertion: javascriptFunctionFailAssertion,
|
|
1570
1574
|
test: {},
|
|
1571
1575
|
providerResponse: { output },
|
|
@@ -1583,7 +1587,7 @@ describe('runAssertion', () => {
|
|
|
1583
1587
|
assertion: javascriptMultilineStringAssertion,
|
|
1584
1588
|
test: {},
|
|
1585
1589
|
providerResponse: { output },
|
|
1586
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1590
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1587
1591
|
});
|
|
1588
1592
|
expect(result).toMatchObject({
|
|
1589
1593
|
pass: true,
|
|
@@ -1597,7 +1601,7 @@ describe('runAssertion', () => {
|
|
|
1597
1601
|
assertion: javascriptMultilineStringAssertion,
|
|
1598
1602
|
test: {},
|
|
1599
1603
|
providerResponse: { output },
|
|
1600
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1604
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1601
1605
|
});
|
|
1602
1606
|
expect(result).toMatchObject({
|
|
1603
1607
|
pass: false,
|
|
@@ -1615,7 +1619,7 @@ describe('runAssertion', () => {
|
|
|
1615
1619
|
assertion: notContainsAssertion,
|
|
1616
1620
|
test: {},
|
|
1617
1621
|
providerResponse: { output },
|
|
1618
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1622
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1619
1623
|
});
|
|
1620
1624
|
expect(result).toMatchObject({
|
|
1621
1625
|
pass: true,
|
|
@@ -1629,7 +1633,7 @@ describe('runAssertion', () => {
|
|
|
1629
1633
|
assertion: notContainsAssertion,
|
|
1630
1634
|
test: {},
|
|
1631
1635
|
providerResponse: { output },
|
|
1632
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1636
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1633
1637
|
});
|
|
1634
1638
|
expect(result).toMatchObject({
|
|
1635
1639
|
pass: false,
|
|
@@ -1648,7 +1652,7 @@ describe('runAssertion', () => {
|
|
|
1648
1652
|
assertion: containsLowerAssertion,
|
|
1649
1653
|
test: {},
|
|
1650
1654
|
providerResponse: { output },
|
|
1651
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1655
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1652
1656
|
});
|
|
1653
1657
|
expect(result).toMatchObject({
|
|
1654
1658
|
pass: true,
|
|
@@ -1662,7 +1666,7 @@ describe('runAssertion', () => {
|
|
|
1662
1666
|
assertion: containsLowerAssertion,
|
|
1663
1667
|
test: {},
|
|
1664
1668
|
providerResponse: { output },
|
|
1665
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1669
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1666
1670
|
});
|
|
1667
1671
|
expect(result).toMatchObject({
|
|
1668
1672
|
pass: false,
|
|
@@ -1681,7 +1685,7 @@ describe('runAssertion', () => {
|
|
|
1681
1685
|
assertion: notContainsLowerAssertion,
|
|
1682
1686
|
test: {},
|
|
1683
1687
|
providerResponse: { output },
|
|
1684
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1688
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1685
1689
|
});
|
|
1686
1690
|
expect(result).toMatchObject({
|
|
1687
1691
|
pass: true,
|
|
@@ -1695,7 +1699,7 @@ describe('runAssertion', () => {
|
|
|
1695
1699
|
assertion: notContainsLowerAssertion,
|
|
1696
1700
|
test: {},
|
|
1697
1701
|
providerResponse: { output },
|
|
1698
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1702
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1699
1703
|
});
|
|
1700
1704
|
expect(result).toMatchObject({
|
|
1701
1705
|
pass: false,
|
|
@@ -1714,7 +1718,7 @@ describe('runAssertion', () => {
|
|
|
1714
1718
|
assertion: containsAnyAssertion,
|
|
1715
1719
|
test: {},
|
|
1716
1720
|
providerResponse: { output },
|
|
1717
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1721
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1718
1722
|
});
|
|
1719
1723
|
expect(result).toMatchObject({
|
|
1720
1724
|
pass: true,
|
|
@@ -1728,7 +1732,7 @@ describe('runAssertion', () => {
|
|
|
1728
1732
|
assertion: containsAnyAssertion,
|
|
1729
1733
|
test: {},
|
|
1730
1734
|
providerResponse: { output },
|
|
1731
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1735
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1732
1736
|
});
|
|
1733
1737
|
expect(result).toMatchObject({
|
|
1734
1738
|
pass: false,
|
|
@@ -1745,7 +1749,7 @@ describe('runAssertion', () => {
|
|
|
1745
1749
|
},
|
|
1746
1750
|
test: {},
|
|
1747
1751
|
providerResponse: { output },
|
|
1748
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1752
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1749
1753
|
});
|
|
1750
1754
|
expect(result).toMatchObject({
|
|
1751
1755
|
pass: true,
|
|
@@ -1762,7 +1766,7 @@ describe('runAssertion', () => {
|
|
|
1762
1766
|
},
|
|
1763
1767
|
test: {},
|
|
1764
1768
|
providerResponse: { output },
|
|
1765
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1769
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1766
1770
|
});
|
|
1767
1771
|
expect(result).toMatchObject({
|
|
1768
1772
|
pass: false,
|
|
@@ -1781,7 +1785,7 @@ describe('runAssertion', () => {
|
|
|
1781
1785
|
assertion: containsAllAssertion,
|
|
1782
1786
|
test: {},
|
|
1783
1787
|
providerResponse: { output },
|
|
1784
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1788
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1785
1789
|
});
|
|
1786
1790
|
expect(result).toMatchObject({
|
|
1787
1791
|
pass: true,
|
|
@@ -1795,7 +1799,7 @@ describe('runAssertion', () => {
|
|
|
1795
1799
|
assertion: containsAllAssertion,
|
|
1796
1800
|
test: {},
|
|
1797
1801
|
providerResponse: { output },
|
|
1798
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1802
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1799
1803
|
});
|
|
1800
1804
|
expect(result).toMatchObject({
|
|
1801
1805
|
pass: false,
|
|
@@ -1812,7 +1816,7 @@ describe('runAssertion', () => {
|
|
|
1812
1816
|
},
|
|
1813
1817
|
test: {},
|
|
1814
1818
|
providerResponse: { output },
|
|
1815
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1819
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1816
1820
|
});
|
|
1817
1821
|
expect(result).toMatchObject({
|
|
1818
1822
|
pass: true,
|
|
@@ -1829,7 +1833,7 @@ describe('runAssertion', () => {
|
|
|
1829
1833
|
},
|
|
1830
1834
|
test: {},
|
|
1831
1835
|
providerResponse: { output },
|
|
1832
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1836
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1833
1837
|
});
|
|
1834
1838
|
expect(result).toMatchObject({
|
|
1835
1839
|
pass: false,
|
|
@@ -1848,7 +1852,7 @@ describe('runAssertion', () => {
|
|
|
1848
1852
|
assertion: containsRegexAssertion,
|
|
1849
1853
|
test: {},
|
|
1850
1854
|
providerResponse: { output },
|
|
1851
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1855
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1852
1856
|
});
|
|
1853
1857
|
expect(result).toMatchObject({
|
|
1854
1858
|
pass: true,
|
|
@@ -1862,7 +1866,7 @@ describe('runAssertion', () => {
|
|
|
1862
1866
|
assertion: containsRegexAssertion,
|
|
1863
1867
|
test: {},
|
|
1864
1868
|
providerResponse: { output },
|
|
1865
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1869
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1866
1870
|
});
|
|
1867
1871
|
expect(result).toMatchObject({
|
|
1868
1872
|
pass: false,
|
|
@@ -1881,7 +1885,7 @@ describe('runAssertion', () => {
|
|
|
1881
1885
|
assertion: notContainsRegexAssertion,
|
|
1882
1886
|
test: {},
|
|
1883
1887
|
providerResponse: { output },
|
|
1884
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1888
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1885
1889
|
});
|
|
1886
1890
|
expect(result).toMatchObject({
|
|
1887
1891
|
pass: true,
|
|
@@ -1895,7 +1899,7 @@ describe('runAssertion', () => {
|
|
|
1895
1899
|
assertion: notContainsRegexAssertion,
|
|
1896
1900
|
test: {},
|
|
1897
1901
|
providerResponse: { output },
|
|
1898
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1902
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1899
1903
|
});
|
|
1900
1904
|
expect(result).toMatchObject({
|
|
1901
1905
|
pass: false,
|
|
@@ -1909,7 +1913,7 @@ describe('runAssertion', () => {
|
|
|
1909
1913
|
};
|
|
1910
1914
|
it('should pass when the webhook assertion passes', async () => {
|
|
1911
1915
|
const output = 'Expected output';
|
|
1912
|
-
jest.mocked(fetch_1.fetchWithRetries).mockImplementation(() => Promise.resolve(new
|
|
1916
|
+
jest.mocked(fetch_1.fetchWithRetries).mockImplementation(() => Promise.resolve(new Response(JSON.stringify({ pass: true }), {
|
|
1913
1917
|
status: 200,
|
|
1914
1918
|
headers: { 'Content-Type': 'application/json' },
|
|
1915
1919
|
})));
|
|
@@ -1918,7 +1922,7 @@ describe('runAssertion', () => {
|
|
|
1918
1922
|
assertion: webhookAssertion,
|
|
1919
1923
|
test: {},
|
|
1920
1924
|
providerResponse: { output },
|
|
1921
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1925
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1922
1926
|
});
|
|
1923
1927
|
expect(result).toMatchObject({
|
|
1924
1928
|
pass: true,
|
|
@@ -1927,7 +1931,7 @@ describe('runAssertion', () => {
|
|
|
1927
1931
|
});
|
|
1928
1932
|
it('should fail when the webhook assertion fails', async () => {
|
|
1929
1933
|
const output = 'Different output';
|
|
1930
|
-
jest.mocked(fetch_1.fetchWithRetries).mockImplementation(() => Promise.resolve(new
|
|
1934
|
+
jest.mocked(fetch_1.fetchWithRetries).mockImplementation(() => Promise.resolve(new Response(JSON.stringify({ pass: false }), {
|
|
1931
1935
|
status: 200,
|
|
1932
1936
|
headers: { 'Content-Type': 'application/json' },
|
|
1933
1937
|
})));
|
|
@@ -1936,7 +1940,7 @@ describe('runAssertion', () => {
|
|
|
1936
1940
|
assertion: webhookAssertion,
|
|
1937
1941
|
test: {},
|
|
1938
1942
|
providerResponse: { output },
|
|
1939
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1943
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1940
1944
|
});
|
|
1941
1945
|
expect(result).toMatchObject({
|
|
1942
1946
|
pass: false,
|
|
@@ -1945,7 +1949,7 @@ describe('runAssertion', () => {
|
|
|
1945
1949
|
});
|
|
1946
1950
|
it('should fail when the webhook returns an error', async () => {
|
|
1947
1951
|
const output = 'Expected output';
|
|
1948
|
-
jest.mocked(fetch_1.fetchWithRetries).mockImplementation(() => Promise.resolve(new
|
|
1952
|
+
jest.mocked(fetch_1.fetchWithRetries).mockImplementation(() => Promise.resolve(new Response('', {
|
|
1949
1953
|
status: 500,
|
|
1950
1954
|
headers: { 'Content-Type': 'application/json' },
|
|
1951
1955
|
})));
|
|
@@ -1954,7 +1958,7 @@ describe('runAssertion', () => {
|
|
|
1954
1958
|
assertion: webhookAssertion,
|
|
1955
1959
|
test: {},
|
|
1956
1960
|
providerResponse: { output },
|
|
1957
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1961
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1958
1962
|
});
|
|
1959
1963
|
expect(result).toMatchObject({
|
|
1960
1964
|
pass: false,
|
|
@@ -1974,7 +1978,7 @@ describe('runAssertion', () => {
|
|
|
1974
1978
|
assertion: rougeNAssertion,
|
|
1975
1979
|
test: {},
|
|
1976
1980
|
providerResponse: { output },
|
|
1977
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1981
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1978
1982
|
});
|
|
1979
1983
|
expect(result).toMatchObject({
|
|
1980
1984
|
pass: true,
|
|
@@ -1988,7 +1992,7 @@ describe('runAssertion', () => {
|
|
|
1988
1992
|
assertion: rougeNAssertion,
|
|
1989
1993
|
test: {},
|
|
1990
1994
|
providerResponse: { output },
|
|
1991
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
1995
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
1992
1996
|
});
|
|
1993
1997
|
expect(result).toMatchObject({
|
|
1994
1998
|
pass: false,
|
|
@@ -2007,7 +2011,7 @@ describe('runAssertion', () => {
|
|
|
2007
2011
|
assertion: startsWithAssertion,
|
|
2008
2012
|
test: {},
|
|
2009
2013
|
providerResponse: { output },
|
|
2010
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2014
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2011
2015
|
});
|
|
2012
2016
|
expect(result).toMatchObject({
|
|
2013
2017
|
pass: true,
|
|
@@ -2021,7 +2025,7 @@ describe('runAssertion', () => {
|
|
|
2021
2025
|
assertion: startsWithAssertion,
|
|
2022
2026
|
test: {},
|
|
2023
2027
|
providerResponse: { output },
|
|
2024
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2028
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2025
2029
|
});
|
|
2026
2030
|
expect(result).toMatchObject({
|
|
2027
2031
|
pass: false,
|
|
@@ -2057,7 +2061,7 @@ describe('runAssertion', () => {
|
|
|
2057
2061
|
assertion,
|
|
2058
2062
|
test,
|
|
2059
2063
|
providerResponse: { output },
|
|
2060
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2064
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2061
2065
|
});
|
|
2062
2066
|
expect(result).toMatchObject({
|
|
2063
2067
|
pass: true,
|
|
@@ -2074,7 +2078,7 @@ describe('runAssertion', () => {
|
|
|
2074
2078
|
const output = 'Expected output';
|
|
2075
2079
|
const result = await (0, assertions_1.runAssertion)({
|
|
2076
2080
|
prompt: 'Some prompt',
|
|
2077
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2081
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2078
2082
|
assertion: levenshteinAssertion,
|
|
2079
2083
|
test: {},
|
|
2080
2084
|
providerResponse: { output },
|
|
@@ -2088,7 +2092,7 @@ describe('runAssertion', () => {
|
|
|
2088
2092
|
const output = 'Different output';
|
|
2089
2093
|
const result = await (0, assertions_1.runAssertion)({
|
|
2090
2094
|
prompt: 'Some prompt',
|
|
2091
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2095
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2092
2096
|
assertion: levenshteinAssertion,
|
|
2093
2097
|
test: {},
|
|
2094
2098
|
providerResponse: { output },
|
|
@@ -2140,7 +2144,7 @@ describe('runAssertion', () => {
|
|
|
2140
2144
|
};
|
|
2141
2145
|
const result = await (0, assertions_1.runAssertion)({
|
|
2142
2146
|
prompt: 'Some prompt',
|
|
2143
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2147
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2144
2148
|
assertion: fileAssertion,
|
|
2145
2149
|
test: {},
|
|
2146
2150
|
providerResponse: { output },
|
|
@@ -2158,14 +2162,14 @@ describe('runAssertion', () => {
|
|
|
2158
2162
|
it('should resolve js paths relative to the configuration file', async () => {
|
|
2159
2163
|
const output = 'Expected output';
|
|
2160
2164
|
const mockFn = jest.fn((output) => output === 'Expected output');
|
|
2161
|
-
jest.doMock(path.resolve('/
|
|
2165
|
+
jest.doMock(path.resolve('/base/path/path/to/assert.js'), () => mockFn, { virtual: true });
|
|
2162
2166
|
const fileAssertion = {
|
|
2163
2167
|
type: 'javascript',
|
|
2164
2168
|
value: 'file://./path/to/assert.js',
|
|
2165
2169
|
};
|
|
2166
2170
|
const result = await (0, assertions_1.runAssertion)({
|
|
2167
2171
|
prompt: 'Some prompt',
|
|
2168
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2172
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2169
2173
|
assertion: fileAssertion,
|
|
2170
2174
|
test: {},
|
|
2171
2175
|
providerResponse: { output },
|
|
@@ -2190,7 +2194,7 @@ describe('runAssertion', () => {
|
|
|
2190
2194
|
};
|
|
2191
2195
|
const result = await (0, assertions_1.runAssertion)({
|
|
2192
2196
|
prompt: 'Some prompt',
|
|
2193
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2197
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2194
2198
|
assertion: pythonAssertion,
|
|
2195
2199
|
test: {},
|
|
2196
2200
|
providerResponse: { output },
|
|
@@ -2253,7 +2257,7 @@ describe('runAssertion', () => {
|
|
|
2253
2257
|
jest.mocked(wrapper_1.runPythonCode).mockResolvedValueOnce(resolvedValue);
|
|
2254
2258
|
const result = await (0, assertions_1.runAssertion)({
|
|
2255
2259
|
prompt: 'Some prompt',
|
|
2256
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2260
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2257
2261
|
assertion: pythonAssertion,
|
|
2258
2262
|
test: {},
|
|
2259
2263
|
providerResponse: { output },
|
|
@@ -2297,7 +2301,7 @@ describe('runAssertion', () => {
|
|
|
2297
2301
|
};
|
|
2298
2302
|
const result = await (0, assertions_1.runAssertion)({
|
|
2299
2303
|
prompt: 'Some prompt that includes "double quotes" and \'single quotes\'',
|
|
2300
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2304
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2301
2305
|
assertion: fileAssertion,
|
|
2302
2306
|
test: {},
|
|
2303
2307
|
providerResponse: { output },
|
|
@@ -2327,7 +2331,7 @@ describe('runAssertion', () => {
|
|
|
2327
2331
|
};
|
|
2328
2332
|
const result = await (0, assertions_1.runAssertion)({
|
|
2329
2333
|
prompt: 'Some prompt that includes "double quotes" and \'single quotes\'',
|
|
2330
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2334
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2331
2335
|
assertion: fileAssertion,
|
|
2332
2336
|
test: {},
|
|
2333
2337
|
providerResponse: { output },
|
|
@@ -2348,7 +2352,7 @@ describe('runAssertion', () => {
|
|
|
2348
2352
|
const output = 'Expected output';
|
|
2349
2353
|
const result = await (0, assertions_1.runAssertion)({
|
|
2350
2354
|
prompt: 'Some prompt',
|
|
2351
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2355
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2352
2356
|
assertion: {
|
|
2353
2357
|
type: 'latency',
|
|
2354
2358
|
threshold: 100,
|
|
@@ -2366,7 +2370,7 @@ describe('runAssertion', () => {
|
|
|
2366
2370
|
const output = 'Expected output';
|
|
2367
2371
|
const result = await (0, assertions_1.runAssertion)({
|
|
2368
2372
|
prompt: 'Some prompt',
|
|
2369
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2373
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2370
2374
|
assertion: {
|
|
2371
2375
|
type: 'latency',
|
|
2372
2376
|
threshold: 100,
|
|
@@ -2384,7 +2388,7 @@ describe('runAssertion', () => {
|
|
|
2384
2388
|
const output = 'Expected output';
|
|
2385
2389
|
await expect((0, assertions_1.runAssertion)({
|
|
2386
2390
|
prompt: 'Some prompt',
|
|
2387
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2391
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2388
2392
|
assertion: {
|
|
2389
2393
|
type: 'latency',
|
|
2390
2394
|
threshold: 100,
|
|
@@ -2397,7 +2401,7 @@ describe('runAssertion', () => {
|
|
|
2397
2401
|
const output = 'Expected output';
|
|
2398
2402
|
const result = await (0, assertions_1.runAssertion)({
|
|
2399
2403
|
prompt: 'Some prompt',
|
|
2400
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2404
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2401
2405
|
assertion: {
|
|
2402
2406
|
type: 'latency',
|
|
2403
2407
|
threshold: 100,
|
|
@@ -2415,7 +2419,7 @@ describe('runAssertion', () => {
|
|
|
2415
2419
|
const output = 'Expected output';
|
|
2416
2420
|
await expect((0, assertions_1.runAssertion)({
|
|
2417
2421
|
prompt: 'Some prompt',
|
|
2418
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2422
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2419
2423
|
assertion: {
|
|
2420
2424
|
type: 'latency',
|
|
2421
2425
|
},
|
|
@@ -2428,7 +2432,7 @@ describe('runAssertion', () => {
|
|
|
2428
2432
|
const output = 'Expected output';
|
|
2429
2433
|
const result = await (0, assertions_1.runAssertion)({
|
|
2430
2434
|
prompt: 'Some prompt',
|
|
2431
|
-
provider: new openai_1.OpenAiChatCompletionProvider('gpt-
|
|
2435
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
2432
2436
|
assertion: {
|
|
2433
2437
|
type: 'latency',
|
|
2434
2438
|
threshold: 100,
|
|
@@ -3277,6 +3281,80 @@ describe('runAssertion', () => {
|
|
|
3277
3281
|
})).rejects.toThrow('context-faithfulness assertion type must have a string output');
|
|
3278
3282
|
});
|
|
3279
3283
|
});
|
|
3284
|
+
describe('file references', () => {
|
|
3285
|
+
it('should handle file reference in string value', async () => {
|
|
3286
|
+
const assertion = {
|
|
3287
|
+
type: 'equals',
|
|
3288
|
+
value: 'file://expected_output.txt',
|
|
3289
|
+
};
|
|
3290
|
+
const expectedContent = 'Expected output';
|
|
3291
|
+
jest.mocked(fs.readFileSync).mockReturnValue(expectedContent);
|
|
3292
|
+
jest.mocked(path.resolve).mockReturnValue('/base/path/expected_output.txt');
|
|
3293
|
+
jest.mocked(path.extname).mockReturnValue('.txt');
|
|
3294
|
+
const result = await (0, assertions_1.runAssertion)({
|
|
3295
|
+
prompt: 'Some prompt',
|
|
3296
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
3297
|
+
assertion,
|
|
3298
|
+
test: {},
|
|
3299
|
+
providerResponse: { output: 'Expected output' },
|
|
3300
|
+
});
|
|
3301
|
+
expect(fs.readFileSync).toHaveBeenCalledWith('/base/path/expected_output.txt', 'utf8');
|
|
3302
|
+
expect(result.pass).toBe(true);
|
|
3303
|
+
});
|
|
3304
|
+
it('should handle file references in array values', async () => {
|
|
3305
|
+
const assertion = {
|
|
3306
|
+
type: 'contains-any',
|
|
3307
|
+
value: ['The expected output', 'string output', 'file://my_expected_output.txt'],
|
|
3308
|
+
};
|
|
3309
|
+
const fileContent = 'file content';
|
|
3310
|
+
jest.mocked(fs.readFileSync).mockReturnValue(fileContent);
|
|
3311
|
+
jest.mocked(path.resolve).mockReturnValue('/base/path/my_expected_output.txt');
|
|
3312
|
+
jest.mocked(path.extname).mockReturnValue('.txt');
|
|
3313
|
+
await expect((0, assertions_1.runAssertion)({
|
|
3314
|
+
prompt: 'Some prompt',
|
|
3315
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
3316
|
+
assertion,
|
|
3317
|
+
test: {},
|
|
3318
|
+
providerResponse: { output: 'file content' },
|
|
3319
|
+
})).resolves.toEqual(expect.objectContaining({
|
|
3320
|
+
pass: true,
|
|
3321
|
+
}));
|
|
3322
|
+
expect(fs.readFileSync).toHaveBeenCalledWith('/base/path/my_expected_output.txt', 'utf8');
|
|
3323
|
+
await expect((0, assertions_1.runAssertion)({
|
|
3324
|
+
prompt: 'Some prompt',
|
|
3325
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
3326
|
+
assertion,
|
|
3327
|
+
test: {},
|
|
3328
|
+
providerResponse: { output: 'string output' },
|
|
3329
|
+
})).resolves.toEqual(expect.objectContaining({
|
|
3330
|
+
pass: true,
|
|
3331
|
+
}));
|
|
3332
|
+
});
|
|
3333
|
+
it('should handle file reference in object value', async () => {
|
|
3334
|
+
const assertion = {
|
|
3335
|
+
type: 'is-json',
|
|
3336
|
+
value: 'file://schema.json',
|
|
3337
|
+
};
|
|
3338
|
+
const schemaContent = JSON.stringify({
|
|
3339
|
+
type: 'object',
|
|
3340
|
+
properties: {
|
|
3341
|
+
key: { type: 'string' },
|
|
3342
|
+
},
|
|
3343
|
+
});
|
|
3344
|
+
jest.mocked(fs.readFileSync).mockReturnValue(schemaContent);
|
|
3345
|
+
jest.mocked(path.resolve).mockReturnValue('/base/path/schema.json');
|
|
3346
|
+
jest.mocked(path.extname).mockReturnValue('.json');
|
|
3347
|
+
const result = await (0, assertions_1.runAssertion)({
|
|
3348
|
+
prompt: 'Some prompt',
|
|
3349
|
+
provider: new openai_1.OpenAiChatCompletionProvider('gpt-4o-mini'),
|
|
3350
|
+
assertion,
|
|
3351
|
+
test: {},
|
|
3352
|
+
providerResponse: { output: '{"key": "value"}' },
|
|
3353
|
+
});
|
|
3354
|
+
expect(fs.readFileSync).toHaveBeenCalledWith('/base/path/schema.json', 'utf8');
|
|
3355
|
+
expect(result.pass).toBe(true);
|
|
3356
|
+
});
|
|
3357
|
+
});
|
|
3280
3358
|
});
|
|
3281
3359
|
describe('validateXml', () => {
|
|
3282
3360
|
it('should validate a simple valid XML string', () => {
|