judgeval 0.2.4 → 0.2.5

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 (109) hide show
  1. package/dist/cjs/common/logger.js +28 -24
  2. package/dist/cjs/common/logger.js.map +1 -1
  3. package/dist/cjs/common/tracer.js +80 -130
  4. package/dist/cjs/common/tracer.js.map +1 -1
  5. package/dist/cjs/constants.js +2 -1
  6. package/dist/cjs/constants.js.map +1 -1
  7. package/dist/cjs/data/datasets/eval-dataset-client.js +45 -0
  8. package/dist/cjs/data/datasets/eval-dataset-client.js.map +1 -1
  9. package/dist/cjs/e2etests/eval-operations.test.js +3 -3
  10. package/dist/cjs/exporters/otel-exporter.js +352 -0
  11. package/dist/cjs/exporters/otel-exporter.js.map +1 -0
  12. package/dist/cjs/judges/index.js +217 -0
  13. package/dist/cjs/judges/index.js.map +1 -0
  14. package/dist/cjs/run-evaluation.js +13 -13
  15. package/dist/cjs/run-evaluation.js.map +1 -1
  16. package/dist/cjs/scorers/metrics/answer-correctness/answer-correctness.js +610 -0
  17. package/dist/cjs/scorers/metrics/answer-correctness/answer-correctness.js.map +1 -0
  18. package/dist/cjs/scorers/metrics/answer-correctness/index.js +19 -0
  19. package/dist/cjs/scorers/metrics/answer-correctness/index.js.map +1 -0
  20. package/dist/cjs/scorers/metrics/answer-correctness/prompts.js +175 -0
  21. package/dist/cjs/scorers/metrics/answer-correctness/prompts.js.map +1 -0
  22. package/dist/cjs/scorers/metrics/answer-relevancy/answer-relevancy.js +525 -0
  23. package/dist/cjs/scorers/metrics/answer-relevancy/answer-relevancy.js.map +1 -0
  24. package/dist/cjs/scorers/metrics/answer-relevancy/index.js +19 -0
  25. package/dist/cjs/scorers/metrics/answer-relevancy/index.js.map +1 -0
  26. package/dist/cjs/scorers/metrics/answer-relevancy/prompts.js +179 -0
  27. package/dist/cjs/scorers/metrics/answer-relevancy/prompts.js.map +1 -0
  28. package/dist/cjs/scorers/metrics/faithfulness/faithfulness.js +524 -0
  29. package/dist/cjs/scorers/metrics/faithfulness/faithfulness.js.map +1 -0
  30. package/dist/cjs/scorers/metrics/faithfulness/index.js +19 -0
  31. package/dist/cjs/scorers/metrics/faithfulness/index.js.map +1 -0
  32. package/dist/cjs/scorers/metrics/faithfulness/prompts.js +232 -0
  33. package/dist/cjs/scorers/metrics/faithfulness/prompts.js.map +1 -0
  34. package/dist/cjs/scorers/metrics/hallucination/hallucination.js +390 -0
  35. package/dist/cjs/scorers/metrics/hallucination/hallucination.js.map +1 -0
  36. package/dist/cjs/scorers/metrics/hallucination/index.js +11 -0
  37. package/dist/cjs/scorers/metrics/hallucination/index.js.map +1 -0
  38. package/dist/cjs/scorers/metrics/hallucination/prompts.js +106 -0
  39. package/dist/cjs/scorers/metrics/hallucination/prompts.js.map +1 -0
  40. package/dist/cjs/scorers/metrics/instruction-adherence/index.js +19 -0
  41. package/dist/cjs/scorers/metrics/instruction-adherence/index.js.map +1 -0
  42. package/dist/cjs/scorers/metrics/instruction-adherence/instruction-adherence.js +382 -0
  43. package/dist/cjs/scorers/metrics/instruction-adherence/instruction-adherence.js.map +1 -0
  44. package/dist/cjs/scorers/metrics/instruction-adherence/prompts.js +124 -0
  45. package/dist/cjs/scorers/metrics/instruction-adherence/prompts.js.map +1 -0
  46. package/dist/esm/common/logger.js +16 -11
  47. package/dist/esm/common/logger.js.map +1 -1
  48. package/dist/esm/common/tracer.js +78 -128
  49. package/dist/esm/common/tracer.js.map +1 -1
  50. package/dist/esm/constants.js +1 -0
  51. package/dist/esm/constants.js.map +1 -1
  52. package/dist/esm/data/datasets/eval-dataset-client.js +46 -1
  53. package/dist/esm/data/datasets/eval-dataset-client.js.map +1 -1
  54. package/dist/esm/e2etests/eval-operations.test.js +3 -3
  55. package/dist/esm/exporters/otel-exporter.js +348 -0
  56. package/dist/esm/exporters/otel-exporter.js.map +1 -0
  57. package/dist/esm/judges/index.js +185 -0
  58. package/dist/esm/judges/index.js.map +1 -0
  59. package/dist/esm/scorers/metrics/answer-correctness/answer-correctness.js +601 -0
  60. package/dist/esm/scorers/metrics/answer-correctness/answer-correctness.js.map +1 -0
  61. package/dist/esm/scorers/metrics/answer-correctness/index.js +3 -0
  62. package/dist/esm/scorers/metrics/answer-correctness/index.js.map +1 -0
  63. package/dist/esm/scorers/metrics/answer-correctness/prompts.js +171 -0
  64. package/dist/esm/scorers/metrics/answer-correctness/prompts.js.map +1 -0
  65. package/dist/esm/scorers/metrics/answer-relevancy/answer-relevancy.js +521 -0
  66. package/dist/esm/scorers/metrics/answer-relevancy/answer-relevancy.js.map +1 -0
  67. package/dist/esm/scorers/metrics/answer-relevancy/index.js +3 -0
  68. package/dist/esm/scorers/metrics/answer-relevancy/index.js.map +1 -0
  69. package/dist/esm/scorers/metrics/answer-relevancy/prompts.js +175 -0
  70. package/dist/esm/scorers/metrics/answer-relevancy/prompts.js.map +1 -0
  71. package/dist/esm/scorers/metrics/faithfulness/faithfulness.js +520 -0
  72. package/dist/esm/scorers/metrics/faithfulness/faithfulness.js.map +1 -0
  73. package/dist/esm/scorers/metrics/faithfulness/index.js +3 -0
  74. package/dist/esm/scorers/metrics/faithfulness/index.js.map +1 -0
  75. package/dist/esm/scorers/metrics/faithfulness/prompts.js +228 -0
  76. package/dist/esm/scorers/metrics/faithfulness/prompts.js.map +1 -0
  77. package/dist/esm/scorers/metrics/hallucination/hallucination.js +386 -0
  78. package/dist/esm/scorers/metrics/hallucination/hallucination.js.map +1 -0
  79. package/dist/esm/scorers/metrics/hallucination/index.js +3 -0
  80. package/dist/esm/scorers/metrics/hallucination/index.js.map +1 -0
  81. package/dist/esm/scorers/metrics/hallucination/prompts.js +102 -0
  82. package/dist/esm/scorers/metrics/hallucination/prompts.js.map +1 -0
  83. package/dist/esm/scorers/metrics/instruction-adherence/index.js +3 -0
  84. package/dist/esm/scorers/metrics/instruction-adherence/index.js.map +1 -0
  85. package/dist/esm/scorers/metrics/instruction-adherence/instruction-adherence.js +378 -0
  86. package/dist/esm/scorers/metrics/instruction-adherence/instruction-adherence.js.map +1 -0
  87. package/dist/esm/scorers/metrics/instruction-adherence/prompts.js +120 -0
  88. package/dist/esm/scorers/metrics/instruction-adherence/prompts.js.map +1 -0
  89. package/dist/types/common/logger.d.ts +1 -1
  90. package/dist/types/constants.d.ts +1 -0
  91. package/dist/types/data/datasets/eval-dataset-client.d.ts +5 -0
  92. package/dist/types/exporters/otel-exporter.d.ts +16 -0
  93. package/dist/types/judges/index.d.ts +50 -0
  94. package/dist/types/scorers/metrics/answer-correctness/answer-correctness.d.ts +99 -0
  95. package/dist/types/scorers/metrics/answer-correctness/index.d.ts +2 -0
  96. package/dist/types/scorers/metrics/answer-correctness/prompts.d.ts +71 -0
  97. package/dist/types/scorers/metrics/answer-relevancy/answer-relevancy.d.ts +78 -0
  98. package/dist/types/scorers/metrics/answer-relevancy/index.d.ts +2 -0
  99. package/dist/types/scorers/metrics/answer-relevancy/prompts.d.ts +71 -0
  100. package/dist/types/scorers/metrics/faithfulness/faithfulness.d.ts +77 -0
  101. package/dist/types/scorers/metrics/faithfulness/index.d.ts +2 -0
  102. package/dist/types/scorers/metrics/faithfulness/prompts.d.ts +94 -0
  103. package/dist/types/scorers/metrics/hallucination/hallucination.d.ts +67 -0
  104. package/dist/types/scorers/metrics/hallucination/index.d.ts +3 -0
  105. package/dist/types/scorers/metrics/hallucination/prompts.d.ts +63 -0
  106. package/dist/types/scorers/metrics/instruction-adherence/index.d.ts +2 -0
  107. package/dist/types/scorers/metrics/instruction-adherence/instruction-adherence.d.ts +67 -0
  108. package/dist/types/scorers/metrics/instruction-adherence/prompts.d.ts +78 -0
  109. package/package.json +32 -14
