judgeval 0.1.39 → 0.1.40
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/clients.js.map +1 -0
- package/dist/cjs/common/integrations/langgraph.js +401 -0
- package/dist/cjs/common/integrations/langgraph.js.map +1 -0
- package/dist/{common → cjs/common}/logger-instance.js +1 -13
- package/dist/cjs/common/logger-instance.js.map +1 -0
- package/dist/{common → cjs/common}/logger.js +8 -9
- package/dist/cjs/common/logger.js.map +1 -0
- package/dist/cjs/common/tracer.js +995 -0
- package/dist/cjs/common/tracer.js.map +1 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/data/example.js.map +1 -0
- package/dist/cjs/data/result.js.map +1 -0
- package/dist/cjs/evaluation-run.js.map +1 -0
- package/dist/cjs/examples/async-evaluation.d.ts +7 -0
- package/dist/cjs/examples/async-evaluation.js +75 -0
- package/dist/cjs/examples/async-evaluation.js.map +1 -0
- package/dist/cjs/examples/basic-evaluation.d.ts +1 -0
- package/dist/cjs/examples/basic-evaluation.js +253 -0
- package/dist/cjs/examples/basic-evaluation.js.map +1 -0
- package/dist/cjs/examples/compare-with-python.d.ts +24 -0
- package/dist/cjs/examples/compare-with-python.js +138 -0
- package/dist/cjs/examples/compare-with-python.js.map +1 -0
- package/dist/cjs/examples/custom-scorer.d.ts +7 -0
- package/dist/cjs/examples/custom-scorer.js +338 -0
- package/dist/cjs/examples/custom-scorer.js.map +1 -0
- package/dist/cjs/examples/demo/basic-bot.d.ts +1 -0
- package/dist/cjs/examples/demo/basic-bot.js +258 -0
- package/dist/cjs/examples/demo/basic-bot.js.map +1 -0
- package/dist/cjs/examples/demo/demo_complex_async.d.ts +1 -0
- package/dist/cjs/examples/demo/demo_complex_async.js +166 -0
- package/dist/cjs/examples/demo/demo_complex_async.js.map +1 -0
- package/dist/cjs/examples/demo/langgraph_demo.d.ts +1 -0
- package/dist/cjs/examples/demo/langgraph_demo.js +134 -0
- package/dist/cjs/examples/demo/langgraph_demo.js.map +1 -0
- package/dist/cjs/examples/demo/llm-wrap-demo.d.ts +1 -0
- package/dist/cjs/examples/demo/llm-wrap-demo.js +176 -0
- package/dist/cjs/examples/demo/llm-wrap-demo.js.map +1 -0
- package/dist/cjs/examples/demo/openai-wrap-demo.d.ts +1 -0
- package/dist/cjs/examples/demo/openai-wrap-demo.js +113 -0
- package/dist/cjs/examples/demo/openai-wrap-demo.js.map +1 -0
- package/dist/cjs/examples/demo/rules-demo.d.ts +1 -0
- package/dist/cjs/examples/demo/rules-demo.js +144 -0
- package/dist/cjs/examples/demo/rules-demo.js.map +1 -0
- package/dist/cjs/examples/llm-async-tracer.d.ts +4 -0
- package/dist/cjs/examples/llm-async-tracer.js +270 -0
- package/dist/cjs/examples/llm-async-tracer.js.map +1 -0
- package/dist/cjs/examples/result-retrieval.d.ts +1 -0
- package/dist/cjs/examples/result-retrieval.js +148 -0
- package/dist/cjs/examples/result-retrieval.js.map +1 -0
- package/dist/cjs/examples/simple-async.d.ts +7 -0
- package/dist/cjs/examples/simple-async.js +111 -0
- package/dist/cjs/examples/simple-async.js.map +1 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/judgment-client.js +975 -0
- package/dist/cjs/judgment-client.js.map +1 -0
- package/dist/{rules.js → cjs/rules.js} +17 -28
- package/dist/cjs/rules.js.map +1 -0
- package/dist/cjs/run-evaluation.js +591 -0
- package/dist/cjs/run-evaluation.js.map +1 -0
- package/dist/{scorers → cjs/scorers}/api-scorer.js +41 -78
- package/dist/cjs/scorers/api-scorer.js.map +1 -0
- package/dist/{scorers → cjs/scorers}/base-scorer.js +2 -13
- package/dist/cjs/scorers/base-scorer.js.map +1 -0
- package/dist/cjs/scorers/exact-match-scorer.js +72 -0
- package/dist/cjs/scorers/exact-match-scorer.js.map +1 -0
- package/dist/esm/clients.d.ts +7 -0
- package/dist/esm/clients.js +47 -0
- package/dist/esm/clients.js.map +1 -0
- package/dist/esm/common/integrations/langgraph.d.ts +40 -0
- package/dist/esm/common/integrations/langgraph.js +400 -0
- package/dist/esm/common/integrations/langgraph.js.map +1 -0
- package/dist/esm/common/logger-instance.d.ts +3 -0
- package/dist/esm/common/logger-instance.js +47 -0
- package/dist/esm/common/logger-instance.js.map +1 -0
- package/dist/esm/common/logger.d.ts +54 -0
- package/dist/esm/common/logger.js +202 -0
- package/dist/esm/common/logger.js.map +1 -0
- package/dist/esm/common/tracer.d.ts +205 -0
- package/dist/esm/common/tracer.js +987 -0
- package/dist/esm/common/tracer.js.map +1 -0
- package/dist/esm/constants.d.ts +51 -0
- package/dist/esm/constants.js +338 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/data/example.d.ts +70 -0
- package/dist/esm/data/example.js +120 -0
- package/dist/esm/data/example.js.map +1 -0
- package/dist/esm/data/result.d.ts +51 -0
- package/dist/esm/data/result.js +78 -0
- package/dist/esm/data/result.js.map +1 -0
- package/dist/esm/evaluation-run.d.ts +44 -0
- package/dist/esm/evaluation-run.js +132 -0
- package/dist/esm/evaluation-run.js.map +1 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.js +21 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/judgment-client.d.ts +179 -0
- package/dist/esm/judgment-client.js +945 -0
- package/dist/esm/judgment-client.js.map +1 -0
- package/dist/esm/rules.d.ts +120 -0
- package/dist/esm/rules.js +303 -0
- package/dist/esm/rules.js.map +1 -0
- package/dist/esm/run-evaluation.d.ts +78 -0
- package/dist/esm/run-evaluation.js +572 -0
- package/dist/esm/run-evaluation.js.map +1 -0
- package/dist/esm/scorers/api-scorer.d.ts +79 -0
- package/dist/esm/scorers/api-scorer.js +236 -0
- package/dist/esm/scorers/api-scorer.js.map +1 -0
- package/dist/esm/scorers/base-scorer.d.ts +100 -0
- package/dist/esm/scorers/base-scorer.js +173 -0
- package/dist/esm/scorers/base-scorer.js.map +1 -0
- package/dist/esm/scorers/exact-match-scorer.d.ts +10 -0
- package/dist/esm/scorers/exact-match-scorer.js +68 -0
- package/dist/esm/scorers/exact-match-scorer.js.map +1 -0
- package/package.json +14 -5
- package/dist/clients.js.map +0 -1
- package/dist/common/integrations/langgraph.js +0 -444
- package/dist/common/integrations/langgraph.js.map +0 -1
- package/dist/common/logger-instance.js.map +0 -1
- package/dist/common/logger.js.map +0 -1
- package/dist/common/tracer.js +0 -1035
- package/dist/common/tracer.js.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/data/example.js.map +0 -1
- package/dist/data/result.js.map +0 -1
- package/dist/evaluation-run.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/judgment-client.js +0 -1038
- package/dist/judgment-client.js.map +0 -1
- package/dist/rules.js.map +0 -1
- package/dist/run-evaluation.js +0 -618
- package/dist/run-evaluation.js.map +0 -1
- package/dist/scorers/api-scorer.js.map +0 -1
- package/dist/scorers/base-scorer.js.map +0 -1
- package/dist/scorers/exact-match-scorer.js +0 -84
- package/dist/scorers/exact-match-scorer.js.map +0 -1
- /package/dist/{clients.d.ts → cjs/clients.d.ts} +0 -0
- /package/dist/{clients.js → cjs/clients.js} +0 -0
- /package/dist/{common → cjs/common}/integrations/langgraph.d.ts +0 -0
- /package/dist/{common → cjs/common}/logger-instance.d.ts +0 -0
- /package/dist/{common → cjs/common}/logger.d.ts +0 -0
- /package/dist/{common → cjs/common}/tracer.d.ts +0 -0
- /package/dist/{constants.d.ts → cjs/constants.d.ts} +0 -0
- /package/dist/{constants.js → cjs/constants.js} +0 -0
- /package/dist/{data → cjs/data}/example.d.ts +0 -0
- /package/dist/{data → cjs/data}/example.js +0 -0
- /package/dist/{data → cjs/data}/result.d.ts +0 -0
- /package/dist/{data → cjs/data}/result.js +0 -0
- /package/dist/{evaluation-run.d.ts → cjs/evaluation-run.d.ts} +0 -0
- /package/dist/{evaluation-run.js → cjs/evaluation-run.js} +0 -0
- /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/dist/{index.js → cjs/index.js} +0 -0
- /package/dist/{judgment-client.d.ts → cjs/judgment-client.d.ts} +0 -0
- /package/dist/{rules.d.ts → cjs/rules.d.ts} +0 -0
- /package/dist/{run-evaluation.d.ts → cjs/run-evaluation.d.ts} +0 -0
- /package/dist/{scorers → cjs/scorers}/api-scorer.d.ts +0 -0
- /package/dist/{scorers → cjs/scorers}/base-scorer.d.ts +0 -0
- /package/dist/{scorers → cjs/scorers}/exact-match-scorer.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/clients.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,oDAA4B;AAC5B,4DAA0C;AAC1C,8DAAmC;AAEnC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,oCAAoC;AACpC,IAAI,YAAY,GAAkB,IAAI,CAAC;AAsC9B,oCAAY;AArCrB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,uBAAA,YAAY,GAAG,IAAI,gBAAM,CAAC;YACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;SACnC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qDAAqD;QACrD,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,uCAAuC;AACvC,IAAI,eAAe,GAAqB,IAAI,CAAC;AAyBtB,0CAAe;AAxBtC,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,0BAAA,eAAe,GAAG,IAAI,aAAS,CAAC;YAC9B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;SACtC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wDAAwD;QACxD,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,IAAI,cAAc,GAAoB,IAAI,CAAC;AAYH,wCAAc;AAXtD,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,yBAAA,cAAc,GAAG,IAAI,qBAAQ,CAAC;YAC5B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;SACnC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,uDAAuD;QACvD,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// judgeval-js/src/integrations/langgraph.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.JudgevalLanggraphCallbackHandler = void 0;
|
|
5
|
+
const base_1 = require("@langchain/core/callbacks/base");
|
|
6
|
+
const messages_1 = require("@langchain/core/messages"); // Regular import for BaseMessage value
|
|
7
|
+
const uuid_1 = require("uuid");
|
|
8
|
+
const tracer_1 = require("../tracer"); // Adjust path
|
|
9
|
+
// --- Global Handler Setup (REMOVED - No longer needed with context propagation) ---
|
|
10
|
+
class JudgevalLanggraphCallbackHandler extends base_1.BaseCallbackHandler {
|
|
11
|
+
// Optional: Track executed nodes/tools if needed for external use cases like evaluation
|
|
12
|
+
// public executedNodes: string[] = [];
|
|
13
|
+
// public executedTools: string[] = [];
|
|
14
|
+
constructor(tracer) {
|
|
15
|
+
super(); // Call parent constructor
|
|
16
|
+
this.name = "judgeval_langgraph_callback_handler"; // Identifier for the handler
|
|
17
|
+
this.spanStartTimes = {}; // Store start time per spanId (using Judgeval spanId)
|
|
18
|
+
this.runIdToSpanId = {}; // Map Langchain runId to Judgeval spanId
|
|
19
|
+
this.tracer = tracer ?? tracer_1.Tracer.getInstance(); // Use provided or singleton tracer
|
|
20
|
+
// No need to get traceClient here, will be fetched from context in methods
|
|
21
|
+
console.log(`[Judgeval Handler] Initialized. Monitoring Enabled: ${this.tracer.enableMonitoring}`); // Added prefix
|
|
22
|
+
}
|
|
23
|
+
// Helper to safely get the current TraceClient from context
|
|
24
|
+
_getActiveTraceClient() {
|
|
25
|
+
if (!this.tracer.enableMonitoring) {
|
|
26
|
+
// console.log("Judgeval Handler: Monitoring disabled."); // Reduce noise
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
const client = this.tracer.getCurrentTrace();
|
|
30
|
+
if (!client) {
|
|
31
|
+
console.log("[Judgeval Handler] _getActiveTraceClient: No active trace client found in context."); // Added log
|
|
32
|
+
}
|
|
33
|
+
// Explicitly return null if client is undefined
|
|
34
|
+
return client ?? null;
|
|
35
|
+
}
|
|
36
|
+
// Helper to create a unique span ID
|
|
37
|
+
_generateSpanId() {
|
|
38
|
+
return (0, uuid_1.v4)();
|
|
39
|
+
}
|
|
40
|
+
// Start a new span, associating it with the LangChain runId
|
|
41
|
+
_startSpan(lcRunId, name, spanType = "span") {
|
|
42
|
+
const traceClient = this._getActiveTraceClient();
|
|
43
|
+
if (!traceClient)
|
|
44
|
+
return;
|
|
45
|
+
const startTime = Date.now() / 1000;
|
|
46
|
+
const spanId = this._generateSpanId();
|
|
47
|
+
this.runIdToSpanId[lcRunId] = spanId; // Map Langchain runId to our new spanId
|
|
48
|
+
// Get parent span ID from the current async context
|
|
49
|
+
const parentSpanId = tracer_1.currentSpanAsyncLocalStorage.getStore();
|
|
50
|
+
// Calculate depth based on parent
|
|
51
|
+
let depth = 0;
|
|
52
|
+
if (parentSpanId) {
|
|
53
|
+
const parentEntry = traceClient.entries.find((e) => e.span_id === parentSpanId && e.type === 'enter');
|
|
54
|
+
if (parentEntry) {
|
|
55
|
+
depth = (parentEntry.depth ?? -1) + 1; // Increment parent depth
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// If parent entry not found (should be rare in async context), start at 0
|
|
59
|
+
console.warn(`Judgeval Handler: Parent span entry ${parentSpanId} not found for child ${spanId}. Defaulting depth to 0.`);
|
|
60
|
+
depth = 0;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
// No parent in context, this is a root span (relative to this handler's context)
|
|
65
|
+
depth = 0;
|
|
66
|
+
}
|
|
67
|
+
// console.log(`>>> _startSpan: Creating span ${spanId} ('${name}') depth: ${depth}, parent: ${parentSpanId ?? 'None'}, lcRunId: ${lcRunId}`); // Debug log
|
|
68
|
+
traceClient.addEntry({
|
|
69
|
+
type: 'enter',
|
|
70
|
+
function: name,
|
|
71
|
+
span_id: spanId,
|
|
72
|
+
depth: depth,
|
|
73
|
+
timestamp: startTime,
|
|
74
|
+
span_type: spanType,
|
|
75
|
+
parent_span_id: parentSpanId
|
|
76
|
+
});
|
|
77
|
+
this.spanStartTimes[spanId] = startTime;
|
|
78
|
+
// Set this new span as the current one in the context *for child operations*
|
|
79
|
+
// Note: This relies on Langchain's async flow preserving the context.
|
|
80
|
+
// If Langchain breaks context, this might not propagate correctly.
|
|
81
|
+
// It's generally better to *read* the parent from context when starting a span,
|
|
82
|
+
// rather than trying to manage pushing/popping onto the context here.
|
|
83
|
+
// The Tracer's observe/runInTrace methods handle setting the context.
|
|
84
|
+
}
|
|
85
|
+
// End the span corresponding to the LangChain runId
|
|
86
|
+
_endSpan(lcRunId, output, error) {
|
|
87
|
+
const traceClient = this._getActiveTraceClient();
|
|
88
|
+
// Retrieve the spanId using the LangChain runId
|
|
89
|
+
const spanId = this.runIdToSpanId[lcRunId];
|
|
90
|
+
if (!traceClient || !spanId || !(spanId in this.spanStartTimes)) {
|
|
91
|
+
// console.log(`>>> _endSpan: Skipping endSpan for lcRunId ${lcRunId} / spanId ${spanId} - ID/trace/time missing or monitoring disabled.`); // Debug log
|
|
92
|
+
// Clean up the map even if we can't end the span fully
|
|
93
|
+
if (lcRunId in this.runIdToSpanId)
|
|
94
|
+
delete this.runIdToSpanId[lcRunId];
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const startTime = this.spanStartTimes[spanId];
|
|
98
|
+
const endTime = Date.now() / 1000;
|
|
99
|
+
const duration = endTime - startTime;
|
|
100
|
+
// Find the original 'enter' entry to get details like name and depth
|
|
101
|
+
const enterEntry = traceClient.entries.find(e => e.span_id === spanId && e.type === 'enter');
|
|
102
|
+
if (!enterEntry) {
|
|
103
|
+
console.warn(`Judgeval Handler: Could not find 'enter' entry for span ${spanId} (lcRunId: ${lcRunId}) during _endSpan.`);
|
|
104
|
+
// Clean up maps even if entry isn't found
|
|
105
|
+
delete this.spanStartTimes[spanId];
|
|
106
|
+
delete this.runIdToSpanId[lcRunId];
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
// Record output or error *before* the exit entry
|
|
110
|
+
if (error) {
|
|
111
|
+
traceClient.recordOutput(error instanceof Error ? error : new Error(String(error)));
|
|
112
|
+
}
|
|
113
|
+
else if (output !== undefined) {
|
|
114
|
+
// Avoid recording 'undefined' as output explicitly
|
|
115
|
+
traceClient.recordOutput(output);
|
|
116
|
+
}
|
|
117
|
+
traceClient.addEntry({
|
|
118
|
+
type: 'exit',
|
|
119
|
+
function: enterEntry.function, // Use name from 'enter' entry
|
|
120
|
+
span_id: spanId,
|
|
121
|
+
depth: enterEntry.depth, // Use depth from 'enter' entry
|
|
122
|
+
timestamp: endTime,
|
|
123
|
+
duration: duration,
|
|
124
|
+
span_type: enterEntry.span_type // Use type from 'enter' entry
|
|
125
|
+
});
|
|
126
|
+
// Clean up maps
|
|
127
|
+
delete this.spanStartTimes[spanId];
|
|
128
|
+
delete this.runIdToSpanId[lcRunId];
|
|
129
|
+
// console.log(`>>> _endSpan: Ended span ${spanId} ('${enterEntry.function}'), lcRunId: ${lcRunId}`); // Debug log
|
|
130
|
+
}
|
|
131
|
+
// --- Chain Events ---
|
|
132
|
+
async onChainStart(serialized, inputs, runId, parentRunId, tags, metadata, options // Langchain-JS doesn't seem to pass options here consistently
|
|
133
|
+
) {
|
|
134
|
+
console.log(`[Judgeval Handler] onChainStart called for runId: ${runId}`); // Added log
|
|
135
|
+
// console.log(`>>> onChainStart: runId: ${runId}, parentRunId: ${parentRunId}, metadata: ${JSON.stringify(metadata)}, tags: ${JSON.stringify(tags)}`); // Debug log
|
|
136
|
+
const traceClient = this._getActiveTraceClient();
|
|
137
|
+
if (!traceClient)
|
|
138
|
+
return;
|
|
139
|
+
let spanName;
|
|
140
|
+
const spanType = "chain"; // Keep type as chain
|
|
141
|
+
// Determine span name based on Python logic: prioritize 'LangGraph' root, then serialized name
|
|
142
|
+
const executionName = serialized?.name ?? 'Unknown Chain';
|
|
143
|
+
if (executionName === 'LangGraph') {
|
|
144
|
+
spanName = 'LangGraph'; // Match Python root span name
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
// Use the serialized name or a generic fallback, avoiding node-specific prefixes
|
|
148
|
+
spanName = executionName;
|
|
149
|
+
}
|
|
150
|
+
// Removed node-specific logic:
|
|
151
|
+
// const nodeName = metadata?.langgraph_node ? String(metadata.langgraph_node) : null;
|
|
152
|
+
// if (nodeName) { ... } else { ... }
|
|
153
|
+
this._startSpan(runId, spanName, spanType);
|
|
154
|
+
// Record input associated with the started span
|
|
155
|
+
const currentSpanId = this.runIdToSpanId[runId];
|
|
156
|
+
if (currentSpanId) {
|
|
157
|
+
// Input is recorded in the current context span of the TraceClient
|
|
158
|
+
traceClient.recordInput({ args: inputs /* , options: options */ }); // Removed spanId
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
async onChainEnd(outputs, // Output can sometimes be a simple string
|
|
162
|
+
runId, parentRunId, tags) {
|
|
163
|
+
// console.log(`>>> onChainEnd: runId: ${runId}`); // Debug log
|
|
164
|
+
// Output is recorded within _endSpan
|
|
165
|
+
this._endSpan(runId, outputs);
|
|
166
|
+
}
|
|
167
|
+
async onChainError(error, runId, parentRunId, tags) {
|
|
168
|
+
// console.error(`>>> onChainError: runId: ${runId}`, error); // Debug log
|
|
169
|
+
// Error is recorded within _endSpan
|
|
170
|
+
this._endSpan(runId, undefined, error);
|
|
171
|
+
}
|
|
172
|
+
// --- LLM Events ---
|
|
173
|
+
_getLlmSpanName(serialized) {
|
|
174
|
+
// Simplify extraction if possible, check common patterns
|
|
175
|
+
const idPath = (serialized?.id ?? []).join('/').toLowerCase();
|
|
176
|
+
if (idPath.includes("openai"))
|
|
177
|
+
return "OPENAI_API_CALL";
|
|
178
|
+
if (idPath.includes("anthropic"))
|
|
179
|
+
return "ANTHROPIC_API_CALL";
|
|
180
|
+
if (idPath.includes("together"))
|
|
181
|
+
return "TOGETHER_API_CALL";
|
|
182
|
+
// Add other common providers if needed (e.g., google, bedrock)
|
|
183
|
+
return "LLM_CALL"; // Default
|
|
184
|
+
}
|
|
185
|
+
// Generic LLM Start handler (covers both base LLM and ChatModel)
|
|
186
|
+
async _handleLlmStart(serialized, runId, inputData, extraParams,
|
|
187
|
+
// tags?: string[] | undefined, // Often unused for LLM spans
|
|
188
|
+
// metadata?: Record<string, unknown> | undefined, // Often unused for LLM spans
|
|
189
|
+
options // Langchain passes invocation params here
|
|
190
|
+
) {
|
|
191
|
+
// console.log(`>>> _handleLlmStart: runId: ${runId}`); // Debug log
|
|
192
|
+
const traceClient = this._getActiveTraceClient();
|
|
193
|
+
if (!traceClient)
|
|
194
|
+
return;
|
|
195
|
+
// Extract model name from options (common pattern) or extraParams
|
|
196
|
+
const invocationParams = options?.invocation_params ?? extraParams ?? {};
|
|
197
|
+
const modelName = invocationParams?.model_name ?? invocationParams?.model ?? 'unknown_model';
|
|
198
|
+
const spanName = this._getLlmSpanName(serialized);
|
|
199
|
+
this._startSpan(runId, spanName, "llm");
|
|
200
|
+
// Prepare input payload
|
|
201
|
+
let inputPayload = {
|
|
202
|
+
model: modelName,
|
|
203
|
+
params: invocationParams, // Record all invocation params
|
|
204
|
+
// options: options // May include other config besides invocation_params
|
|
205
|
+
};
|
|
206
|
+
if ('prompts' in inputData) {
|
|
207
|
+
inputPayload.prompts = inputData.prompts;
|
|
208
|
+
}
|
|
209
|
+
else if ('messages' in inputData) {
|
|
210
|
+
// Langchain JS passes messages as BaseMessage[][]
|
|
211
|
+
inputPayload.messages = inputData.messages[0] ?? []; // Extract first batch element safely
|
|
212
|
+
}
|
|
213
|
+
// Record input associated with the started span
|
|
214
|
+
const currentSpanId = this.runIdToSpanId[runId];
|
|
215
|
+
if (currentSpanId) {
|
|
216
|
+
// Input is recorded in the current context span of the TraceClient
|
|
217
|
+
traceClient.recordInput(inputPayload); // Removed spanId
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
async onLlmStart(serialized, prompts, runId, parentRunId, extraParams, tags, metadata, options // options might contain invocation_params
|
|
221
|
+
) {
|
|
222
|
+
console.log(`[Judgeval Handler] onLlmStart called for runId: ${runId}`); // Added log
|
|
223
|
+
await this._handleLlmStart(serialized, runId, { prompts }, extraParams, options);
|
|
224
|
+
}
|
|
225
|
+
// Handles Chat Model start specifically
|
|
226
|
+
async onChatModelStart(serialized, messages, runId, parentRunId, extraParams, tags, metadata, options // options might contain invocation_params
|
|
227
|
+
) {
|
|
228
|
+
console.log(`[Judgeval Handler] onChatModelStart called for runId: ${runId}`); // Added log
|
|
229
|
+
await this._handleLlmStart(serialized, runId, { messages }, extraParams, options);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Handles the end of an LLM call. Extracts the output, usage data, and ends the corresponding span.
|
|
233
|
+
* @param output The result from the LLM call.
|
|
234
|
+
* @param runId The unique ID of the run.
|
|
235
|
+
*/
|
|
236
|
+
async onLlmEnd(output, runId) {
|
|
237
|
+
// console.log(`>>> onLlmEnd: runId: ${runId}`); // Debug log
|
|
238
|
+
const traceClient = this._getActiveTraceClient();
|
|
239
|
+
const spanId = this.runIdToSpanId[runId]; // Needed for context if recording output directly here
|
|
240
|
+
if (!traceClient || !spanId) {
|
|
241
|
+
// console.warn(`Judgeval Handler: Skipping onLlmEnd for runId ${runId}. Trace client or span ID missing.`); // Debug log
|
|
242
|
+
this._endSpan(runId, output); // Still attempt to end span if possible, passing raw output
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
// Process LLMResult to extract relevant data
|
|
246
|
+
const generation = output.generations?.[0]?.[0];
|
|
247
|
+
let llmOutputPayload = {};
|
|
248
|
+
if (generation) {
|
|
249
|
+
// Handle ChatGeneration vs regular Generation
|
|
250
|
+
if ("message" in generation && generation.message instanceof messages_1.BaseMessage) {
|
|
251
|
+
const aiMessage = generation.message; // Assume AI message for output
|
|
252
|
+
llmOutputPayload.content = aiMessage.content;
|
|
253
|
+
// Include tool calls if present
|
|
254
|
+
if (aiMessage.tool_calls && aiMessage.tool_calls.length > 0) {
|
|
255
|
+
llmOutputPayload.tool_calls = aiMessage.tool_calls;
|
|
256
|
+
}
|
|
257
|
+
if (aiMessage.invalid_tool_calls && aiMessage.invalid_tool_calls.length > 0) {
|
|
258
|
+
llmOutputPayload.invalid_tool_calls = aiMessage.invalid_tool_calls;
|
|
259
|
+
}
|
|
260
|
+
// Usage metadata might be here (e.g., OpenAI)
|
|
261
|
+
if (aiMessage.usage_metadata) {
|
|
262
|
+
llmOutputPayload.usage_metadata = aiMessage.usage_metadata;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
else if (generation.text) {
|
|
266
|
+
// Handle plain text generation
|
|
267
|
+
llmOutputPayload.content = generation.text;
|
|
268
|
+
}
|
|
269
|
+
// Standardize token usage extraction if not in usage_metadata
|
|
270
|
+
// Check generationInfo first, then llmOutput
|
|
271
|
+
const tokenUsage = generation.generationInfo?.tokenUsage ?? output.llmOutput?.tokenUsage;
|
|
272
|
+
if (tokenUsage && !llmOutputPayload.usage_metadata?.token_usage) { // Avoid duplication if already in usage_metadata
|
|
273
|
+
llmOutputPayload.token_usage = {
|
|
274
|
+
completionTokens: tokenUsage.completionTokens ?? tokenUsage.completion_tokens,
|
|
275
|
+
promptTokens: tokenUsage.promptTokens ?? tokenUsage.prompt_tokens,
|
|
276
|
+
totalTokens: tokenUsage.totalTokens ?? tokenUsage.total_tokens,
|
|
277
|
+
};
|
|
278
|
+
// Normalize keys within usage_metadata if present
|
|
279
|
+
}
|
|
280
|
+
else if (llmOutputPayload.usage_metadata?.token_usage) {
|
|
281
|
+
const usageMeta = llmOutputPayload.usage_metadata.token_usage;
|
|
282
|
+
llmOutputPayload.token_usage = {
|
|
283
|
+
completionTokens: usageMeta.completionTokens ?? usageMeta.completion_tokens,
|
|
284
|
+
promptTokens: usageMeta.promptTokens ?? usageMeta.prompt_tokens,
|
|
285
|
+
totalTokens: usageMeta.totalTokens ?? usageMeta.total_tokens,
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
// Include other generationInfo if available and potentially useful
|
|
289
|
+
if (generation.generationInfo) {
|
|
290
|
+
llmOutputPayload.generation_info = generation.generationInfo;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
// Include raw LLM output if available and potentially useful (can be verbose)
|
|
294
|
+
// if (output.llmOutput) {
|
|
295
|
+
// llmOutputPayload.raw_llm_output = output.llmOutput;
|
|
296
|
+
// }
|
|
297
|
+
// Output is recorded within _endSpan
|
|
298
|
+
this._endSpan(runId, llmOutputPayload);
|
|
299
|
+
}
|
|
300
|
+
async onLlmError(error, runId, parentRunId) {
|
|
301
|
+
// console.error(`>>> onLlmError: runId: ${runId}`, error); // Debug log
|
|
302
|
+
// Error is recorded within _endSpan
|
|
303
|
+
this._endSpan(runId, undefined, error);
|
|
304
|
+
}
|
|
305
|
+
// --- Tool Events ---
|
|
306
|
+
async onToolStart(serialized, inputStr, // input is often a stringified object
|
|
307
|
+
runId, parentRunId, tags, metadata) {
|
|
308
|
+
console.log(`[Judgeval Handler] onToolStart called for runId: ${runId}`); // Added log
|
|
309
|
+
// console.log(`>>> onToolStart: runId: ${runId}, name: ${serialized?.name}`); // Debug log
|
|
310
|
+
const traceClient = this._getActiveTraceClient();
|
|
311
|
+
if (!traceClient)
|
|
312
|
+
return;
|
|
313
|
+
// Match Python: Use the tool name directly as the span name
|
|
314
|
+
const toolName = serialized?.name ?? 'Unknown Tool';
|
|
315
|
+
const spanName = toolName; // Removed "TOOL: " prefix
|
|
316
|
+
this._startSpan(runId, spanName, "tool");
|
|
317
|
+
// Try to parse inputStr if it's JSON, otherwise keep as string
|
|
318
|
+
let parsedInput = inputStr;
|
|
319
|
+
try {
|
|
320
|
+
// Avoid parsing null/empty strings
|
|
321
|
+
if (inputStr && inputStr.trim().startsWith('{') && inputStr.trim().endsWith('}')) {
|
|
322
|
+
parsedInput = JSON.parse(inputStr);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
catch (e) {
|
|
326
|
+
// Ignore error, keep as string if parsing fails
|
|
327
|
+
}
|
|
328
|
+
// Record input associated with the started span
|
|
329
|
+
const currentSpanId = this.runIdToSpanId[runId];
|
|
330
|
+
if (currentSpanId) {
|
|
331
|
+
// Input is recorded in the current context span of the TraceClient
|
|
332
|
+
traceClient.recordInput({ input: parsedInput /* , options: options */ }); // Removed spanId
|
|
333
|
+
}
|
|
334
|
+
// Track tool execution (if needed externally)
|
|
335
|
+
// this.executedTools.push(toolName); // Example
|
|
336
|
+
}
|
|
337
|
+
async onToolEnd(output, // Tool output is typically a string
|
|
338
|
+
runId, parentRunId) {
|
|
339
|
+
// console.log(`>>> onToolEnd: runId: ${runId}`); // Debug log
|
|
340
|
+
// Output is recorded within _endSpan
|
|
341
|
+
this._endSpan(runId, output);
|
|
342
|
+
}
|
|
343
|
+
async onToolError(error, runId, parentRunId) {
|
|
344
|
+
// console.error(`>>> onToolError: runId: ${runId}`, error); // Debug log
|
|
345
|
+
// Error is recorded within _endSpan
|
|
346
|
+
this._endSpan(runId, undefined, error);
|
|
347
|
+
}
|
|
348
|
+
// --- Retriever Events ---
|
|
349
|
+
async onRetrieverStart(serialized, query, runId, parentRunId, tags, metadata) {
|
|
350
|
+
console.log(`[Judgeval Handler] onRetrieverStart called for runId: ${runId}`); // Added log
|
|
351
|
+
// console.log(`>>> onRetrieverStart: runId: ${runId}, name: ${serialized?.name}`); // Debug log
|
|
352
|
+
const traceClient = this._getActiveTraceClient();
|
|
353
|
+
if (!traceClient)
|
|
354
|
+
return;
|
|
355
|
+
// Match Python naming convention
|
|
356
|
+
const retrieverName = serialized?.name;
|
|
357
|
+
let spanName;
|
|
358
|
+
if (retrieverName) {
|
|
359
|
+
spanName = `RETRIEVER_${retrieverName.toUpperCase()}`;
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
spanName = "RETRIEVER_CALL";
|
|
363
|
+
}
|
|
364
|
+
// const spanName = `RETRIEVER: ${retrieverName}`; // Old naming
|
|
365
|
+
this._startSpan(runId, spanName, "retriever"); // Use 'retriever' span type
|
|
366
|
+
// Record input associated with the started span
|
|
367
|
+
const currentSpanId = this.runIdToSpanId[runId];
|
|
368
|
+
if (currentSpanId) {
|
|
369
|
+
// Input is recorded in the current context span of the TraceClient
|
|
370
|
+
traceClient.recordInput({ query: query /* , options: options */ }); // Removed spanId
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
async onRetrieverEnd(documents, runId, parentRunId, tags) {
|
|
374
|
+
// console.log(`>>> onRetrieverEnd: runId: ${runId}, docs: ${documents.length}`); // Debug log
|
|
375
|
+
const traceClient = this._getActiveTraceClient();
|
|
376
|
+
if (!traceClient) {
|
|
377
|
+
// If no trace client, we still need to clean up the runId mapping potentially
|
|
378
|
+
this._endSpan(runId);
|
|
379
|
+
return;
|
|
380
|
+
}
|
|
381
|
+
// Format output similar to Python's handler
|
|
382
|
+
const docSummary = documents.map((doc, i) => ({
|
|
383
|
+
index: i,
|
|
384
|
+
page_content: doc.pageContent.substring(0, 150) + (doc.pageContent.length > 150 ? "..." : ""), // Slightly longer preview
|
|
385
|
+
metadata: doc.metadata,
|
|
386
|
+
}));
|
|
387
|
+
const output = {
|
|
388
|
+
document_count: documents.length,
|
|
389
|
+
documents: docSummary,
|
|
390
|
+
};
|
|
391
|
+
// Output is recorded within _endSpan
|
|
392
|
+
this._endSpan(runId, output);
|
|
393
|
+
}
|
|
394
|
+
async onRetrieverError(error, runId, parentRunId, tags) {
|
|
395
|
+
// console.error(`>>> onRetrieverError: runId: ${runId}`, error); // Debug log
|
|
396
|
+
// Error is recorded within _endSpan
|
|
397
|
+
this._endSpan(runId, undefined, error);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
exports.JudgevalLanggraphCallbackHandler = JudgevalLanggraphCallbackHandler;
|
|
401
|
+
//# sourceMappingURL=langgraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langgraph.js","sourceRoot":"","sources":["../../../../src/common/integrations/langgraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
@@ -18,8 +7,7 @@ const winston_1 = __importDefault(require("winston"));
|
|
|
18
7
|
// Define the logger configuration
|
|
19
8
|
const logger = winston_1.default.createLogger({
|
|
20
9
|
level: process.env.JUDGMENT_LOG_LEVEL || 'info', // Default to 'info', allow override via env var
|
|
21
|
-
format: winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston_1.default.format.printf((
|
|
22
|
-
var { timestamp, level, message } = _a, meta = __rest(_a, ["timestamp", "level", "message"]);
|
|
10
|
+
format: winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston_1.default.format.printf(({ timestamp, level, message, ...meta }) => {
|
|
23
11
|
// Simple format: Timestamp [LEVEL]: message {meta}
|
|
24
12
|
let metaString = '';
|
|
25
13
|
if (Object.keys(meta).length > 0) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-instance.js","sourceRoot":"","sources":["../../../src/common/logger-instance.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAE9B,kCAAkC;AAClC,MAAM,MAAM,GAAG,iBAAO,CAAC,YAAY,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,EAAE,gDAAgD;IACjG,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,iBAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,EAC3D,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;QAC/D,mDAAmD;QACnD,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,sEAAsE;gBACtE,UAAU,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBAChD,4DAA4D;wBAC5D,IAAI,GAAG,KAAK,EAAE;4BAAE,OAAO,KAAK,CAAC,CAAC,cAAc;wBAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;4BAAE,OAAO,YAAY,CAAC;oBACtE,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,EAAE,CAAC;YACP,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,UAAU,GAAG,yBAAyB,CAAC;YACzC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,SAAS,KAAK,KAAK,CAAC,WAAW,EAAE,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC1E,CAAC,CAAC,EACF,iBAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,uBAAuB;KAC/D;IACD,UAAU,EAAE;QACV,qBAAqB;QACrB,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,EAAE;QAChC,yCAAyC;QACzC,4DAA4D;KAC7D;IACD,oBAAoB;IACpB,iBAAiB,EAAE;QACjB,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,EAAE;QAChC,8DAA8D;KAC/D;IACD,4BAA4B;IAC5B,iBAAiB,EAAE;QACjB,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,EAAE;QAChC,8DAA8D;KAC/D;CACF,CAAC,CAAC;AAEH,kBAAe,MAAM,CAAC"}
|
|
@@ -18,7 +18,7 @@ let currentTimestamp = null;
|
|
|
18
18
|
* Log a debug message
|
|
19
19
|
*/
|
|
20
20
|
function debug(message, meta) {
|
|
21
|
-
logger_instance_1.default.debug(message,
|
|
21
|
+
logger_instance_1.default.debug(message, { ...meta, exampleId: currentExampleId, timestamp: currentTimestamp });
|
|
22
22
|
}
|
|
23
23
|
exports.debug = debug;
|
|
24
24
|
/**
|
|
@@ -30,21 +30,21 @@ function log(message, ...args) {
|
|
|
30
30
|
if (args.length > 0) {
|
|
31
31
|
meta = { args: args };
|
|
32
32
|
}
|
|
33
|
-
logger_instance_1.default.info(message,
|
|
33
|
+
logger_instance_1.default.info(message, { ...meta, exampleId: currentExampleId, timestamp: currentTimestamp });
|
|
34
34
|
}
|
|
35
35
|
exports.log = log;
|
|
36
36
|
/**
|
|
37
37
|
* Log an info message
|
|
38
38
|
*/
|
|
39
39
|
function info(message, meta) {
|
|
40
|
-
logger_instance_1.default.info(message,
|
|
40
|
+
logger_instance_1.default.info(message, { ...meta, exampleId: currentExampleId, timestamp: currentTimestamp });
|
|
41
41
|
}
|
|
42
42
|
exports.info = info;
|
|
43
43
|
/**
|
|
44
44
|
* Log a warning message
|
|
45
45
|
*/
|
|
46
46
|
function warning(message, meta) {
|
|
47
|
-
logger_instance_1.default.warn(message,
|
|
47
|
+
logger_instance_1.default.warn(message, { ...meta, exampleId: currentExampleId, timestamp: currentTimestamp });
|
|
48
48
|
}
|
|
49
49
|
exports.warning = warning;
|
|
50
50
|
/**
|
|
@@ -58,7 +58,7 @@ exports.warn = warn;
|
|
|
58
58
|
* Log an error message
|
|
59
59
|
*/
|
|
60
60
|
function error(message, meta) {
|
|
61
|
-
logger_instance_1.default.error(message,
|
|
61
|
+
logger_instance_1.default.error(message, { ...meta, exampleId: currentExampleId, timestamp: currentTimestamp });
|
|
62
62
|
}
|
|
63
63
|
exports.error = error;
|
|
64
64
|
/**
|
|
@@ -95,22 +95,21 @@ exports.withExampleContext = withExampleContext;
|
|
|
95
95
|
* This matches the Python SDK's output format with clickable links
|
|
96
96
|
*/
|
|
97
97
|
function formatEvaluationResults(results, projectName, evalName) {
|
|
98
|
-
var _a;
|
|
99
98
|
let output = '';
|
|
100
99
|
// Print summary information
|
|
101
100
|
if (results.length > 0) {
|
|
102
101
|
output += `\n=== Evaluation Results (${results.length} examples) ===\n\n`;
|
|
103
102
|
// Calculate success rate
|
|
104
|
-
const successfulExamples = results.filter(r =>
|
|
103
|
+
const successfulExamples = results.filter(r => r.success || (r.scorersData?.every((s) => s.success) ?? false)).length;
|
|
105
104
|
const successRate = (successfulExamples / results.length) * 100;
|
|
106
105
|
output += `Success Rate: ${successRate.toFixed(2)}% (${successfulExamples}/${results.length})\n\n`;
|
|
107
106
|
// Print failures if any
|
|
108
|
-
const failures = results.filter(r =>
|
|
107
|
+
const failures = results.filter(r => !r.success || (r.scorersData?.some((s) => !s.success) ?? false));
|
|
109
108
|
if (failures.length > 0) {
|
|
110
109
|
output += `Failures (${failures.length}):\n`;
|
|
111
110
|
for (const [index, failure] of failures.entries()) {
|
|
112
111
|
output += `\nExample ${index + 1}:\n`;
|
|
113
|
-
output += `Input: ${
|
|
112
|
+
output += `Input: ${failure.example?.input || 'N/A'}\n`;
|
|
114
113
|
if (failure.scorersData) {
|
|
115
114
|
output += 'Scorer Failures:\n';
|
|
116
115
|
for (const scorer of failure.scorersData) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/common/logger.ts"],"names":[],"mappings":"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"}
|