Refine memory filtering and lexicon sources for focus entities
This commit is contained in:
@@ -826,8 +826,11 @@ async function buildVectorPrompt(store, recallResult, causalById, focusEntities,
|
|||||||
const isDirect = e._recallType === "DIRECT";
|
const isDirect = e._recallType === "DIRECT";
|
||||||
if (!isDirect && relatedBudget.used >= relatedBudget.max) continue;
|
if (!isDirect && relatedBudget.used >= relatedBudget.max) continue;
|
||||||
|
|
||||||
// 收集该事件范围内的 EvidenceGroup(per-floor)
|
// 硬规则:RELATED 事件不挂证据(不挂 L0/L1,只保留事件摘要)
|
||||||
const evidenceGroups = collectEvidenceGroupsForEvent(e.event, l0Selected, l1ByFloor, usedL0Ids);
|
// DIRECT 才允许收集事件内证据组。
|
||||||
|
const evidenceGroups = isDirect
|
||||||
|
? collectEvidenceGroupsForEvent(e.event, l0Selected, l1ByFloor, usedL0Ids)
|
||||||
|
: [];
|
||||||
|
|
||||||
// 格式化事件(含证据)
|
// 格式化事件(含证据)
|
||||||
const text = formatEventWithEvidence(e, 0, evidenceGroups, causalById);
|
const text = formatEventWithEvidence(e, 0, evidenceGroups, causalById);
|
||||||
|
|||||||
@@ -30,7 +30,8 @@ function normalize(s) {
|
|||||||
* 1. store.json.characters.main — 已确认主要角色
|
* 1. store.json.characters.main — 已确认主要角色
|
||||||
* 2. store.json.arcs[].name — 弧光对象
|
* 2. store.json.arcs[].name — 弧光对象
|
||||||
* 3. context.name2 — 当前角色
|
* 3. context.name2 — 当前角色
|
||||||
* 4. store.json.facts[].s — L3 事实主语
|
* 4. store.json.events[].participants — L2 事件参与者
|
||||||
|
* 5. L0 atoms edges.s/edges.t
|
||||||
*
|
*
|
||||||
* 硬约束:永远排除 normalize(context.name1)
|
* 硬约束:永远排除 normalize(context.name1)
|
||||||
*
|
*
|
||||||
@@ -64,11 +65,12 @@ export function buildEntityLexicon(store, context) {
|
|||||||
add(context.name2);
|
add(context.name2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. L3 facts 主语
|
// 4. L2 events 参与者
|
||||||
const facts = store?.json?.facts || [];
|
const events = store?.json?.events || [];
|
||||||
for (const f of facts) {
|
for (const ev of events) {
|
||||||
if (f.retracted) continue;
|
for (const p of (ev?.participants || [])) {
|
||||||
add(f.s);
|
add(p);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 5. L0 atoms 的 edges.s/edges.t(新角色在 L2 总结前即可进入词典)
|
// 5. L0 atoms 的 edges.s/edges.t(新角色在 L2 总结前即可进入词典)
|
||||||
@@ -118,9 +120,12 @@ export function buildDisplayNameMap(store, context) {
|
|||||||
|
|
||||||
if (context?.name2) register(context.name2);
|
if (context?.name2) register(context.name2);
|
||||||
|
|
||||||
const facts = store?.json?.facts || [];
|
// 4. L2 events 参与者
|
||||||
for (const f of facts) {
|
const events = store?.json?.events || [];
|
||||||
if (!f.retracted) register(f.s);
|
for (const ev of events) {
|
||||||
|
for (const p of (ev?.participants || [])) {
|
||||||
|
register(p);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 5. L0 atoms 的 edges.s/edges.t
|
// 5. L0 atoms 的 edges.s/edges.t
|
||||||
|
|||||||
Reference in New Issue
Block a user