promptfoo 0.26.3 → 0.27.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.
Files changed (57) hide show
  1. package/README.md +36 -24
  2. package/dist/package.json +1 -1
  3. package/dist/src/assertions.d.ts +5 -1
  4. package/dist/src/assertions.d.ts.map +1 -1
  5. package/dist/src/assertions.js +66 -15
  6. package/dist/src/assertions.js.map +1 -1
  7. package/dist/src/evaluator.js +1 -1
  8. package/dist/src/evaluator.js.map +1 -1
  9. package/dist/src/external/ragas.d.ts +11 -0
  10. package/dist/src/external/ragas.d.ts.map +1 -0
  11. package/dist/src/external/ragas.js +72 -0
  12. package/dist/src/external/ragas.js.map +1 -0
  13. package/dist/src/index.d.ts +4 -0
  14. package/dist/src/index.d.ts.map +1 -1
  15. package/dist/src/index.js +9 -4
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/matchers.d.ts +5 -1
  18. package/dist/src/matchers.d.ts.map +1 -1
  19. package/dist/src/matchers.js +244 -117
  20. package/dist/src/matchers.js.map +1 -1
  21. package/dist/src/prompts.d.ts +1 -0
  22. package/dist/src/prompts.d.ts.map +1 -1
  23. package/dist/src/prompts.js +5 -1
  24. package/dist/src/prompts.js.map +1 -1
  25. package/dist/src/providers/azureopenai.d.ts.map +1 -1
  26. package/dist/src/providers/azureopenai.js +12 -9
  27. package/dist/src/providers/azureopenai.js.map +1 -1
  28. package/dist/src/providers/huggingface.d.ts.map +1 -1
  29. package/dist/src/providers/huggingface.js +8 -1
  30. package/dist/src/providers/huggingface.js.map +1 -1
  31. package/dist/src/providers/openai.d.ts +4 -0
  32. package/dist/src/providers/openai.d.ts.map +1 -1
  33. package/dist/src/providers/openai.js +7 -16
  34. package/dist/src/providers/openai.js.map +1 -1
  35. package/dist/src/types.d.ts +11 -5
  36. package/dist/src/types.d.ts.map +1 -1
  37. package/dist/src/web/nextui/404/index.html +1 -1
  38. package/dist/src/web/nextui/404.html +1 -1
  39. package/dist/src/web/nextui/_next/static/chunks/891-e0c1a7fdffc35da6.js +1 -0
  40. package/dist/src/web/nextui/auth/login/index.html +1 -1
  41. package/dist/src/web/nextui/auth/login/index.txt +1 -1
  42. package/dist/src/web/nextui/auth/signup/index.html +1 -1
  43. package/dist/src/web/nextui/auth/signup/index.txt +1 -1
  44. package/dist/src/web/nextui/datasets/index.html +1 -1
  45. package/dist/src/web/nextui/datasets/index.txt +1 -1
  46. package/dist/src/web/nextui/eval/index.html +1 -1
  47. package/dist/src/web/nextui/eval/index.txt +2 -2
  48. package/dist/src/web/nextui/index.html +1 -1
  49. package/dist/src/web/nextui/index.txt +1 -1
  50. package/dist/src/web/nextui/prompts/index.html +1 -1
  51. package/dist/src/web/nextui/prompts/index.txt +1 -1
  52. package/dist/src/web/nextui/setup/index.html +1 -1
  53. package/dist/src/web/nextui/setup/index.txt +1 -1
  54. package/package.json +1 -1
  55. package/dist/src/web/nextui/_next/static/chunks/891-39302d1bb9c15774.js +0 -1
  56. /package/dist/src/web/nextui/_next/static/{ReEGaox6u26zGmwxPVB1M → codtrFOJ1E_QSfoGITJsr}/_buildManifest.js +0 -0
  57. /package/dist/src/web/nextui/_next/static/{ReEGaox6u26zGmwxPVB1M → codtrFOJ1E_QSfoGITJsr}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAOzD,OAAO,KAAK,EAAE,eAAe,EAAa,iBAAiB,EAAmB,MAAM,SAAS,CAAC;AAE9F,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,iBAAe,QAAQ,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,GAAE,eAAoB,8CA8DlF;AAED,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;AAE3C,wBAIE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAOzD,OAAO,KAAK,EAAE,eAAe,EAAa,iBAAiB,EAAmB,MAAM,SAAS,CAAC;AAE9F,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,iBAAe,QAAQ,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,GAAE,eAAoB,8CAqElF;AAED,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AAE3C,wBAIE"}
