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