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,524 @@
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.FaithfulnessScorer = 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
+ const index_js_1 = require("../../../judges/index.js");
18
+ // Required parameters for this scorer
19
+ const requiredParams = ['input', 'actualOutput', 'retrievalContext'];
20
+ /**
21
+ * FaithfulnessScorer evaluates how well the actual output is supported by the retrieval context
22
+ * by extracting claims from the output and checking if each claim is supported by the context.
23
+ */
24
+ class FaithfulnessScorer extends base_scorer_js_1.JudgevalScorer {
25
+ /**
26
+ * Constructor for FaithfulnessScorer
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(constants_js_1.APIScorer.FAITHFULNESS, strict_mode ? 1.0 : threshold, additional_metadata, include_reason, async_mode, strict_mode, verbose_mode);
38
+ (0, logger_js_1.info)(`Initializing FaithfulnessScorer with threshold=${this.threshold}, model=${model}, strict_mode=${strict_mode}`);
39
+ const { judge, usingNativeModel } = (0, index_js_1.createJudge)(model, user);
40
+ this.model = judge;
41
+ this.usingNativeModel = usingNativeModel;
42
+ this.evaluation_model = this.model.getModelName();
43
+ (0, logger_js_1.log)(`Using model: ${this.evaluation_model}`);
44
+ }
45
+ /**
46
+ * Generate claims from actual output asynchronously
47
+ */
48
+ _aGenerateClaims(actualOutput_1) {
49
+ return __awaiter(this, arguments, void 0, function* (actualOutput, allClaims = false) {
50
+ (0, logger_js_1.log)("Generating claims asynchronously");
51
+ // Handle string array
52
+ const actualOutputStr = Array.isArray(actualOutput) ? actualOutput.join('\n') : actualOutput;
53
+ const prompt = prompts_js_1.FaithfulnessTemplate.findClaims(actualOutputStr, allClaims);
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 = prompts_js_1.ClaimsSchema.safeParse(jsonResponse);
60
+ if (parsed.success) {
61
+ this.claimsWithQuotes = parsed.data.claims;
62
+ return parsed.data.claims.map(c => c.claim);
63
+ }
64
+ else {
65
+ // Fallback to direct access if schema validation fails
66
+ (0, logger_js_1.warn)("Schema validation failed, falling back to raw response parsing");
67
+ if (jsonResponse.claims && Array.isArray(jsonResponse.claims)) {
68
+ this.claimsWithQuotes = jsonResponse.claims;
69
+ return jsonResponse.claims.map((c) => c.claim);
70
+ }
71
+ }
72
+ }
73
+ catch (parseError) {
74
+ (0, logger_js_1.warn)(`Error parsing JSON response: ${parseError}`);
75
+ // Try to extract JSON from the response text
76
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
77
+ if (jsonMatch) {
78
+ try {
79
+ const extractedJson = JSON.parse(jsonMatch[0]);
80
+ if (extractedJson.claims && Array.isArray(extractedJson.claims)) {
81
+ this.claimsWithQuotes = extractedJson.claims;
82
+ return extractedJson.claims.map((c) => c.claim);
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 claims from model response");
92
+ return [];
93
+ }
94
+ catch (e) {
95
+ (0, logger_js_1.error)(`Error generating claims: ${e}`);
96
+ return [];
97
+ }
98
+ });
99
+ }
100
+ /**
101
+ * Generate claims from actual output synchronously
102
+ */
103
+ _generateClaims(actualOutput, allClaims = false) {
104
+ // Handle string array
105
+ const actualOutputStr = Array.isArray(actualOutput) ? actualOutput.join('\n') : actualOutput;
106
+ const prompt = prompts_js_1.FaithfulnessTemplate.findClaims(actualOutputStr, allClaims);
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.ClaimsSchema.safeParse(jsonResponse);
113
+ if (parsed.success) {
114
+ this.claimsWithQuotes = parsed.data.claims;
115
+ return parsed.data.claims.map(c => c.claim);
116
+ }
117
+ else {
118
+ // Fallback to direct access if schema validation fails
119
+ (0, logger_js_1.warn)("Schema validation failed, falling back to raw response parsing");
120
+ if (jsonResponse.claims && Array.isArray(jsonResponse.claims)) {
121
+ this.claimsWithQuotes = jsonResponse.claims;
122
+ return jsonResponse.claims.map((c) => c.claim);
123
+ }
124
+ }
125
+ }
126
+ catch (parseError) {
127
+ (0, logger_js_1.warn)(`Error parsing JSON response: ${parseError}`);
128
+ // Try to extract JSON from the response text
129
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
130
+ if (jsonMatch) {
131
+ try {
132
+ const extractedJson = JSON.parse(jsonMatch[0]);
133
+ if (extractedJson.claims && Array.isArray(extractedJson.claims)) {
134
+ this.claimsWithQuotes = extractedJson.claims;
135
+ return extractedJson.claims.map((c) => c.claim);
136
+ }
137
+ }
138
+ catch (e) {
139
+ (0, logger_js_1.error)(`Failed to extract JSON from response: ${e}`);
140
+ }
141
+ }
142
+ }
143
+ // If all parsing attempts fail, return empty array
144
+ (0, logger_js_1.error)("Failed to parse claims from model response");
145
+ return [];
146
+ }
147
+ catch (e) {
148
+ (0, logger_js_1.error)(`Error generating claims: ${e}`);
149
+ return [];
150
+ }
151
+ }
152
+ /**
153
+ * Generate verdicts for claims against retrieval context asynchronously
154
+ */
155
+ _aGenerateVerdicts(retrievalContext) {
156
+ return __awaiter(this, void 0, void 0, function* () {
157
+ (0, logger_js_1.log)("Generating verdicts asynchronously");
158
+ if (!this.claims || this.claims.length === 0) {
159
+ (0, logger_js_1.warn)("No claims to evaluate");
160
+ return [];
161
+ }
162
+ // Handle string array
163
+ const contextStr = Array.isArray(retrievalContext) ? retrievalContext.join('\n') : retrievalContext;
164
+ const prompt = prompts_js_1.FaithfulnessTemplate.generateVerdicts(this.claims, contextStr);
165
+ try {
166
+ const response = yield this.model.aGenerate(prompt);
167
+ // Parse the response
168
+ try {
169
+ const jsonResponse = JSON.parse(response);
170
+ const parsed = prompts_js_1.VerdictsSchema.safeParse(jsonResponse);
171
+ if (parsed.success) {
172
+ return parsed.data.verdicts;
173
+ }
174
+ else {
175
+ // Fallback to direct access if schema validation fails
176
+ (0, logger_js_1.warn)("Schema validation failed, falling back to raw response parsing");
177
+ if (jsonResponse.verdicts && Array.isArray(jsonResponse.verdicts)) {
178
+ return jsonResponse.verdicts.map((v) => ({
179
+ verdict: v.verdict,
180
+ reason: v.reason
181
+ }));
182
+ }
183
+ }
184
+ }
185
+ catch (parseError) {
186
+ (0, logger_js_1.warn)(`Error parsing JSON response: ${parseError}`);
187
+ // Try to extract JSON from the response text
188
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
189
+ if (jsonMatch) {
190
+ try {
191
+ const extractedJson = JSON.parse(jsonMatch[0]);
192
+ if (extractedJson.verdicts && Array.isArray(extractedJson.verdicts)) {
193
+ return extractedJson.verdicts.map((v) => ({
194
+ verdict: v.verdict,
195
+ reason: v.reason
196
+ }));
197
+ }
198
+ }
199
+ catch (e) {
200
+ (0, logger_js_1.error)(`Failed to extract JSON from response: ${e}`);
201
+ }
202
+ }
203
+ }
204
+ // If all parsing attempts fail, return empty array
205
+ (0, logger_js_1.error)("Failed to parse verdicts from model response");
206
+ return [];
207
+ }
208
+ catch (e) {
209
+ (0, logger_js_1.error)(`Error generating verdicts: ${e}`);
210
+ return [];
211
+ }
212
+ });
213
+ }
214
+ /**
215
+ * Generate verdicts for claims against retrieval context synchronously
216
+ */
217
+ _generateVerdicts(retrievalContext) {
218
+ if (!this.claims || this.claims.length === 0) {
219
+ (0, logger_js_1.warn)("No claims to evaluate");
220
+ return [];
221
+ }
222
+ // Handle string array
223
+ const contextStr = Array.isArray(retrievalContext) ? retrievalContext.join('\n') : retrievalContext;
224
+ const prompt = prompts_js_1.FaithfulnessTemplate.generateVerdicts(this.claims, contextStr);
225
+ try {
226
+ const response = this.model.generate(prompt);
227
+ // Parse the response
228
+ try {
229
+ const jsonResponse = JSON.parse(response);
230
+ const parsed = prompts_js_1.VerdictsSchema.safeParse(jsonResponse);
231
+ if (parsed.success) {
232
+ return parsed.data.verdicts;
233
+ }
234
+ else {
235
+ // Fallback to direct access if schema validation fails
236
+ (0, logger_js_1.warn)("Schema validation failed, falling back to raw response parsing");
237
+ if (jsonResponse.verdicts && Array.isArray(jsonResponse.verdicts)) {
238
+ return jsonResponse.verdicts.map((v) => ({
239
+ verdict: v.verdict,
240
+ reason: v.reason
241
+ }));
242
+ }
243
+ }
244
+ }
245
+ catch (parseError) {
246
+ (0, logger_js_1.warn)(`Error parsing JSON response: ${parseError}`);
247
+ // Try to extract JSON from the response text
248
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
249
+ if (jsonMatch) {
250
+ try {
251
+ const extractedJson = JSON.parse(jsonMatch[0]);
252
+ if (extractedJson.verdicts && Array.isArray(extractedJson.verdicts)) {
253
+ return extractedJson.verdicts.map((v) => ({
254
+ verdict: v.verdict,
255
+ reason: v.reason
256
+ }));
257
+ }
258
+ }
259
+ catch (e) {
260
+ (0, logger_js_1.error)(`Failed to extract JSON from response: ${e}`);
261
+ }
262
+ }
263
+ }
264
+ // If all parsing attempts fail, return empty array
265
+ (0, logger_js_1.error)("Failed to parse verdicts from model response");
266
+ return [];
267
+ }
268
+ catch (e) {
269
+ (0, logger_js_1.error)(`Error generating verdicts: ${e}`);
270
+ return [];
271
+ }
272
+ }
273
+ /**
274
+ * Generate reason for the score asynchronously
275
+ */
276
+ _aGenerateReason() {
277
+ return __awaiter(this, void 0, void 0, function* () {
278
+ var _a;
279
+ if (!this.include_reason) {
280
+ return undefined;
281
+ }
282
+ if (!this.verdicts || this.verdicts.length === 0) {
283
+ return undefined;
284
+ }
285
+ try {
286
+ // Generate reason
287
+ const prompt = prompts_js_1.FaithfulnessTemplate.generateReason(this.verdicts, ((_a = this.score) === null || _a === void 0 ? void 0 : _a.toString()) || "0");
288
+ const reasonText = yield this.model.aGenerate(prompt);
289
+ const parsedReason = prompts_js_1.ReasonSchema.safeParse(JSON.parse(reasonText));
290
+ if (!parsedReason.success) {
291
+ (0, logger_js_1.error)(`Failed to parse reason: ${parsedReason.error}`);
292
+ return undefined;
293
+ }
294
+ return parsedReason.data.reason;
295
+ }
296
+ catch (err) {
297
+ (0, logger_js_1.error)(`Error getting reason: ${err}`);
298
+ return undefined;
299
+ }
300
+ });
301
+ }
302
+ /**
303
+ * Generate reason for the score synchronously
304
+ */
305
+ _generateReason() {
306
+ var _a;
307
+ if (!this.include_reason) {
308
+ return undefined;
309
+ }
310
+ if (!this.verdicts || this.verdicts.length === 0) {
311
+ return undefined;
312
+ }
313
+ try {
314
+ // Generate reason
315
+ const prompt = prompts_js_1.FaithfulnessTemplate.generateReason(this.verdicts, ((_a = this.score) === null || _a === void 0 ? void 0 : _a.toString()) || "0");
316
+ const reasonText = this.model.generate(prompt);
317
+ const parsedReason = prompts_js_1.ReasonSchema.safeParse(JSON.parse(reasonText));
318
+ if (!parsedReason.success) {
319
+ (0, logger_js_1.error)(`Failed to parse reason: ${parsedReason.error}`);
320
+ return undefined;
321
+ }
322
+ return parsedReason.data.reason;
323
+ }
324
+ catch (err) {
325
+ (0, logger_js_1.error)(`Error getting reason: ${err}`);
326
+ return undefined;
327
+ }
328
+ }
329
+ /**
330
+ * Compute score based on verdicts
331
+ */
332
+ _computeScore() {
333
+ (0, logger_js_1.log)("Computing score");
334
+ // If we have no claims or verdicts due to API errors, return 0
335
+ if (!this.claims || this.claims.length === 0) {
336
+ return 0;
337
+ }
338
+ if (!this.verdicts || this.verdicts.length === 0) {
339
+ return 0;
340
+ }
341
+ let supportedCount = 0;
342
+ let partialCount = 0;
343
+ for (const verdict of this.verdicts) {
344
+ const verdictLower = verdict.verdict.trim().toLowerCase();
345
+ if (verdictLower === "yes") {
346
+ supportedCount++;
347
+ }
348
+ else if (verdictLower === "partially") {
349
+ partialCount += 0.5;
350
+ }
351
+ }
352
+ const score = (supportedCount + partialCount) / this.verdicts.length;
353
+ // Match Python implementation's handling of strict_mode
354
+ return this.strict_mode && score < this.threshold ? 0 : score;
355
+ }
356
+ /**
357
+ * Check if example has required parameters
358
+ */
359
+ _checkExampleParams(example) {
360
+ for (const param of requiredParams) {
361
+ if (param === 'input' && !example.input) {
362
+ throw new Error(`Example is missing required parameter: input`);
363
+ }
364
+ else if (param === 'actualOutput' && !example.actualOutput) {
365
+ throw new Error(`Example is missing required parameter: actualOutput`);
366
+ }
367
+ else if (param === 'retrievalContext' && !example.retrievalContext) {
368
+ throw new Error(`Example is missing required parameter: retrievalContext`);
369
+ }
370
+ }
371
+ }
372
+ /**
373
+ * Create verbose logs for debugging
374
+ */
375
+ _createVerboseLogs() {
376
+ if (!this.verbose_mode) {
377
+ return '';
378
+ }
379
+ const steps = [
380
+ `Claims:\n${JSON.stringify(this.claims, null, 2)}`,
381
+ `Verdicts:\n${JSON.stringify(this.verdicts, null, 2)}`,
382
+ `Score: ${this.score}\nReason: ${this.reason}`
383
+ ];
384
+ return steps.join('\n\n');
385
+ }
386
+ /**
387
+ * Score an example synchronously
388
+ */
389
+ syncScoreExample(example, allClaims = false) {
390
+ (0, logger_js_1.info)("Starting example scoring (sync mode)");
391
+ try {
392
+ // Check required parameters
393
+ this._checkExampleParams(example);
394
+ // Process example
395
+ if (this.async_mode) {
396
+ throw new Error("Cannot use synchronous scoreExample with async_mode=true. Use async scoreExample instead.");
397
+ }
398
+ this.claims = this._generateClaims(example.actualOutput, allClaims);
399
+ // Add claims to additional metadata
400
+ if (!this.additional_metadata) {
401
+ this.additional_metadata = {};
402
+ }
403
+ this.additional_metadata.claims = this.claims;
404
+ this.additional_metadata.claimsWithQuotes = this.claimsWithQuotes;
405
+ this.verdicts = this._generateVerdicts(example.retrievalContext);
406
+ this.additional_metadata.verdicts = this.verdicts;
407
+ this.score = this._computeScore();
408
+ this.reason = this._generateReason();
409
+ this.success = this._successCheck();
410
+ this.verbose_logs = this._createVerboseLogs();
411
+ // Calculate evaluation cost
412
+ // In a real implementation, you would track tokens used in each LLM call
413
+ this.evaluation_cost = undefined;
414
+ (0, logger_js_1.info)(`Scoring completed with score: ${this.score}`);
415
+ // Ensure all fields match the ScorerData interface
416
+ return {
417
+ name: this.type,
418
+ threshold: this.threshold,
419
+ success: this.success || false,
420
+ score: this.score || 0,
421
+ reason: this.reason !== undefined ? this.reason : null,
422
+ strict_mode: this.strict_mode || false,
423
+ evaluation_model: this.evaluation_model || null,
424
+ error: null,
425
+ evaluation_cost: null,
426
+ verbose_logs: this.verbose_logs ? this.verbose_logs : null,
427
+ additional_metadata: this.additional_metadata || {}
428
+ };
429
+ }
430
+ catch (error) {
431
+ // Handle errors
432
+ const errorMessage = error instanceof Error ? error.message : String(error);
433
+ this.error = errorMessage;
434
+ this.success = false;
435
+ return {
436
+ name: this.type,
437
+ threshold: this.threshold,
438
+ success: false,
439
+ score: 0,
440
+ reason: `Error during scoring: ${errorMessage}`,
441
+ strict_mode: this.strict_mode || false,
442
+ evaluation_model: this.evaluation_model || null,
443
+ error: errorMessage,
444
+ evaluation_cost: null,
445
+ verbose_logs: null,
446
+ additional_metadata: this.additional_metadata || {}
447
+ };
448
+ }
449
+ }
450
+ /**
451
+ * Score an example asynchronously
452
+ */
453
+ scoreExample(example_1) {
454
+ return __awaiter(this, arguments, void 0, function* (example, allClaims = false) {
455
+ if (!this.async_mode) {
456
+ return this.syncScoreExample(example, allClaims);
457
+ }
458
+ (0, logger_js_1.info)("Starting example scoring (async mode)");
459
+ try {
460
+ // Check required parameters
461
+ this._checkExampleParams(example);
462
+ // Process example
463
+ this.claims = yield this._aGenerateClaims(example.actualOutput, allClaims);
464
+ // Add claims to additional metadata
465
+ if (!this.additional_metadata) {
466
+ this.additional_metadata = {};
467
+ }
468
+ this.additional_metadata.claims = this.claims;
469
+ this.additional_metadata.claimsWithQuotes = this.claimsWithQuotes;
470
+ this.verdicts = yield this._aGenerateVerdicts(example.retrievalContext);
471
+ this.additional_metadata.verdicts = this.verdicts;
472
+ this.score = this._computeScore();
473
+ this.reason = yield this._aGenerateReason();
474
+ this.success = this._successCheck();
475
+ this.verbose_logs = this._createVerboseLogs();
476
+ // Calculate evaluation cost
477
+ // In a real implementation, you would track tokens used in each LLM call
478
+ this.evaluation_cost = undefined;
479
+ (0, logger_js_1.info)(`Scoring completed with score: ${this.score}`);
480
+ // Ensure all fields match the ScorerData interface
481
+ return {
482
+ name: this.type,
483
+ threshold: this.threshold,
484
+ success: this.success || false,
485
+ score: this.score || 0,
486
+ reason: this.reason !== undefined ? this.reason : null,
487
+ strict_mode: this.strict_mode || false,
488
+ evaluation_model: this.evaluation_model || null,
489
+ error: null,
490
+ evaluation_cost: null,
491
+ verbose_logs: this.verbose_logs ? this.verbose_logs : null,
492
+ additional_metadata: this.additional_metadata || {}
493
+ };
494
+ }
495
+ catch (error) {
496
+ // Handle errors
497
+ const errorMessage = error instanceof Error ? error.message : String(error);
498
+ this.error = errorMessage;
499
+ this.success = false;
500
+ return {
501
+ name: this.type,
502
+ threshold: this.threshold,
503
+ success: false,
504
+ score: 0,
505
+ reason: `Error during scoring: ${errorMessage}`,
506
+ strict_mode: this.strict_mode || false,
507
+ evaluation_model: this.evaluation_model || null,
508
+ error: errorMessage,
509
+ evaluation_cost: null,
510
+ verbose_logs: null,
511
+ additional_metadata: this.additional_metadata || {}
512
+ };
513
+ }
514
+ });
515
+ }
516
+ /**
517
+ * Get the name of the scorer
518
+ */
519
+ get name() {
520
+ return "Faithfulness";
521
+ }
522
+ }
523
+ exports.FaithfulnessScorer = FaithfulnessScorer;
524
+ //# sourceMappingURL=faithfulness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faithfulness.js","sourceRoot":"","sources":["../../../../../src/scorers/metrics/faithfulness/faithfulness.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("./faithfulness.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/faithfulness/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,+CAA6B"}