package/dist/src/index.js CHANGED
@@ -53,10 +53,15 @@ async function evaluate(testSuite, options = {}) {
53
53
  tests: await (0, testCases_1.readTests)(testSuite.tests),
54
54
  nunjucksFilters: (0, util_1.readFilters)(testSuite.nunjucksFilters || {}),
55
55
  // Full prompts expected (not filepaths)
56
- prompts: testSuite.prompts.map((promptContent) => ({
57
- raw: promptContent,
58
- display: promptContent,
59
- })),
56
+ prompts: testSuite.prompts.map((promptContent) => typeof promptContent === 'string'
57
+ ? {
58
+ raw: promptContent,
59
+ display: promptContent,
60
+ }
61
+ : {
62
+ raw: JSON.stringify(promptContent),
63
+ display: JSON.stringify(promptContent),
64
+ }),
60
65
  };
61
66
  // Resolve nested providers
62
67
  for (const test of constructedTestSuite.tests || []) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  import type { ApiProvider, GradingConfig, GradingResult } from './types';
2
- export declare function getGradingProvider(provider: GradingConfig['provider'], defaultProvider: ApiProvider | null): Promise<ApiProvider | null>;
2
+ export declare function getGradingProvider(type: 'embedding' | 'classification' | 'text', provider: GradingConfig['provider'], defaultProvider: ApiProvider | null): Promise<ApiProvider | null>;
3
3
  export declare function matchesSimilarity(expected: string, output: string, threshold: number, inverse?: boolean, grading?: GradingConfig): Promise<Omit<GradingResult, 'assertion'>>;
4
4
  export declare function matchesClassification(expected: string, output: string, threshold: number, grading?: GradingConfig): Promise<Omit<GradingResult, 'assertion'>>;
5
5
  export declare function matchesLlmRubric(expected: string, output: string, grading?: GradingConfig, vars?: Record<string, string | object>): Promise<Omit<GradingResult, 'assertion'>>;
6
6
  export declare function matchesFactuality(input: string, expected: string, output: string, grading?: GradingConfig, vars?: Record<string, string | object>): Promise<Omit<GradingResult, 'assertion'>>;
7
7
  export declare function matchesClosedQa(input: string, expected: string, output: string, grading?: GradingConfig, vars?: Record<string, string | object>): Promise<Omit<GradingResult, 'assertion'>>;
8
+ export declare function matchesAnswerRelevance(input: string, output: string, threshold: number, grading?: GradingConfig): Promise<Omit<GradingResult, 'assertion'>>;
9
+ export declare function matchesContextRecall(context: string, groundTruth: string, threshold: number, grading?: GradingConfig, vars?: Record<string, string | object>): Promise<Omit<GradingResult, 'assertion'>>;
10
+ export declare function matchesContextRelevance(question: string, context: string, threshold: number, grading?: GradingConfig): Promise<Omit<GradingResult, 'assertion'>>;
11
+ export declare function matchesContextFaithfulness(query: string, output: string, context: string, threshold: number, grading?: GradingConfig, vars?: Record<string, string | object>): Promise<Omit<GradingResult, 'assertion'>>;
8
12
  //# sourceMappingURL=matchers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/matchers.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,SAAS,CAAC;AA+B1F,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EACnC,eAAe,EAAE,WAAW,GAAG,IAAI,GAClC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAoB7B;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,OAAe,EACxB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAiE3C;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAoC3C;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,aAAa,EACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAwD3C;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,aAAa,EACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CA0F3C;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,aAAa,EACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAgE3C"}
1
+ {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/matchers.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.matchesClosedQa = exports.matchesFactuality = exports.matchesLlmRubric = exports.matchesClassification = exports.matchesSimilarity = exports.getGradingProvider = void 0;
6
+ exports.matchesContextFaithfulness = exports.matchesContextRelevance = exports.matchesContextRecall = exports.matchesAnswerRelevance = exports.matchesClosedQa = exports.matchesFactuality = exports.matchesLlmRubric = exports.matchesClassification = exports.matchesSimilarity = exports.getGradingProvider = void 0;
7
7
  const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
8
8
  const logger_1 = __importDefault(require("./logger"));
9
9
  const openai_1 = require("./providers/openai");
@@ -35,22 +35,28 @@ function fromVars(vars) {
35
35
  }
36
36
  return ret;
37
37
  }
