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