@@ -0,0 +1,521 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { JudgevalScorer } from '../../base-scorer.js';
11
+ import { APIScorer } from '../../../constants.js';
12
+ import { log, info, warn, error } from '../../../common/logger.js';
13
+ import { AnswerRelevancyTemplate, StatementsSchema, VerdictsSchema, ReasonSchema } from './prompts.js';
14
+ // Import the Judge interface and DefaultJudge from the answer-correctness module
15
+ // In a real implementation, these would be in a shared location
16
+ import { createJudge } from '../answer-correctness/answer-correctness.js';
17
+ // Required parameters for this scorer
18
+ const requiredParams = ['input', 'actualOutput'];
19
+ /**
20
+ * AnswerRelevancyScorer evaluates how relevant the actual output is to the input
21
+ * by breaking down the actual output into statements and checking if each statement
22
+ * is relevant to the input.
23
+ */
24
+ export class AnswerRelevancyScorer extends JudgevalScorer {
25
+ /**
26
+ * Constructor for AnswerRelevancyScorer
27
+ * @param threshold Minimum score to consider the evaluation successful (default: 0.5)
28
+ * @param model LLM to use for evaluation (string or Judge instance)
29
+ * @param include_reason Whether to generate a reason for the score
30
+ * @param async_mode Whether to use asynchronous evaluation
31
+ * @param strict_mode If true, sets threshold to 1.0 (requiring perfect match)
32
+ * @param verbose_mode Enables detailed logging
33
+ * @param user Optional user identifier for the LLM
34
+ * @param additional_metadata Additional metadata to include in the result
35
+ */
36
+ constructor(threshold = 0.5, model, include_reason = true, async_mode = true, strict_mode = false, verbose_mode = true, user, additional_metadata) {
37
+ super(APIScorer.ANSWER_RELEVANCY, strict_mode ? 1.0 : threshold, additional_metadata, include_reason, async_mode, strict_mode, verbose_mode);
38
+ info(`Initializing AnswerRelevancyScorer with threshold=${this.threshold}, model=${model}, strict_mode=${strict_mode}`);
39
+ const { judge, usingNativeModel } = createJudge(model, user);
40
+ this.model = judge;
41
+ this.usingNativeModel = usingNativeModel;
42
+ this.evaluation_model = this.model.getModelName();
43
+ log(`Using model: ${this.evaluation_model}`);
44
+ }
45
+ /**
46
+ * Get statements from actual output asynchronously
47
+ */
48
+ _aGetStatements(actualOutput) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ log("Getting statements asynchronously");
51
+ // Handle string array
52
+ const actualOutputStr = Array.isArray(actualOutput) ? actualOutput.join('\n') : actualOutput;
53
+ const prompt = AnswerRelevancyTemplate.deduceStatements(actualOutputStr);
54
+ try {
55
+ const response = yield this.model.aGenerate(prompt);
56
+ // Parse the response
57
+ try {
58
+ const jsonResponse = JSON.parse(response);
59
+ const parsed = StatementsSchema.safeParse(jsonResponse);
60
+ if (parsed.success) {
61
+ return parsed.data.statements;
62
+ }
63
+ else {
64
+ // Fallback to direct access if schema validation fails
65
+ warn("Schema validation failed, falling back to raw response parsing");
66
+ if (jsonResponse.statements && Array.isArray(jsonResponse.statements)) {
67
+ return jsonResponse.statements;
68
+ }
69
+ }
70
+ }
71
+ catch (parseError) {
72
+ warn(`Error parsing JSON response: ${parseError}`);
73
+ // Try to extract JSON from the response text
74
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
75
+ if (jsonMatch) {
76
+ try {
77
+ const extractedJson = JSON.parse(jsonMatch[0]);
78
+ if (extractedJson.statements && Array.isArray(extractedJson.statements)) {
79
+ return extractedJson.statements;
80
+ }
81
+ }
82
+ catch (e) {
83
+ error(`Failed to extract JSON from response: ${e}`);
84
+ }
85
+ }
86
+ }
87
+ // If all parsing attempts fail, return empty array
88
+ error("Failed to parse statements from model response");
89
+ return [];
90
+ }
91
+ catch (e) {
92
+ error(`Error getting statements: ${e}`);
93
+ return [];
94
+ }
95
+ });
96
+ }
97
+ /**
98
+ * Get statements from actual output synchronously
99
+ */
100
+ _getStatements(actualOutput) {
101
+ // Handle string array
102
+ const actualOutputStr = Array.isArray(actualOutput) ? actualOutput.join('\n') : actualOutput;
103
+ const prompt = AnswerRelevancyTemplate.deduceStatements(actualOutputStr);
104
+ try {
105
+ const response = this.model.generate(prompt);
106
+ // Parse the response
107
+ try {
108
+ const jsonResponse = JSON.parse(response);
109
+ const parsed = StatementsSchema.safeParse(jsonResponse);
110
+ if (parsed.success) {
111
+ return parsed.data.statements;
112
+ }
113
+ else {
114
+ // Fallback to direct access if schema validation fails
115
+ warn("Schema validation failed, falling back to raw response parsing");
116
+ if (jsonResponse.statements && Array.isArray(jsonResponse.statements)) {
117
+ return jsonResponse.statements;
118
+ }
119
+ }
120
+ }
121
+ catch (parseError) {
122
+ warn(`Error parsing JSON response: ${parseError}`);
123
+ // Try to extract JSON from the response text
124
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
125
+ if (jsonMatch) {
126
+ try {
127
+ const extractedJson = JSON.parse(jsonMatch[0]);
128
+ if (extractedJson.statements && Array.isArray(extractedJson.statements)) {
129
+ return extractedJson.statements;
130
+ }
131
+ }
132
+ catch (e) {
133
+ error(`Failed to extract JSON from response: ${e}`);
134
+ }
135
+ }
136
+ }
137
+ // If all parsing attempts fail, return empty array
138
+ error("Failed to parse statements from model response");
139
+ return [];
140
+ }
141
+ catch (e) {
142
+ error(`Error getting statements: ${e}`);
143
+ return [];
144
+ }
145
+ }
146
+ /**
147
+ * Get verdicts for statements against input asynchronously
148
+ */
149
+ _aGetVerdicts(input) {
150
+ return __awaiter(this, void 0, void 0, function* () {
151
+ log("Getting verdicts asynchronously");
152
+ if (!this.statements || this.statements.length === 0) {
153
+ warn("No statements to evaluate");
154
+ return [];
155
+ }
156
+ // Handle string array
157
+ const inputStr = Array.isArray(input) ? input.join('\n') : input;
158
+ const prompt = AnswerRelevancyTemplate.generateVerdicts(inputStr, this.statements);
159
+ try {
160
+ const response = yield this.model.aGenerate(prompt);
161
+ // Parse the response
162
+ try {
163
+ const jsonResponse = JSON.parse(response);
164
+ const parsed = VerdictsSchema.safeParse(jsonResponse);
165
+ if (parsed.success) {
166
+ return parsed.data.verdicts;
167
+ }
168
+ else {
169
+ // Fallback to direct access if schema validation fails
170
+ warn("Schema validation failed, falling back to raw response parsing");
171
+ if (jsonResponse.verdicts && Array.isArray(jsonResponse.verdicts)) {
172
+ return jsonResponse.verdicts.map((v) => ({
173
+ verdict: v.verdict,
174
+ reason: v.reason
175
+ }));
176
+ }
177
+ }
178
+ }
179
+ catch (parseError) {
180
+ warn(`Error parsing JSON response: ${parseError}`);
181
+ // Try to extract JSON from the response text
182
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
183
+ if (jsonMatch) {
184
+ try {
185
+ const extractedJson = JSON.parse(jsonMatch[0]);
186
+ if (extractedJson.verdicts && Array.isArray(extractedJson.verdicts)) {
187
+ return extractedJson.verdicts.map((v) => ({
188
+ verdict: v.verdict,
189
+ reason: v.reason
190
+ }));
191
+ }
192
+ }
193
+ catch (e) {
194
+ error(`Failed to extract JSON from response: ${e}`);
195
+ }
196
+ }
197
+ }
198
+ // If all parsing attempts fail, return empty array
199
+ error("Failed to parse verdicts from model response");
200
+ return [];
201
+ }
202
+ catch (e) {
203
+ error(`Error getting verdicts: ${e}`);
204
+ return [];
205
+ }
206
+ });
207
+ }
208
+ /**
209
+ * Get verdicts for statements against input synchronously
210
+ */
211
+ _getVerdicts(input) {
212
+ if (!this.statements || this.statements.length === 0) {
213
+ warn("No statements to evaluate");
214
+ return [];
215
+ }
216
+ // Handle string array
217
+ const inputStr = Array.isArray(input) ? input.join('\n') : input;
218
+ const prompt = AnswerRelevancyTemplate.generateVerdicts(inputStr, this.statements);
219
+ try {
220
+ const response = this.model.generate(prompt);
221
+ // Parse the response
222
+ try {
223
+ const jsonResponse = JSON.parse(response);
224
+ const parsed = VerdictsSchema.safeParse(jsonResponse);
225
+ if (parsed.success) {
226
+ return parsed.data.verdicts;
227
+ }
228
+ else {
229
+ // Fallback to direct access if schema validation fails
230
+ warn("Schema validation failed, falling back to raw response parsing");
231
+ if (jsonResponse.verdicts && Array.isArray(jsonResponse.verdicts)) {
232
+ return jsonResponse.verdicts.map((v) => ({
233
+ verdict: v.verdict,
234
+ reason: v.reason
235
+ }));
236
+ }
237
+ }
238
+ }
239
+ catch (parseError) {
240
+ warn(`Error parsing JSON response: ${parseError}`);
241
+ // Try to extract JSON from the response text
242
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
243
+ if (jsonMatch) {
244
+ try {
245
+ const extractedJson = JSON.parse(jsonMatch[0]);
246
+ if (extractedJson.verdicts && Array.isArray(extractedJson.verdicts)) {
247
+ return extractedJson.verdicts.map((v) => ({
248
+ verdict: v.verdict,
249
+ reason: v.reason
250
+ }));
251
+ }
252
+ }
253
+ catch (e) {
254
+ error(`Failed to extract JSON from response: ${e}`);
255
+ }
256
+ }
257
+ }
258
+ // If all parsing attempts fail, return empty array
259
+ error("Failed to parse verdicts from model response");
260
+ return [];
261
+ }
262
+ catch (e) {
263
+ error(`Error getting verdicts: ${e}`);
264
+ return [];
265
+ }
266
+ }
267
+ /**
268
+ * Get reason for the score asynchronously
269
+ */
270
+ _aGetReason(input) {
271
+ return __awaiter(this, void 0, void 0, function* () {
272
+ var _a;
273
+ if (!this.include_reason) {
274
+ return undefined;
275
+ }
276
+ if (!this.verdicts || this.verdicts.length === 0) {
277
+ return undefined;
278
+ }
279
+ try {
280
+ // Handle string array
281
+ const inputStr = Array.isArray(input) ? input.join('\n') : input;
282
+ // Get irrelevant statements with their verdicts
283
+ const irrelevantStatements = [];
284
+ for (let i = 0; i < this.statements.length; i++) {
285
+ if (i < this.verdicts.length && this.verdicts[i].verdict.toLowerCase() === "no") {
286
+ irrelevantStatements.push([this.statements[i], this.verdicts[i].reason]);
287
+ }
288
+ }
289
+ if (irrelevantStatements.length === 0) {
290
+ return "All statements in the actual output are relevant to the input.";
291
+ }
292
+ // Generate reason
293
+ const prompt = AnswerRelevancyTemplate.generateReason(irrelevantStatements, inputStr, ((_a = this.score) === null || _a === void 0 ? void 0 : _a.toString()) || "0");
294
+ const reasonText = yield this.model.aGenerate(prompt);
295
+ const parsedReason = ReasonSchema.safeParse(JSON.parse(reasonText));
296
+ if (!parsedReason.success) {
297
+ error(`Failed to parse reason: ${parsedReason.error}`);
298
+ return undefined;
299
+ }
300
+ return parsedReason.data.reason;
301
+ }
302
+ catch (err) {
303
+ error(`Error getting reason: ${err}`);
304
+ return undefined;
305
+ }
306
+ });
307
+ }
308
+ /**
309
+ * Get reason for the score synchronously
310
+ */
311
+ _getReason(input) {
312
+ var _a;
313
+ if (!this.include_reason) {
314
+ return undefined;
315
+ }
316
+ if (!this.verdicts || this.verdicts.length === 0) {
317
+ return undefined;
318
+ }
319
+ try {
320
+ // Handle string array
321
+ const inputStr = Array.isArray(input) ? input.join('\n') : input;
322
+ // Get irrelevant statements with their verdicts
323
+ const irrelevantStatements = [];
324
+ for (let i = 0; i < this.statements.length; i++) {
325
+ if (i < this.verdicts.length && this.verdicts[i].verdict.toLowerCase() === "no") {
326
+ irrelevantStatements.push([this.statements[i], this.verdicts[i].reason]);
327
+ }
328
+ }
329
+ if (irrelevantStatements.length === 0) {
330
+ return "All statements in the actual output are relevant to the input.";
331
+ }
332
+ // Generate reason
333
+ const prompt = AnswerRelevancyTemplate.generateReason(irrelevantStatements, inputStr, ((_a = this.score) === null || _a === void 0 ? void 0 : _a.toString()) || "0");
334
+ const reasonText = this.model.generate(prompt);
335
+ const parsedReason = ReasonSchema.safeParse(JSON.parse(reasonText));
336
+ if (!parsedReason.success) {
337
+ error(`Failed to parse reason: ${parsedReason.error}`);
338
+ return undefined;
339
+ }
340
+ return parsedReason.data.reason;
341
+ }
342
+ catch (err) {
343
+ error(`Error getting reason: ${err}`);
344
+ return undefined;
345
+ }
346
+ }
347
+ /**
348
+ * Compute score based on verdicts
349
+ */
350
+ _computeScore() {
351
+ log("Computing score");
352
+ // If we have no statements or verdicts due to API errors, return 0 instead of 1
353
+ // This ensures that when API calls fail, we don't incorrectly return a perfect score
354
+ if (!this.statements || this.statements.length === 0) {
355
+ return 0;
356
+ }
357
+ if (!this.verdicts || this.verdicts.length === 0) {
358
+ return 0;
359
+ }
360
+ let relevantCount = 0;
361
+ for (const verdict of this.verdicts) {
362
+ if (verdict.verdict.trim().toLowerCase() !== "no") {
363
+ relevantCount++;
364
+ }
365
+ }
366
+ const score = relevantCount / this.verdicts.length;
367
+ // Match Python implementation's handling of strict_mode
368
+ return this.strict_mode && score < this.threshold ? 0 : score;
369
+ }
370
+ /**
371
+ * Check if example has required parameters
372
+ */
373
+ _checkExampleParams(example) {
374
+ for (const param of requiredParams) {
375
+ if (param === 'input' && !example.input) {
376
+ throw new Error(`Example is missing required parameter: input`);
377
+ }
378
+ else if (param === 'actualOutput' && !example.actualOutput) {
379
+ throw new Error(`Example is missing required parameter: actualOutput`);
380
+ }
381
+ }
382
+ }
383
+ /**
384
+ * Create verbose logs for debugging
385
+ */
386
+ _createVerboseLogs() {
387
+ if (!this.verbose_mode) {
388
+ return '';
389
+ }
390
+ const steps = [
391
+ `Statements:\n${JSON.stringify(this.statements, null, 2)}`,
392
+ `Verdicts:\n${JSON.stringify(this.verdicts, null, 2)}`,
393
+ `Score: ${this.score}\nReason: ${this.reason}`
394
+ ];
395
+ return steps.join('\n\n');
396
+ }
397
+ /**
398
+ * Score an example synchronously - this is for compatibility with the Python SDK
399
+ */
400
+ syncScoreExample(example) {
401
+ info("Starting example scoring (sync mode)");
402
+ try {
403
+ // Check required parameters
404
+ this._checkExampleParams(example);
405
+ // Process example
406
+ if (this.async_mode) {
407
+ throw new Error("Cannot use synchronous scoreExample with async_mode=true. Use async scoreExample instead.");
408
+ }
409
+ this.statements = this._getStatements(example.actualOutput);
410
+ this.verdicts = this._getVerdicts(example.input);
411
+ this.score = this._computeScore();
412
+ this.reason = this._getReason(example.input);
413
+ this.success = this._successCheck();
414
+ this.verbose_logs = this._createVerboseLogs();
415
+ // Calculate evaluation cost
416
+ // In a real implementation, you would track tokens used in each LLM call
417
+ this.evaluation_cost = undefined;
418
+ info(`Scoring completed with score: ${this.score}`);
419
+ // Ensure all fields match the ScorerData interface
420
+ return {
421
+ name: this.type,
422
+ threshold: this.threshold,
423
+ success: this.success || false,
424
+ score: this.score || 0,
425
+ reason: this.reason !== undefined ? this.reason : null,
426
+ strict_mode: this.strict_mode || false,
427
+ evaluation_model: this.evaluation_model || null,
428
+ error: null,
429
+ evaluation_cost: null,
430
+ verbose_logs: this.verbose_logs ? this.verbose_logs : null,
431
+ additional_metadata: this.additional_metadata || {}
432
+ };
433
+ }
434
+ catch (error) {
435
+ // Handle errors
436
+ const errorMessage = error instanceof Error ? error.message : String(error);
437
+ this.error = errorMessage;
438
+ this.success = false;
439
+ return {
440
+ name: this.type,
441
+ threshold: this.threshold,
442
+ success: false,
443
+ score: 0,
444
+ reason: `Error during scoring: ${errorMessage}`,
445
+ strict_mode: this.strict_mode || false,
446
+ evaluation_model: this.evaluation_model || null,
447
+ error: errorMessage,
448
+ evaluation_cost: null,
449
+ verbose_logs: null,
450
+ additional_metadata: this.additional_metadata || {}
451
+ };
452
+ }
453
+ }
454
+ /**
455
+ * Score an example - this is the main method that should be called
456
+ * It will use async or sync methods based on the async_mode setting
457
+ */
458
+ scoreExample(example) {
459
+ return __awaiter(this, void 0, void 0, function* () {
460
+ if (!this.async_mode) {
461
+ return this.syncScoreExample(example);
462
+ }
463
+ info("Starting example scoring (async mode)");
464
+ try {
465
+ // Check required parameters
466
+ this._checkExampleParams(example);
467
+ // Process example
468
+ this.statements = yield this._aGetStatements(example.actualOutput);
469
+ this.verdicts = yield this._aGetVerdicts(example.input);
470
+ this.score = this._computeScore();
471
+ this.reason = yield this._aGetReason(example.input);
472
+ this.success = this._successCheck();
473
+ this.verbose_logs = this._createVerboseLogs();
474
+ // Calculate evaluation cost
475
+ // In a real implementation, you would track tokens used in each LLM call
476
+ this.evaluation_cost = undefined;
477
+ info(`Scoring completed with score: ${this.score}`);
478
+ // Ensure all fields match the ScorerData interface
479
+ return {
480
+ name: this.type,
481
+ threshold: this.threshold,
482
+ success: this.success || false,
483
+ score: this.score || 0,
484
+ reason: this.reason !== undefined ? this.reason : null,
485
+ strict_mode: this.strict_mode || false,
486
+ evaluation_model: this.evaluation_model || null,
487
+ error: null,
488
+ evaluation_cost: null,
489
+ verbose_logs: this.verbose_logs ? this.verbose_logs : null,
490
+ additional_metadata: this.additional_metadata || {}
491
+ };
492
+ }
493
+ catch (error) {
494
+ // Handle errors
495
+ const errorMessage = error instanceof Error ? error.message : String(error);
496
+ this.error = errorMessage;
497
+ this.success = false;
498
+ return {
499
+ name: this.type,
500
+ threshold: this.threshold,
501
+ success: false,
502
+ score: 0,
503
+ reason: `Error during scoring: ${errorMessage}`,
504
+ strict_mode: this.strict_mode || false,
505
+ evaluation_model: this.evaluation_model || null,
506
+ error: errorMessage,
507
+ evaluation_cost: null,
508
+ verbose_logs: null,
509
+ additional_metadata: this.additional_metadata || {}
510
+ };
511
+ }
512
+ });
513
+ }
514
+ /**
515
+ * Get the name of the scorer
516
+ */
517
+ get name() {
518
+ return "Answer Relevancy";
519
+ }
520
+ }
521
+ //# sourceMappingURL=answer-relevancy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-relevancy.js","sourceRoot":"","sources":["../../../../../src/scorers/metrics/answer-relevancy/answer-relevancy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './answer-relevancy.js';
2
+ export * from './prompts.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/scorers/metrics/answer-relevancy/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC"}