38
- async function getGradingProvider(provider, defaultProvider) {
38
+ async function loadFromProviderOptions(provider) {
39
+ (0, tiny_invariant_1.default)(provider.id, 'Provider supplied to assertion must have an id');
40
+ // TODO(ian): set basepath if invoked from filesystem config
41
+ return (0, providers_1.loadApiProvider)(provider.id, { options: provider });
42
+ }
43
+ async function getGradingProvider(type, provider, defaultProvider) {
39
44
  let finalProvider;
40
45
  if (typeof provider === 'string') {
41
46
  finalProvider = await (0, providers_1.loadApiProvider)(provider);
42
47
  }
43
- else if (typeof provider === 'object' &&
44
- typeof provider.callApi === 'function') {
48
+ else if (typeof provider === 'object' && typeof provider.id === 'function') {
45
49
  // Defined directly as an ApiProvider
46
50
  finalProvider = provider;
47
51
  }
48
52
  else if (typeof provider === 'object') {
53
+ // Defined as embedding, classification, or text record
54
+ const typeValue = provider[type];
55
+ if (typeValue) {
56
+ finalProvider = await getGradingProvider(type, typeValue, defaultProvider);
57
+ }
49
58
  // Defined as ProviderOptions
50
- const providerId = typeof provider.id === 'string' ? provider.id : provider.id?.();
51
- (0, tiny_invariant_1.default)(providerId, 'Provider supplied to llm-rubric must have an id');
52
- // TODO(ian): set basepath if invoked from filesystem config
53
- finalProvider = await (0, providers_1.loadApiProvider)(providerId, { options: provider });
59
+ finalProvider = await loadFromProviderOptions(provider);
54
60
  }
55
61
  else {
56
62
  finalProvider = defaultProvider;
@@ -58,15 +64,38 @@ async function getGradingProvider(provider, defaultProvider) {
58
64
  return finalProvider;
59
65
  }
60
66
  exports.getGradingProvider = getGradingProvider;
67
+ async function getAndCheckProvider(type, provider, defaultProvider, checkName) {
68
+ let finalProvider = await getGradingProvider(type, provider, defaultProvider);
69
+ let requiredMethod = 'callApi';
70
+ if (type === 'embedding') {
71
+ requiredMethod = 'callEmbeddingApi';
72
+ }
73
+ else if (type === 'classification') {
74
+ requiredMethod = 'callClassificationApi';
75
+ }
76
+ (0, tiny_invariant_1.default)(finalProvider, `No provider found for ${checkName}`);
77
+ if (typeof finalProvider[requiredMethod] !== 'function') {
78
+ logger_1.default.warn(`Provider ${finalProvider.id} does not implement ${requiredMethod} for ${checkName}, falling back to default`);
79
+ finalProvider = defaultProvider;
80
+ }
81
+ (0, tiny_invariant_1.default)(finalProvider, `No provider found for ${checkName}`);
82
+ (0, tiny_invariant_1.default)(typeof finalProvider[requiredMethod] === 'function', `Provider ${finalProvider.id} must implement ${requiredMethod} for ${checkName}`);
83
+ return finalProvider;
84
+ }
85
+ function fail(reason, tokensUsed) {
86
+ return {
87
+ pass: false,
88
+ score: 0,
89
+ reason,
90
+ tokensUsed: {
91
+ total: tokensUsed?.total || 0,
92
+ prompt: tokensUsed?.prompt || 0,
93
+ completion: tokensUsed?.completion || 0,
94
+ },
95
+ };
96
+ }
61
97
  async function matchesSimilarity(expected, output, threshold, inverse = false, grading) {
62
- let provider = grading?.provider;
63
- let finalProvider = await getGradingProvider(provider, openai_1.DefaultEmbeddingProvider);
64
- (0, tiny_invariant_1.default)(finalProvider, 'No provider found for similarity check');
65
- if (typeof finalProvider.callEmbeddingApi !== 'function') {
66
- logger_1.default.warn(`Provider ${finalProvider.id} does not implement callEmbeddingApi for similarity check, falling back to default`);
67
- finalProvider = openai_1.DefaultEmbeddingProvider;
68
- }
69
- (0, tiny_invariant_1.default)(typeof finalProvider.callEmbeddingApi === 'function', `Provider ${finalProvider.id} must implement callEmbeddingApi for similarity check`);
98
+ let finalProvider = (await getAndCheckProvider('embedding', grading?.provider, openai_1.DefaultEmbeddingProvider, 'similarity check'));
70
99
  const expectedEmbedding = await finalProvider.callEmbeddingApi(expected);
71
100
  const outputEmbedding = await finalProvider.callEmbeddingApi(output);
72
101
  const tokensUsed = {
@@ -76,20 +105,10 @@ async function matchesSimilarity(expected, output, threshold, inverse = false, g
76
105
  (outputEmbedding.tokenUsage?.completion || 0),
77
106
  };
78
107
  if (expectedEmbedding.error || outputEmbedding.error) {
79
- return {
80
- pass: false,
81
- score: 0,
82
- reason: expectedEmbedding.error || outputEmbedding.error || 'Unknown error fetching embeddings',
83
- tokensUsed,
84
- };
108
+ return fail(expectedEmbedding.error || outputEmbedding.error || 'Unknown error fetching embeddings', tokensUsed);
85
109
  }
86
110
  if (!expectedEmbedding.embedding || !outputEmbedding.embedding) {
87
- return {
88
- pass: false,
89
- score: 0,
90
- reason: 'Embedding not found',
91
- tokensUsed,
92
- };
111
+ return fail('Embedding not found', tokensUsed);
93
112
  }
94
113
  const similarity = cosineSimilarity(expectedEmbedding.embedding, outputEmbedding.embedding);
95
114
  const pass = inverse ? similarity <= threshold : similarity >= threshold;
@@ -112,20 +131,10 @@ async function matchesSimilarity(expected, output, threshold, inverse = false, g
112
131
  }
113
132
  exports.matchesSimilarity = matchesSimilarity;
114
133
  async function matchesClassification(expected, output, threshold, grading) {
115
- let provider = grading?.provider;
116
- let finalProvider = await getGradingProvider(provider, null);
117
- (0, tiny_invariant_1.default)(finalProvider, 'No provider found for classification check');
118
- if (typeof finalProvider.callClassificationApi !== 'function') {
119
- throw new Error(`Provider ${finalProvider.id} does not implement callClassificationApi`);
120
- }
121
- (0, tiny_invariant_1.default)(typeof finalProvider.callClassificationApi === 'function', `Provider ${finalProvider.id} must implement callClassificationApi for classification check`);
134
+ let finalProvider = (await getAndCheckProvider('classification', grading?.provider, null, 'classification check'));
122
135
  const resp = await finalProvider.callClassificationApi(output);
123
- if (resp.error || !resp.classification) {
124
- return {
125
- pass: false,
126
- score: 0,
127
- reason: resp.error || 'Unknown error fetching classification',
128
- };
136
+ if (!resp.classification) {
137
+ return fail(resp.error || 'Unknown error fetching classification');
129
138
  }
130
139
  const score = resp.classification[expected] || 0;
131
140
  if (score >= threshold) {
@@ -151,42 +160,19 @@ async function matchesLlmRubric(expected, output, grading, vars) {
151
160
  rubric: JSON.stringify(expected).slice(1, -1),
152
161
  ...fromVars(vars),
153
162
  });
154
- let provider = grading.provider;
155
- let finalProvider = await getGradingProvider(provider, openai_1.DefaultGradingProvider);
156
- (0, tiny_invariant_1.default)(finalProvider, 'No provider found for llm-rubric check');
163
+ let finalProvider = await getAndCheckProvider('text', grading.provider, openai_1.DefaultGradingProvider, 'llm-rubric check');
157
164
  const resp = await finalProvider.callApi(prompt);
158
165
  if (resp.error || !resp.output) {
159
- return {
160
- pass: false,
161
- score: 0,
162
- reason: resp.error || 'No output',
163
- tokensUsed: {
164
- total: resp.tokenUsage?.total || 0,
165
- prompt: resp.tokenUsage?.prompt || 0,
166
- completion: resp.tokenUsage?.completion || 0,
167
- },
168
- };
166
+ return fail(resp.error || 'No output', resp.tokenUsage);
169
167
  }
170
168
  (0, tiny_invariant_1.default)(typeof resp.output === 'string', 'llm-rubric produced malformed response');
171
169
  try {
172
170
  const parsed = JSON.parse(resp.output);
173
- parsed.tokensUsed = {
174
- total: resp.tokenUsage?.total || 0,
175
- prompt: resp.tokenUsage?.prompt || 0,
176
- completion: resp.tokenUsage?.completion || 0,
177
- };
178
171
  const pass = parsed.pass ?? (typeof parsed.score === 'undefined' ? true : parsed.score > 0);
179
172
  return {
180
173
  pass,
181
174
  score: parsed.score ?? (pass ? 1.0 : 0.0),
182
175
  reason: parsed.reason || (pass ? 'Grading passed' : 'Grading failed'),
183
- };
184
- }
185
- catch (err) {
186
- return {
187
- pass: false,
188
- score: 0,
189
- reason: `llm-rubric produced malformed response: ${resp.output}`,
190
176
  tokensUsed: {
191
177
  total: resp.tokenUsage?.total || 0,
192
178
  prompt: resp.tokenUsage?.prompt || 0,
@@ -194,6 +180,9 @@ async function matchesLlmRubric(expected, output, grading, vars) {
194
180
  },
195
181
  };
196
182
  }
183
+ catch (err) {
184
+ return fail(`llm-rubric produced malformed response: ${resp.output}`, resp.tokenUsage);
185
+ }
197
186
  }
198
187
  exports.matchesLlmRubric = matchesLlmRubric;
199
188
  async function matchesFactuality(input, expected, output, grading, vars) {
@@ -206,32 +195,21 @@ async function matchesFactuality(input, expected, output, grading, vars) {
206
195
  completion: JSON.stringify(output).slice(1, -1),
207
196
  ...fromVars(vars),
208
197
  });
209
- let provider = grading.provider;
210
- let finalProvider = await getGradingProvider(provider, openai_1.DefaultGradingProvider);
211
- (0, tiny_invariant_1.default)(finalProvider, 'No provider found for model-graded-factuality check');
198
+ let finalProvider = await getAndCheckProvider('text', grading.provider, openai_1.DefaultGradingProvider, 'factuality check');
212
199
  const resp = await finalProvider.callApi(prompt);
213
200
  if (resp.error || !resp.output) {
214
- return {
215
- pass: false,
216
- score: 0,
217
- reason: resp.error || 'No output',
218
- tokensUsed: {
219
- total: resp.tokenUsage?.total || 0,
220
- prompt: resp.tokenUsage?.prompt || 0,
221
- completion: resp.tokenUsage?.completion || 0,
222
- },
223
- };
201
+ return fail(resp.error || 'No output', resp.tokenUsage);
224
202
  }
225
- (0, tiny_invariant_1.default)(typeof resp.output === 'string', 'model-graded-factuality produced malformed response');
203
+ (0, tiny_invariant_1.default)(typeof resp.output === 'string', 'factuality produced malformed response');
226
204
  try {
227
205
  const option = resp.output.trim().charAt(1); // Extract the option character
228
206
  let reason = '';
229
207
  const scoreLookup = {
230
- A: grading.closedQa?.subset ?? 1,
231
- B: grading.closedQa?.superset ?? 1,
232
- C: grading.closedQa?.agree ?? 1,
233
- D: grading.closedQa?.disagree ?? 0,
234
- E: grading.closedQa?.differButFactual ?? 1,
208
+ A: grading.factuality?.subset ?? 1,
209
+ B: grading.factuality?.superset ?? 1,
210
+ C: grading.factuality?.agree ?? 1,
211
+ D: grading.factuality?.disagree ?? 0,
212
+ E: grading.factuality?.differButFactual ?? 1,
235
213
  };
236
214
  // Passing is defined as scores with value >0, and failing as scores with value 0.
237
215
  const passing = Object.keys(scoreLookup).filter((key) => scoreLookup[key] > 0);
@@ -267,16 +245,7 @@ async function matchesFactuality(input, expected, output, grading, vars) {
267
245
  };
268
246
  }
269
247
  catch (err) {
270
- return {
271
- pass: false,
272
- score: 0,
273
- reason: `Error parsing output: ${err.message}`,
274
- tokensUsed: {
275
- total: resp.tokenUsage?.total || 0,
276
- prompt: resp.tokenUsage?.prompt || 0,
277
- completion: resp.tokenUsage?.completion || 0,
278
- },
279
- };
248
+ return fail(`Error parsing output: ${err.message}`, resp.tokenUsage);
280
249
  }
281
250
  }
282
251
  exports.matchesFactuality = matchesFactuality;
@@ -290,21 +259,10 @@ async function matchesClosedQa(input, expected, output, grading, vars) {
290
259
  completion: JSON.stringify(output).slice(1, -1),
291
260
  ...fromVars(vars),
292
261
  });
293
- let provider = grading.provider;
294
- let finalProvider = await getGradingProvider(provider, openai_1.DefaultGradingProvider);
295
- (0, tiny_invariant_1.default)(finalProvider, 'No provider found for model-graded-closedqa check');
262
+ let finalProvider = await getAndCheckProvider('text', grading.provider, openai_1.DefaultGradingProvider, 'model-graded-closedqa check');
296
263
  const resp = await finalProvider.callApi(prompt);
297
264
  if (resp.error || !resp.output) {
298
- return {
299
- pass: false,
300
- score: 0,
301
- reason: resp.error || 'No output',
302
- tokensUsed: {
303
- total: resp.tokenUsage?.total || 0,
304
- prompt: resp.tokenUsage?.prompt || 0,
305
- completion: resp.tokenUsage?.completion || 0,
306
- },
307
- };
265
+ return fail(resp.error || 'No output', resp.tokenUsage);
308
266
  }
309
267
  (0, tiny_invariant_1.default)(typeof resp.output === 'string', 'model-graded-closedqa produced malformed response');
310
268
  try {
@@ -331,17 +289,186 @@ async function matchesClosedQa(input, expected, output, grading, vars) {
331
289
  };
332
290
  }
333
291
  catch (err) {
334
- return {
335
- pass: false,
336
- score: 0,
337
- reason: `Error parsing output: ${err.message}`,
338
- tokensUsed: {
339
- total: resp.tokenUsage?.total || 0,
340
- prompt: resp.tokenUsage?.prompt || 0,
341
- completion: resp.tokenUsage?.completion || 0,
292
+ return fail(`Error parsing output: ${err.message}`, resp.tokenUsage);
293
+ }
294
+ }
295
+ exports.matchesClosedQa = matchesClosedQa;
296
+ async function matchesAnswerRelevance(input, output, threshold, grading) {
297
+ let embeddingProvider = await getAndCheckProvider('embedding', grading?.provider, openai_1.DefaultEmbeddingProvider, 'answer relevancy check');
298
+ let textProvider = await getAndCheckProvider('text', grading?.provider, openai_1.DefaultGradingProvider, 'answer relevancy check');
299
+ const tokensUsed = {
300
+ total: 0,
301
+ prompt: 0,
302
+ completion: 0,
303
+ };
304
+ const candidateQuestions = [];
305
+ for (let i = 0; i < 3; i++) {
306
+ // TODO(ian): Parallelize
307
+ const resp = await textProvider.callApi(JSON.stringify([
308
+ prompts_1.ANSWER_RELEVANCY_GENERATE,
309
+ {
310
+ role: 'user',
311
+ content: output,
342
312
  },
313
+ ]));
314
+ if (resp.error || !resp.output) {
315
+ tokensUsed.total += resp.tokenUsage?.total || 0;
316
+ tokensUsed.prompt += resp.tokenUsage?.prompt || 0;
317
+ tokensUsed.completion += resp.tokenUsage?.completion || 0;
318
+ return fail(resp.error || 'No output', tokensUsed);
319
+ }
320
+ (0, tiny_invariant_1.default)(typeof resp.output === 'string', 'answer relevancy check produced malformed response');
321
+ candidateQuestions.push(resp.output);
322
+ }
323
+ (0, tiny_invariant_1.default)(typeof embeddingProvider.callEmbeddingApi === 'function', `Provider ${embeddingProvider.id} must implement callEmbeddingApi for similarity check`);
324
+ const inputEmbeddingResp = await embeddingProvider.callEmbeddingApi(input);
325
+ if (inputEmbeddingResp.error || !inputEmbeddingResp.embedding) {
326
+ tokensUsed.total += inputEmbeddingResp.tokenUsage?.total || 0;
327
+ tokensUsed.prompt += inputEmbeddingResp.tokenUsage?.prompt || 0;
328
+ tokensUsed.completion += inputEmbeddingResp.tokenUsage?.completion || 0;
329
+ return fail(inputEmbeddingResp.error || 'No embedding', tokensUsed);
330
+ }
331
+ const inputEmbedding = inputEmbeddingResp.embedding;
332
+ const similarities = [];
333
+ for (const question of candidateQuestions) {
334
+ const resp = await embeddingProvider.callEmbeddingApi(question);
335
+ tokensUsed.total += resp.tokenUsage?.total || 0;
336
+ tokensUsed.prompt += resp.tokenUsage?.prompt || 0;
337
+ tokensUsed.completion += resp.tokenUsage?.completion || 0;
338
+ if (resp.error || !resp.embedding) {
339
+ return fail(resp.error || 'No embedding', tokensUsed);
340
+ }
341
+ similarities.push(cosineSimilarity(inputEmbedding, resp.embedding));
342
+ }
343
+ const similarity = similarities.reduce((a, b) => a + b, 0) / similarities.length;
344
+ const pass = similarity >= threshold;
345
+ const greaterThanReason = `Relevance ${similarity.toFixed(2)} is greater than threshold ${threshold}`;
346
+ const lessThanReason = `Relevance ${similarity.toFixed(2)} is less than threshold ${threshold}`;
347
+ if (pass) {
348
+ return {
349
+ pass: true,
350
+ score: similarity,
351
+ reason: greaterThanReason,
352
+ tokensUsed,
343
353
  };
344
354
  }
355
+ return {
356
+ pass: false,
357
+ score: similarity,
358
+ reason: lessThanReason,
359
+ tokensUsed,
360
+ };
345
361
  }
346
- exports.matchesClosedQa = matchesClosedQa;
362
+ exports.matchesAnswerRelevance = matchesAnswerRelevance;
363
+ async function matchesContextRecall(context, groundTruth, threshold, grading, vars) {
364
+ let textProvider = await getAndCheckProvider('text', grading?.provider, openai_1.DefaultGradingProvider, 'context recall check');
365
+ const promptText = nunjucks.renderString(prompts_1.CONTEXT_RECALL, {
366
+ context: JSON.stringify(context).slice(1, -1),
367
+ groundTruth: JSON.stringify(groundTruth).slice(1, -1),
368
+ ...fromVars(vars),
369
+ });
370
+ const resp = await textProvider.callApi(promptText);
371
+ if (resp.error || !resp.output) {
372
+ return fail(resp.error || 'No output', resp.tokenUsage);
373
+ }
374
+ (0, tiny_invariant_1.default)(typeof resp.output === 'string', 'context-recall produced malformed response');
375
+ const sentences = resp.output.split('\n');
376
+ const numerator = sentences.reduce((acc, sentence) => acc + (sentence.includes(prompts_1.CONTEXT_RECALL_ATTRIBUTED_TOKEN) ? 1 : 0), 0);
377
+ const score = numerator / sentences.length;
378
+ const pass = score >= threshold;
379
+ return {
380
+ pass,
381
+ score,
382
+ reason: pass
383
+ ? `Recall ${score.toFixed(2)} is >= ${threshold}`
384
+ : `Recall ${score.toFixed(2)} is < ${threshold}`,
385
+ tokensUsed: {
386
+ total: resp.tokenUsage?.total || 0,
387
+ prompt: resp.tokenUsage?.prompt || 0,
388
+ completion: resp.tokenUsage?.completion || 0,
389
+ },
390
+ };
391
+ }
392
+ exports.matchesContextRecall = matchesContextRecall;
393
+ async function matchesContextRelevance(question, context, threshold, grading) {
394
+ let textProvider = await getAndCheckProvider('text', grading?.provider, openai_1.DefaultGradingProvider, 'context relevance check');
395
+ const promptText = nunjucks.renderString(prompts_1.CONTEXT_RELEVANCE, {
396
+ context: JSON.stringify(context).slice(1, -1),
397
+ question: JSON.stringify(question).slice(1, -1),
398
+ });
399
+ const resp = await textProvider.callApi(promptText);
400
+ if (resp.error || !resp.output) {
401
+ return fail(resp.error || 'No output', resp.tokenUsage);
402
+ }
403
+ (0, tiny_invariant_1.default)(typeof resp.output === 'string', 'context-relevance produced malformed response');
404
+ const sentences = resp.output.split('\n');
405
+ const numerator = sentences.reduce((acc, sentence) => acc + (sentence.includes(prompts_1.CONTEXT_RELEVANCE_BAD) ? 0 : 1), 0);
406
+ const score = numerator / sentences.length;
407
+ const pass = score >= threshold;
408
+ return {
409
+ pass,
410
+ score,
411
+ reason: pass
412
+ ? `Relevance ${score.toFixed(2)} is >= ${threshold}`
413
+ : `Relevance ${score.toFixed(2)} is < ${threshold}`,
414
+ tokensUsed: {
415
+ total: resp.tokenUsage?.total || 0,
416
+ prompt: resp.tokenUsage?.prompt || 0,
417
+ completion: resp.tokenUsage?.completion || 0,
418
+ },
419
+ };
420
+ }
421
+ exports.matchesContextRelevance = matchesContextRelevance;
422
+ async function matchesContextFaithfulness(query, output, context, threshold, grading, vars) {
423
+ let textProvider = await getAndCheckProvider('text', grading?.provider, openai_1.DefaultGradingProvider, 'faithfulness check');
424
+ let promptText = nunjucks.renderString(prompts_1.CONTEXT_FAITHFULNESS_LONGFORM, {
425
+ question: JSON.stringify(query).slice(1, -1),
426
+ answer: JSON.stringify(output).slice(1, -1),
427
+ ...fromVars(vars),
428
+ });
429
+ let resp = await textProvider.callApi(promptText);
430
+ if (resp.error || !resp.output) {
431
+ return fail(resp.error || 'No output', resp.tokenUsage);
432
+ }
433
+ (0, tiny_invariant_1.default)(typeof resp.output === 'string', 'context-faithfulness produced malformed response');
434
+ let statements = resp.output.split('\n');
435
+ promptText = nunjucks.renderString(prompts_1.CONTEXT_FAITHFULNESS_NLI_STATEMENTS, {
436
+ context: JSON.stringify(context).slice(1, -1),
437
+ statements: JSON.stringify(statements.join('\n')).slice(1, -1),
438
+ ...fromVars(vars),
439
+ });
440
+ resp = await textProvider.callApi(promptText);
441
+ if (resp.error || !resp.output) {
442
+ return fail(resp.error || 'No output', resp.tokenUsage);
443
+ }
444
+ (0, tiny_invariant_1.default)(typeof resp.output === 'string', 'context-faithfulness produced malformed response');
445
+ let finalAnswer = 'Final verdict for each statement in order:';
446
+ finalAnswer = finalAnswer.toLowerCase();
447
+ let verdicts = resp.output.toLowerCase().trim();
448
+ let score;
449
+ if (verdicts.includes(finalAnswer)) {
450
+ verdicts = verdicts.slice(verdicts.indexOf(finalAnswer) + finalAnswer.length);
451
+ score =
452
+ verdicts.split('.').filter((answer) => answer.trim() !== '' && !answer.includes('yes'))
453
+ .length / statements.length;
454
+ }
455
+ else {
456
+ score = (verdicts.split('verdict: no').length - 1) / statements.length;
457
+ }
458
+ score = 1 - score;
459
+ let pass = score >= threshold;
460
+ return {
461
+ pass,
462
+ score,
463
+ reason: pass
464
+ ? `Faithfulness ${score.toFixed(2)} is >= ${threshold}`
465
+ : `Faithfulness ${score.toFixed(2)} is < ${threshold}`,
466
+ tokensUsed: {
467
+ total: resp.tokenUsage?.total || 0,
468
+ prompt: resp.tokenUsage?.prompt || 0,
469
+ completion: resp.tokenUsage?.completion || 0,
470
+ },
471
+ };
472
+ }
473
+ exports.matchesContextFaithfulness = matchesContextFaithfulness;
347
474
  //# sourceMappingURL=matchers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/matchers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/matchers.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { UnifiedConfig, Prompt, TestSuite } from './types';
2
+ export * from './external/ragas';
2
3
  export declare function readProviderPromptMap(config: Partial<UnifiedConfig>, parsedPrompts: Prompt[]): TestSuite['providerPromptMap'];
3
4
  export declare function readPrompts(promptPathOrGlobs: string | string[] | Record<string, string>, basePath?: string): Prompt[];
4
5
  export declare const DEFAULT_GRADING_PROMPT: string;
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/prompts.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EAEN,SAAS,EAEV,MAAM,SAAS,CAAC;AAIjB,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,aAAa,EAAE,MAAM,EAAE,GACtB,SAAS,CAAC,mBAAmB,CAAC,CAyChC;AAmBD,wBAAgB,WAAW,CACzB,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7D,QAAQ,GAAE,MAAW,GACpB,MAAM,EAAE,CA6JV;AACD,eAAO,MAAM,sBAAsB,QAmBjC,CAAC;AAGH,eAAO,MAAM,wBAAwB,QAsBnC,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAiBlC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;CAO1C,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;CAGzC,CAAC;AAEF,eAAO,MAAM,uCAAuC;;;CAGnD,CAAC"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/prompts.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EAEN,SAAS,EAEV,MAAM,SAAS,CAAC;AAEjB,cAAc,kBAAkB,CAAC;AAIjC,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,aAAa,EAAE,MAAM,EAAE,GACtB,SAAS,CAAC,mBAAmB,CAAC,CAyChC;AAmBD,wBAAgB,WAAW,CACzB,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7D,QAAQ,GAAE,MAAW,GACpB,MAAM,EAAE,CA+JV;AACD,eAAO,MAAM,sBAAsB,QAmBjC,CAAC;AAGH,eAAO,MAAM,wBAAwB,QAsBnC,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAiBlC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;CAO1C,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;CAGzC,CAAC;AAEF,eAAO,MAAM,uCAAuC;;;CAGnD,CAAC"}