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