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