Harden legacy extraction and recall JSON parsing

This commit is contained in:
Hao19911125
2026-04-05 15:24:01 +08:00
parent 03b535f5a4
commit ca3fc8fc2f
4 changed files with 287 additions and 8 deletions

View File

@@ -329,6 +329,54 @@ assert.equal(state.llmOptions[0].returnFailureDetails, true);
assert.equal(state.llmOptions[0].maxRetries, 2);
assert.equal(state.llmOptions[0].maxCompletionTokens, 512);
state.vectorCalls.length = 0;
state.diffusionCalls.length = 0;
state.llmCalls.length = 0;
state.llmOptions.length = 0;
state.llmCandidateCount = 0;
state.llmResponse = { selectedIds: ["rule-1"] };
const llmCamelCaseResult = await retrieve({
graph,
userMessage: "换个 JSON 键名也应该兼容",
recentMessages: [],
embeddingConfig: {},
schema,
options: {
topK: 4,
maxRecallNodes: 2,
enableVectorPrefilter: true,
enableGraphDiffusion: false,
enableLLMRecall: true,
llmCandidatePool: 2,
},
});
assert.deepEqual(Array.from(llmCamelCaseResult.selectedNodeIds), ["rule-1"]);
assert.equal(llmCamelCaseResult.meta.retrieval.llm.status, "llm");
state.vectorCalls.length = 0;
state.diffusionCalls.length = 0;
state.llmCalls.length = 0;
state.llmOptions.length = 0;
state.llmCandidateCount = 0;
state.llmResponse = { data: { selected_ids: ["rule-2"] } };
const llmNestedResult = await retrieve({
graph,
userMessage: "嵌套 JSON 结构也应该兼容",
recentMessages: [],
embeddingConfig: {},
schema,
options: {
topK: 4,
maxRecallNodes: 2,
enableVectorPrefilter: true,
enableGraphDiffusion: false,
enableLLMRecall: true,
llmCandidatePool: 2,
},
});
assert.deepEqual(Array.from(llmNestedResult.selectedNodeIds), ["rule-2"]);
assert.equal(llmNestedResult.meta.retrieval.llm.status, "llm");
state.vectorCalls.length = 0;
state.diffusionCalls.length = 0;
state.llmCalls.length = 0;