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,601 @@
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 { AnswerCorrectnessTemplate, StatementsSchema, VerdictsSchema, ReasonSchema } from './prompts.js';
14
+ import axios from 'axios';
15
+ // Default implementation of Judge
16
+ export class DefaultJudge {
17
+ constructor(modelName = 'gpt-3.5-turbo', apiKey, user) {
18
+ this.modelName = modelName;
19
+ this.apiKey = apiKey || process.env.OPENAI_API_KEY;
20
+ this.user = user;
21
+ if (!this.apiKey) {
22
+ warn('No API key provided for DefaultJudge. Set OPENAI_API_KEY environment variable or pass apiKey to constructor.');
23
+ }
24
+ }
25
+ generate(prompt) {
26
+ // This is a synchronous wrapper that shouldn't be used in practice
27
+ throw new Error('Synchronous generate is not supported. Use aGenerate instead.');
28
+ }
29
+ aGenerate(prompt) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ if (!this.apiKey) {
32
+ throw new Error('No API key provided for DefaultJudge');
33
+ }
34
+ try {
35
+ const response = yield axios.post('https://api.openai.com/v1/chat/completions', {
36
+ model: this.modelName,
37
+ messages: [{ role: 'user', content: prompt }],
38
+ temperature: 0.0,
39
+ user: this.user
40
+ }, {
41
+ headers: {
42
+ 'Content-Type': 'application/json',
43
+ 'Authorization': `Bearer ${this.apiKey}`
44
+ }
45
+ });
46
+ return response.data.choices[0].message.content;
47
+ }
48
+ catch (e) {
49
+ error(`Error generating text with OpenAI API: ${e.message}`);
50
+ throw new Error(`Failed to generate text: ${e.message}`);
51
+ }
52
+ });
53
+ }
54
+ getModelName() {
55
+ return this.modelName;
56
+ }
57
+ }
58
+ // Helper function to create a Judge
59
+ export function createJudge(model, user) {
60
+ if (!model) {
61
+ // Default to gpt-3.5-turbo if no model specified
62
+ return {
63
+ judge: new DefaultJudge('gpt-3.5-turbo', undefined, user),
64
+ usingNativeModel: true
65
+ };
66
+ }
67
+ if (typeof model === 'string') {
68
+ return {
69
+ judge: new DefaultJudge(model, undefined, user),
70
+ usingNativeModel: true
71
+ };
72
+ }
73
+ // If model is already a Judge instance, use it directly
74
+ return {
75
+ judge: model,
76
+ usingNativeModel: false
77
+ };
78
+ }
79
+ // Required parameters for this scorer
80
+ const requiredParams = ['input', 'actualOutput', 'expectedOutput'];
81
+ /**
82
+ * AnswerCorrectnessScorer evaluates how well an actual output matches an expected output
83
+ * by breaking down the expected output into statements and checking if each statement
84
+ * is correctly represented in the actual output.
85
+ */
86
+ export class AnswerCorrectnessScorer extends JudgevalScorer {
87
+ /**
88
+ * Constructor for AnswerCorrectnessScorer
89
+ * @param threshold Minimum score to consider the evaluation successful (default: 0.5)
90
+ * @param model LLM to use for evaluation (string or Judge instance)
91
+ * @param include_reason Whether to generate a reason for the score
92
+ * @param async_mode Whether to use asynchronous evaluation
93
+ * @param strict_mode If true, sets threshold to 1.0 (requiring perfect match)
94
+ * @param verbose_mode Enables detailed logging
95
+ * @param user Optional user identifier for the LLM
96
+ * @param additional_metadata Additional metadata to include in the result
97
+ */
98
+ constructor(threshold = 0.5, model, include_reason = true, async_mode = true, strict_mode = false, verbose_mode = true, user, additional_metadata) {
99
+ super(APIScorer.ANSWER_CORRECTNESS, strict_mode ? 1.0 : threshold, additional_metadata, include_reason, async_mode, strict_mode, verbose_mode);
100
+ info(`Initializing AnswerCorrectnessScorer with threshold=${this.threshold}, model=${model}, strict_mode=${strict_mode}`);
101
+ const { judge, usingNativeModel } = createJudge(model, user);
102
+ this.model = judge;
103
+ this.usingNativeModel = usingNativeModel;
104
+ this.evaluation_model = this.model.getModelName();
105
+ log(`Using model: ${this.evaluation_model}`);
106
+ }
107
+ /**
108
+ * Get statements from expected output asynchronously
109
+ */
110
+ _aGetStatements(expectedOutput) {
111
+ return __awaiter(this, void 0, void 0, function* () {
112
+ log("Getting statements asynchronously");
113
+ // Handle string array
114
+ const expectedOutputStr = Array.isArray(expectedOutput) ? expectedOutput.join('\n') : expectedOutput;
115
+ const prompt = AnswerCorrectnessTemplate.deduceStatements(expectedOutputStr);
116
+ try {
117
+ const response = yield this.model.aGenerate(prompt);
118
+ // Parse the response
119
+ try {
120
+ const jsonResponse = JSON.parse(response);
121
+ const parsed = StatementsSchema.safeParse(jsonResponse);
122
+ if (parsed.success) {
123
+ return parsed.data.statements;
124
+ }
125
+ else {
126
+ // Fallback to direct access if schema validation fails
127
+ warn("Schema validation failed, falling back to raw response parsing");
128
+ if (jsonResponse.statements && Array.isArray(jsonResponse.statements)) {
129
+ return jsonResponse.statements;
130
+ }
131
+ }
132
+ }
133
+ catch (parseError) {
134
+ warn(`Error parsing JSON response: ${parseError}`);
135
+ // Try to extract JSON from the response text
136
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
137
+ if (jsonMatch) {
138
+ try {
139
+ const extractedJson = JSON.parse(jsonMatch[0]);
140
+ if (extractedJson.statements && Array.isArray(extractedJson.statements)) {
141
+ return extractedJson.statements;
142
+ }
143
+ }
144
+ catch (e) {
145
+ error(`Failed to extract JSON from response: ${e}`);
146
+ }
147
+ }
148
+ }
149
+ // If all parsing attempts fail, return empty array
150
+ error("Failed to parse statements from model response");
151
+ return [];
152
+ }
153
+ catch (e) {
154
+ error(`Error getting statements: ${e}`);
155
+ return [];
156
+ }
157
+ });
158
+ }
159
+ /**
160
+ * Get statements from expected output synchronously
161
+ */
162
+ _getStatements(expectedOutput) {
163
+ // Handle string array
164
+ const expectedOutputStr = Array.isArray(expectedOutput) ? expectedOutput.join('\n') : expectedOutput;
165
+ const prompt = AnswerCorrectnessTemplate.deduceStatements(expectedOutputStr);
166
+ try {
167
+ const response = this.model.generate(prompt);
168
+ // Parse the response
169
+ try {
170
+ const jsonResponse = JSON.parse(response);
171
+ const parsed = StatementsSchema.safeParse(jsonResponse);
172
+ if (parsed.success) {
173
+ return parsed.data.statements;
174
+ }
175
+ else {
176
+ // Fallback to direct access if schema validation fails
177
+ warn("Schema validation failed, falling back to raw response parsing");
178
+ if (jsonResponse.statements && Array.isArray(jsonResponse.statements)) {
179
+ return jsonResponse.statements;
180
+ }
181
+ }
182
+ }
183
+ catch (parseError) {
184
+ warn(`Error parsing JSON response: ${parseError}`);
185
+ // Try to extract JSON from the response text
186
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
187
+ if (jsonMatch) {
188
+ try {
189
+ const extractedJson = JSON.parse(jsonMatch[0]);
190
+ if (extractedJson.statements && Array.isArray(extractedJson.statements)) {
191
+ return extractedJson.statements;
192
+ }
193
+ }
194
+ catch (e) {
195
+ error(`Failed to extract JSON from response: ${e}`);
196
+ }
197
+ }
198
+ }
199
+ // If all parsing attempts fail, return empty array
200
+ error("Failed to parse statements from model response");
201
+ return [];
202
+ }
203
+ catch (e) {
204
+ error(`Error getting statements: ${e}`);
205
+ return [];
206
+ }
207
+ }
208
+ /**
209
+ * Get verdicts for statements against actual output asynchronously
210
+ */
211
+ _aGetVerdicts(actualOutput) {
212
+ return __awaiter(this, void 0, void 0, function* () {
213
+ log("Getting verdicts asynchronously");
214
+ if (!this.statements || this.statements.length === 0) {
215
+ warn("No statements to evaluate");
216
+ return [];
217
+ }
218
+ // Handle string array
219
+ const actualOutputStr = Array.isArray(actualOutput) ? actualOutput.join('\n') : actualOutput;
220
+ const prompt = AnswerCorrectnessTemplate.generateVerdicts(this.statements, actualOutputStr);
221
+ try {
222
+ const response = yield this.model.aGenerate(prompt);
223
+ // Parse the response
224
+ try {
225
+ const jsonResponse = JSON.parse(response);
226
+ const parsed = VerdictsSchema.safeParse(jsonResponse);
227
+ if (parsed.success) {
228
+ return parsed.data.verdicts;
229
+ }
230
+ else {
231
+ // Fallback to direct access if schema validation fails
232
+ warn("Schema validation failed, falling back to raw response parsing");
233
+ if (jsonResponse.verdicts && Array.isArray(jsonResponse.verdicts)) {
234
+ return jsonResponse.verdicts.map((v) => ({
235
+ verdict: v.verdict,
236
+ reason: v.reason
237
+ }));
238
+ }
239
+ }
240
+ }
241
+ catch (parseError) {
242
+ warn(`Error parsing JSON response: ${parseError}`);
243
+ // Try to extract JSON from the response text
244
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
245
+ if (jsonMatch) {
246
+ try {
247
+ const extractedJson = JSON.parse(jsonMatch[0]);
248
+ if (extractedJson.verdicts && Array.isArray(extractedJson.verdicts)) {
249
+ return extractedJson.verdicts.map((v) => ({
250
+ verdict: v.verdict,
251
+ reason: v.reason
252
+ }));
253
+ }
254
+ }
255
+ catch (e) {
256
+ error(`Failed to extract JSON from response: ${e}`);
257
+ }
258
+ }
259
+ }
260
+ // If all parsing attempts fail, return empty array
261
+ error("Failed to parse verdicts from model response");
262
+ return [];
263
+ }
264
+ catch (e) {
265
+ error(`Error getting verdicts: ${e}`);
266
+ return [];
267
+ }
268
+ });
269
+ }
270
+ /**
271
+ * Get verdicts for statements against actual output synchronously
272
+ */
273
+ _getVerdicts(actualOutput) {
274
+ if (!this.statements || this.statements.length === 0) {
275
+ warn("No statements to evaluate");
276
+ return [];
277
+ }
278
+ // Handle string array
279
+ const actualOutputStr = Array.isArray(actualOutput) ? actualOutput.join('\n') : actualOutput;
280
+ const prompt = AnswerCorrectnessTemplate.generateVerdicts(this.statements, actualOutputStr);
281
+ try {
282
+ const response = this.model.generate(prompt);
283
+ // Parse the response
284
+ try {
285
+ const jsonResponse = JSON.parse(response);
286
+ const parsed = VerdictsSchema.safeParse(jsonResponse);
287
+ if (parsed.success) {
288
+ return parsed.data.verdicts;
289
+ }
290
+ else {
291
+ // Fallback to direct access if schema validation fails
292
+ warn("Schema validation failed, falling back to raw response parsing");
293
+ if (jsonResponse.verdicts && Array.isArray(jsonResponse.verdicts)) {
294
+ return jsonResponse.verdicts.map((v) => ({
295
+ verdict: v.verdict,
296
+ reason: v.reason
297
+ }));
298
+ }
299
+ }
300
+ }
301
+ catch (parseError) {
302
+ warn(`Error parsing JSON response: ${parseError}`);
303
+ // Try to extract JSON from the response text
304
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
305
+ if (jsonMatch) {
306
+ try {
307
+ const extractedJson = JSON.parse(jsonMatch[0]);
308
+ if (extractedJson.verdicts && Array.isArray(extractedJson.verdicts)) {
309
+ return extractedJson.verdicts.map((v) => ({
310
+ verdict: v.verdict,
311
+ reason: v.reason
312
+ }));
313
+ }
314
+ }
315
+ catch (e) {
316
+ error(`Failed to extract JSON from response: ${e}`);
317
+ }
318
+ }
319
+ }
320
+ // If all parsing attempts fail, return empty array
321
+ error("Failed to parse verdicts from model response");
322
+ return [];
323
+ }
324
+ catch (e) {
325
+ error(`Error getting verdicts: ${e}`);
326
+ return [];
327
+ }
328
+ }
329
+ /**
330
+ * Get reason for the score asynchronously
331
+ */
332
+ _aGetReason() {
333
+ return __awaiter(this, void 0, void 0, function* () {
334
+ var _a;
335
+ if (!this.include_reason) {
336
+ return undefined;
337
+ }
338
+ if (!this.verdicts || this.verdicts.length === 0) {
339
+ return undefined;
340
+ }
341
+ try {
342
+ // Get incorrect statements with their verdicts
343
+ const incorrectStatements = [];
344
+ for (let i = 0; i < this.statements.length; i++) {
345
+ if (i < this.verdicts.length && this.verdicts[i].verdict.toLowerCase() === "no") {
346
+ incorrectStatements.push([this.statements[i], this.verdicts[i].reason]);
347
+ }
348
+ }
349
+ if (incorrectStatements.length === 0) {
350
+ return "All statements in the expected output are correctly represented in the actual output.";
351
+ }
352
+ // Generate reason
353
+ const prompt = AnswerCorrectnessTemplate.generateReason(incorrectStatements, ((_a = this.score) === null || _a === void 0 ? void 0 : _a.toString()) || "0");
354
+ const reasonText = yield this.model.aGenerate(prompt);
355
+ const parsedReason = ReasonSchema.safeParse(JSON.parse(reasonText));
356
+ if (!parsedReason.success) {
357
+ error(`Failed to parse reason: ${parsedReason.error}`);
358
+ return undefined;
359
+ }
360
+ return parsedReason.data.reason;
361
+ }
362
+ catch (err) {
363
+ error(`Error getting reason: ${err}`);
364
+ return undefined;
365
+ }
366
+ });
367
+ }
368
+ /**
369
+ * Get reason for the score synchronously
370
+ */
371
+ _getReason() {
372
+ var _a;
373
+ if (!this.include_reason) {
374
+ return undefined;
375
+ }
376
+ if (!this.verdicts || this.verdicts.length === 0) {
377
+ return undefined;
378
+ }
379
+ try {
380
+ // Get incorrect statements with their verdicts
381
+ const incorrectStatements = [];
382
+ for (let i = 0; i < this.statements.length; i++) {
383
+ if (i < this.verdicts.length && this.verdicts[i].verdict.toLowerCase() === "no") {
384
+ incorrectStatements.push([this.statements[i], this.verdicts[i].reason]);
385
+ }
386
+ }
387
+ if (incorrectStatements.length === 0) {
388
+ return "All statements in the expected output are correctly represented in the actual output.";
389
+ }
390
+ // Generate reason
391
+ const prompt = AnswerCorrectnessTemplate.generateReason(incorrectStatements, ((_a = this.score) === null || _a === void 0 ? void 0 : _a.toString()) || "0");
392
+ const reasonText = this.model.generate(prompt);
393
+ const parsedReason = ReasonSchema.safeParse(JSON.parse(reasonText));
394
+ if (!parsedReason.success) {
395
+ error(`Failed to parse reason: ${parsedReason.error}`);
396
+ return undefined;
397
+ }
398
+ return parsedReason.data.reason;
399
+ }
400
+ catch (err) {
401
+ error(`Error getting reason: ${err}`);
402
+ return undefined;
403
+ }
404
+ }
405
+ /**
406
+ * Compute score based on verdicts
407
+ */
408
+ _computeScore() {
409
+ log("Computing score");
410
+ // If we have no statements or verdicts due to API errors, return 0 instead of 1
411
+ // This ensures that when API calls fail, we don't incorrectly return a perfect score
412
+ if (!this.statements || this.statements.length === 0) {
413
+ return 0;
414
+ }
415
+ if (!this.verdicts || this.verdicts.length === 0) {
416
+ return 0;
417
+ }
418
+ let correctCount = 0;
419
+ for (const verdict of this.verdicts) {
420
+ if (verdict.verdict.trim().toLowerCase() === "yes") {
421
+ correctCount++;
422
+ }
423
+ }
424
+ const score = correctCount / this.verdicts.length;
425
+ // Match Python implementation's handling of strict_mode
426
+ return this.strict_mode && score < this.threshold ? 0 : score;
427
+ }
428
+ /**
429
+ * Calculate token costs for model usage
430
+ */
431
+ _calculateTokenCosts(model, promptTokens, completionTokens) {
432
+ return __awaiter(this, void 0, void 0, function* () {
433
+ try {
434
+ const response = yield axios.post('https://api.judgmentlabs.ai/calculate-token-costs', {
435
+ model,
436
+ prompt_tokens: promptTokens,
437
+ completion_tokens: completionTokens
438
+ });
439
+ return response.data.total_cost_usd;
440
+ }
441
+ catch (e) {
442
+ warn(`Error calculating token costs: ${e}`);
443
+ return null;
444
+ }
445
+ });
446
+ }
447
+ /**
448
+ * Check if example has required parameters
449
+ */
450
+ _checkExampleParams(example) {
451
+ for (const param of requiredParams) {
452
+ if (param === 'input' && !example.input) {
453
+ throw new Error(`Example is missing required parameter: input`);
454
+ }
455
+ else if (param === 'actualOutput' && !example.actualOutput) {
456
+ throw new Error(`Example is missing required parameter: actualOutput`);
457
+ }
458
+ else if (param === 'expectedOutput' && !example.expectedOutput) {
459
+ throw new Error(`Example is missing required parameter: expectedOutput`);
460
+ }
461
+ }
462
+ }
463
+ /**
464
+ * Create verbose logs for debugging
465
+ */
466
+ _createVerboseLogs() {
467
+ if (!this.verbose_mode) {
468
+ return '';
469
+ }
470
+ const steps = [
471
+ `Statements:\n${JSON.stringify(this.statements, null, 2)}`,
472
+ `Verdicts:\n${JSON.stringify(this.verdicts, null, 2)}`,
473
+ `Score: ${this.score}\nReason: ${this.reason}`
474
+ ];
475
+ return steps.join('\n\n');
476
+ }
477
+ /**
478
+ * Score an example synchronously - this is for compatibility with the Python SDK
479
+ */
480
+ syncScoreExample(example) {
481
+ info("Starting example scoring (sync mode)");
482
+ try {
483
+ // Check required parameters
484
+ this._checkExampleParams(example);
485
+ // Process example
486
+ if (this.async_mode) {
487
+ throw new Error("Cannot use synchronous scoreExample with async_mode=true. Use async scoreExample instead.");
488
+ }
489
+ this.statements = this._getStatements(example.expectedOutput);
490
+ this.verdicts = this._getVerdicts(example.actualOutput);
491
+ this.score = this._computeScore();
492
+ this.reason = this._getReason();
493
+ this.success = this._successCheck();
494
+ this.verbose_logs = this._createVerboseLogs();
495
+ // Calculate evaluation cost
496
+ // In a real implementation, you would track tokens used in each LLM call
497
+ this.evaluation_cost = undefined;
498
+ info(`Scoring completed with score: ${this.score}`);
499
+ // Ensure all fields match the ScorerData interface
500
+ return {
501
+ name: this.type,
502
+ threshold: this.threshold,
503
+ success: this.success || false,
504
+ score: this.score || 0,
505
+ reason: this.reason !== undefined ? this.reason : null,
506
+ strict_mode: this.strict_mode || false,
507
+ evaluation_model: this.evaluation_model || null,
508
+ error: null,
509
+ evaluation_cost: null,
510
+ verbose_logs: this.verbose_logs ? this.verbose_logs : null,
511
+ additional_metadata: this.additional_metadata || {}
512
+ };
513
+ }
514
+ catch (error) {
515
+ // Handle errors
516
+ const errorMessage = error instanceof Error ? error.message : String(error);
517
+ this.error = errorMessage;
518
+ this.success = false;
519
+ return {
520
+ name: this.type,
521
+ threshold: this.threshold,
522
+ success: false,
523
+ score: 0,
524
+ reason: `Error during scoring: ${errorMessage}`,
525
+ strict_mode: this.strict_mode || false,
526
+ evaluation_model: this.evaluation_model || null,
527
+ error: errorMessage,
528
+ evaluation_cost: null,
529
+ verbose_logs: null,
530
+ additional_metadata: this.additional_metadata || {}
531
+ };
532
+ }
533
+ }
534
+ /**
535
+ * Score an example - this is the main method that should be called
536
+ * It will use async or sync methods based on the async_mode setting
537
+ */
538
+ scoreExample(example) {
539
+ return __awaiter(this, void 0, void 0, function* () {
540
+ if (!this.async_mode) {
541
+ return this.syncScoreExample(example);
542
+ }
543
+ info("Starting example scoring (async mode)");
544
+ try {
545
+ // Check required parameters
546
+ this._checkExampleParams(example);
547
+ // Process example
548
+ this.statements = yield this._aGetStatements(example.expectedOutput);
549
+ this.verdicts = yield this._aGetVerdicts(example.actualOutput);
550
+ this.score = this._computeScore();
551
+ this.reason = yield this._aGetReason();
552
+ this.success = this._successCheck();
553
+ this.verbose_logs = this._createVerboseLogs();
554
+ // Calculate evaluation cost
555
+ // In a real implementation, you would track tokens used in each LLM call
556
+ this.evaluation_cost = undefined;
557
+ info(`Scoring completed with score: ${this.score}`);
558
+ // Ensure all fields match the ScorerData interface
559
+ return {
560
+ name: this.type,
561
+ threshold: this.threshold,
562
+ success: this.success || false,
563
+ score: this.score || 0,
564
+ reason: this.reason !== undefined ? this.reason : null,
565
+ strict_mode: this.strict_mode || false,
566
+ evaluation_model: this.evaluation_model || null,
567
+ error: null,
568
+ evaluation_cost: null,
569
+ verbose_logs: this.verbose_logs ? this.verbose_logs : null,
570
+ additional_metadata: this.additional_metadata || {}
571
+ };
572
+ }
573
+ catch (error) {
574
+ // Handle errors
575
+ const errorMessage = error instanceof Error ? error.message : String(error);
576
+ this.error = errorMessage;
577
+ this.success = false;
578
+ return {
579
+ name: this.type,
580
+ threshold: this.threshold,
581
+ success: false,
582
+ score: 0,
583
+ reason: `Error during scoring: ${errorMessage}`,
584
+ strict_mode: this.strict_mode || false,
585
+ evaluation_model: this.evaluation_model || null,
586
+ error: errorMessage,
587
+ evaluation_cost: null,
588
+ verbose_logs: null,
589
+ additional_metadata: this.additional_metadata || {}
590
+ };
591
+ }
592
+ });
593
+ }
594
+ /**
595
+ * Get the name of the scorer
596
+ */
597
+ get name() {
598
+ return "Answer Correctness";
599
+ }
600
+ }
601
+ //# sourceMappingURL=answer-correctness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-correctness.js","sourceRoot":"","sources":["../../../../../src/scorers/metrics/answer-correctness/answer-correctness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './answer-correctness.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-correctness/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC"}