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