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.
- package/dist/cjs/common/logger.js +28 -24
- package/dist/cjs/common/logger.js.map +1 -1
- package/dist/cjs/common/tracer.js +80 -130
- package/dist/cjs/common/tracer.js.map +1 -1
- package/dist/cjs/constants.js +2 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/data/datasets/eval-dataset-client.js +45 -0
- package/dist/cjs/data/datasets/eval-dataset-client.js.map +1 -1
- package/dist/cjs/e2etests/eval-operations.test.js +3 -3
- package/dist/cjs/exporters/otel-exporter.js +352 -0
- package/dist/cjs/exporters/otel-exporter.js.map +1 -0
- package/dist/cjs/judges/index.js +217 -0
- package/dist/cjs/judges/index.js.map +1 -0
- package/dist/cjs/run-evaluation.js +13 -13
- package/dist/cjs/run-evaluation.js.map +1 -1
- package/dist/cjs/scorers/metrics/answer-correctness/answer-correctness.js +610 -0
- package/dist/cjs/scorers/metrics/answer-correctness/answer-correctness.js.map +1 -0
- package/dist/cjs/scorers/metrics/answer-correctness/index.js +19 -0
- package/dist/cjs/scorers/metrics/answer-correctness/index.js.map +1 -0
- package/dist/cjs/scorers/metrics/answer-correctness/prompts.js +175 -0
- package/dist/cjs/scorers/metrics/answer-correctness/prompts.js.map +1 -0
- package/dist/cjs/scorers/metrics/answer-relevancy/answer-relevancy.js +525 -0
- package/dist/cjs/scorers/metrics/answer-relevancy/answer-relevancy.js.map +1 -0
- package/dist/cjs/scorers/metrics/answer-relevancy/index.js +19 -0
- package/dist/cjs/scorers/metrics/answer-relevancy/index.js.map +1 -0
- package/dist/cjs/scorers/metrics/answer-relevancy/prompts.js +179 -0
- package/dist/cjs/scorers/metrics/answer-relevancy/prompts.js.map +1 -0
- package/dist/cjs/scorers/metrics/faithfulness/faithfulness.js +524 -0
- package/dist/cjs/scorers/metrics/faithfulness/faithfulness.js.map +1 -0
- package/dist/cjs/scorers/metrics/faithfulness/index.js +19 -0
- package/dist/cjs/scorers/metrics/faithfulness/index.js.map +1 -0
- package/dist/cjs/scorers/metrics/faithfulness/prompts.js +232 -0
- package/dist/cjs/scorers/metrics/faithfulness/prompts.js.map +1 -0
- package/dist/cjs/scorers/metrics/hallucination/hallucination.js +390 -0
- package/dist/cjs/scorers/metrics/hallucination/hallucination.js.map +1 -0
- package/dist/cjs/scorers/metrics/hallucination/index.js +11 -0
- package/dist/cjs/scorers/metrics/hallucination/index.js.map +1 -0
- package/dist/cjs/scorers/metrics/hallucination/prompts.js +106 -0
- package/dist/cjs/scorers/metrics/hallucination/prompts.js.map +1 -0
- package/dist/cjs/scorers/metrics/instruction-adherence/index.js +19 -0
- package/dist/cjs/scorers/metrics/instruction-adherence/index.js.map +1 -0
- package/dist/cjs/scorers/metrics/instruction-adherence/instruction-adherence.js +382 -0
- package/dist/cjs/scorers/metrics/instruction-adherence/instruction-adherence.js.map +1 -0
- package/dist/cjs/scorers/metrics/instruction-adherence/prompts.js +124 -0
- package/dist/cjs/scorers/metrics/instruction-adherence/prompts.js.map +1 -0
- package/dist/esm/common/logger.js +16 -11
- package/dist/esm/common/logger.js.map +1 -1
- package/dist/esm/common/tracer.js +78 -128
- package/dist/esm/common/tracer.js.map +1 -1
- package/dist/esm/constants.js +1 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/data/datasets/eval-dataset-client.js +46 -1
- package/dist/esm/data/datasets/eval-dataset-client.js.map +1 -1
- package/dist/esm/e2etests/eval-operations.test.js +3 -3
- package/dist/esm/exporters/otel-exporter.js +348 -0
- package/dist/esm/exporters/otel-exporter.js.map +1 -0
- package/dist/esm/judges/index.js +185 -0
- package/dist/esm/judges/index.js.map +1 -0
- package/dist/esm/scorers/metrics/answer-correctness/answer-correctness.js +601 -0
- package/dist/esm/scorers/metrics/answer-correctness/answer-correctness.js.map +1 -0
- package/dist/esm/scorers/metrics/answer-correctness/index.js +3 -0
- package/dist/esm/scorers/metrics/answer-correctness/index.js.map +1 -0
- package/dist/esm/scorers/metrics/answer-correctness/prompts.js +171 -0
- package/dist/esm/scorers/metrics/answer-correctness/prompts.js.map +1 -0
- package/dist/esm/scorers/metrics/answer-relevancy/answer-relevancy.js +521 -0
- package/dist/esm/scorers/metrics/answer-relevancy/answer-relevancy.js.map +1 -0
- package/dist/esm/scorers/metrics/answer-relevancy/index.js +3 -0
- package/dist/esm/scorers/metrics/answer-relevancy/index.js.map +1 -0
- package/dist/esm/scorers/metrics/answer-relevancy/prompts.js +175 -0
- package/dist/esm/scorers/metrics/answer-relevancy/prompts.js.map +1 -0
- package/dist/esm/scorers/metrics/faithfulness/faithfulness.js +520 -0
- package/dist/esm/scorers/metrics/faithfulness/faithfulness.js.map +1 -0
- package/dist/esm/scorers/metrics/faithfulness/index.js +3 -0
- package/dist/esm/scorers/metrics/faithfulness/index.js.map +1 -0
- package/dist/esm/scorers/metrics/faithfulness/prompts.js +228 -0
- package/dist/esm/scorers/metrics/faithfulness/prompts.js.map +1 -0
- package/dist/esm/scorers/metrics/hallucination/hallucination.js +386 -0
- package/dist/esm/scorers/metrics/hallucination/hallucination.js.map +1 -0
- package/dist/esm/scorers/metrics/hallucination/index.js +3 -0
- package/dist/esm/scorers/metrics/hallucination/index.js.map +1 -0
- package/dist/esm/scorers/metrics/hallucination/prompts.js +102 -0
- package/dist/esm/scorers/metrics/hallucination/prompts.js.map +1 -0
- package/dist/esm/scorers/metrics/instruction-adherence/index.js +3 -0
- package/dist/esm/scorers/metrics/instruction-adherence/index.js.map +1 -0
- package/dist/esm/scorers/metrics/instruction-adherence/instruction-adherence.js +378 -0
- package/dist/esm/scorers/metrics/instruction-adherence/instruction-adherence.js.map +1 -0
- package/dist/esm/scorers/metrics/instruction-adherence/prompts.js +120 -0
- package/dist/esm/scorers/metrics/instruction-adherence/prompts.js.map +1 -0
- package/dist/types/common/logger.d.ts +1 -1
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/data/datasets/eval-dataset-client.d.ts +5 -0
- package/dist/types/exporters/otel-exporter.d.ts +16 -0
- package/dist/types/judges/index.d.ts +50 -0
- package/dist/types/scorers/metrics/answer-correctness/answer-correctness.d.ts +99 -0
- package/dist/types/scorers/metrics/answer-correctness/index.d.ts +2 -0
- package/dist/types/scorers/metrics/answer-correctness/prompts.d.ts +71 -0
- package/dist/types/scorers/metrics/answer-relevancy/answer-relevancy.d.ts +78 -0
- package/dist/types/scorers/metrics/answer-relevancy/index.d.ts +2 -0
- package/dist/types/scorers/metrics/answer-relevancy/prompts.d.ts +71 -0
- package/dist/types/scorers/metrics/faithfulness/faithfulness.d.ts +77 -0
- package/dist/types/scorers/metrics/faithfulness/index.d.ts +2 -0
- package/dist/types/scorers/metrics/faithfulness/prompts.d.ts +94 -0
- package/dist/types/scorers/metrics/hallucination/hallucination.d.ts +67 -0
- package/dist/types/scorers/metrics/hallucination/index.d.ts +3 -0
- package/dist/types/scorers/metrics/hallucination/prompts.d.ts +63 -0
- package/dist/types/scorers/metrics/instruction-adherence/index.d.ts +2 -0
- package/dist/types/scorers/metrics/instruction-adherence/instruction-adherence.d.ts +67 -0
- package/dist/types/scorers/metrics/instruction-adherence/prompts.d.ts +78 -0
- 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"}
|