fix constraint coverage metric to count facts instead of rendered lines
This commit is contained in:
@@ -880,6 +880,13 @@ async function buildVectorPrompt(store, recallResult, causalById, focusCharacter
|
|||||||
|
|
||||||
const constraintBudget = { used: 0, max: Math.min(CONSTRAINT_MAX, total.max - total.used) };
|
const constraintBudget = { used: 0, max: Math.min(CONSTRAINT_MAX, total.max - total.used) };
|
||||||
const groupedSelectedConstraints = selectConstraintsByBudgetDesc(groupedConstraints, constraintBudget);
|
const groupedSelectedConstraints = selectConstraintsByBudgetDesc(groupedConstraints, constraintBudget);
|
||||||
|
const injectedConstraintFacts = (() => {
|
||||||
|
let count = groupedSelectedConstraints.world.length;
|
||||||
|
for (const facts of groupedSelectedConstraints.people.values()) {
|
||||||
|
count += facts.length;
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
})();
|
||||||
const constraintLines = formatConstraintsStructured(groupedSelectedConstraints, 'asc');
|
const constraintLines = formatConstraintsStructured(groupedSelectedConstraints, 'asc');
|
||||||
|
|
||||||
if (constraintLines.length) {
|
if (constraintLines.length) {
|
||||||
@@ -891,7 +898,7 @@ async function buildVectorPrompt(store, recallResult, causalById, focusCharacter
|
|||||||
injectionStats.constraint.filtered = allFacts.length - filteredConstraints.length;
|
injectionStats.constraint.filtered = allFacts.length - filteredConstraints.length;
|
||||||
|
|
||||||
if (metrics) {
|
if (metrics) {
|
||||||
metrics.constraint.injected = assembled.constraints.lines.length;
|
metrics.constraint.injected = injectedConstraintFacts;
|
||||||
metrics.constraint.tokens = constraintBudget.used;
|
metrics.constraint.tokens = constraintBudget.used;
|
||||||
metrics.constraint.samples = assembled.constraints.lines.slice(0, 3).map(line =>
|
metrics.constraint.samples = assembled.constraints.lines.slice(0, 3).map(line =>
|
||||||
line.length > 60 ? line.slice(0, 60) + '...' : line
|
line.length > 60 ? line.slice(0, 60) + '...' : line
|
||||||
@@ -1243,9 +1250,9 @@ async function buildVectorPrompt(store, recallResult, causalById, focusCharacter
|
|||||||
);
|
);
|
||||||
metrics.timing.evidenceAssembly = metrics.evidence.assemblyTime;
|
metrics.timing.evidenceAssembly = metrics.evidence.assemblyTime;
|
||||||
|
|
||||||
const totalFacts = allFacts.length;
|
const relevantFacts = Math.max(0, allFacts.length - (metrics.constraint.filtered || 0));
|
||||||
metrics.quality.constraintCoverage = totalFacts > 0
|
metrics.quality.constraintCoverage = relevantFacts > 0
|
||||||
? Math.round(assembled.constraints.lines.length / totalFacts * 100)
|
? Math.round((metrics.constraint.injected || 0) / relevantFacts * 100)
|
||||||
: 100;
|
: 100;
|
||||||
metrics.quality.eventPrecisionProxy = metrics.event?.similarityDistribution?.mean || 0;
|
metrics.quality.eventPrecisionProxy = metrics.event?.similarityDistribution?.mean || 0;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user