mirror of
https://github.com/Youzini-afk/ST-Bionic-Memory-Ecology.git
synced 2026-06-14 02:40:45 +08:00
feat: shared ranking core + prompt node references; recall reuses shared core for base query/vector/diffusion; remove retriever-local duplicate helpers; add regression tests
This commit is contained in:
54
tests/prompt-node-references.mjs
Normal file
54
tests/prompt-node-references.mjs
Normal file
@@ -0,0 +1,54 @@
|
||||
import assert from "node:assert/strict";
|
||||
|
||||
const {
|
||||
createPromptNodeReferenceMap,
|
||||
getPromptNodeLabel,
|
||||
resolvePromptNodeId,
|
||||
} = await import("../prompting/prompt-node-references.js");
|
||||
|
||||
const rawNodeId = "550e8400-e29b-41d4-a716-446655440000";
|
||||
const map = createPromptNodeReferenceMap(
|
||||
[
|
||||
{
|
||||
nodeId: rawNodeId,
|
||||
node: {
|
||||
id: rawNodeId,
|
||||
type: "event",
|
||||
fields: {
|
||||
title: "这是一个非常非常长的节点标题,用于测试提取提示里的标签截断行为",
|
||||
},
|
||||
},
|
||||
score: 0.91,
|
||||
},
|
||||
{
|
||||
node: {
|
||||
id: "node-2",
|
||||
type: "thread",
|
||||
fields: {
|
||||
summary: "关系持续升温",
|
||||
},
|
||||
},
|
||||
score: 0.77,
|
||||
},
|
||||
],
|
||||
{
|
||||
prefix: "G",
|
||||
maxLength: 12,
|
||||
buildMeta: ({ entry }) => ({
|
||||
score: entry.score,
|
||||
}),
|
||||
},
|
||||
);
|
||||
|
||||
assert.deepEqual(Object.keys(map.keyToNodeId), ["G1", "G2"]);
|
||||
assert.equal(map.keyToNodeId.G1, rawNodeId);
|
||||
assert.equal(map.nodeIdToKey[rawNodeId], "G1");
|
||||
assert.equal(resolvePromptNodeId({ nodeId: rawNodeId }), rawNodeId);
|
||||
assert.equal(resolvePromptNodeId({ node: { id: "node-2" } }), "node-2");
|
||||
assert.equal(getPromptNodeLabel({ id: "node-3", fields: { title: "短标题" } }), "短标题");
|
||||
assert.equal(map.keyToMeta.G1.score, 0.91);
|
||||
assert.match(map.keyToMeta.G1.label, /^这是一个非常非常长的节…$/);
|
||||
assert.equal(map.keyToMeta.G2.label, "关系持续升温");
|
||||
assert.equal(map.keyToMeta.G1.nodeId, rawNodeId);
|
||||
|
||||
console.log("prompt-node-references tests passed");
|
||||
Reference in New Issue
Block a user