feat(rag): modularize knowledge retrieval pipeline
This commit is contained in:
@@ -2,7 +2,10 @@ package com.superbiz.agent.service;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.superbiz.agent.domain.entity.ToolInvocation;
|
||||
import com.superbiz.agent.dto.ContextPack;
|
||||
import com.superbiz.agent.dto.EvidenceBlock;
|
||||
import com.superbiz.agent.dto.KnowledgeQuery;
|
||||
import com.superbiz.agent.dto.RetrievalTrace;
|
||||
import com.superbiz.agent.repository.ToolInvocationRepository;
|
||||
import com.superbiz.agent.util.SessionContextHolder;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -129,23 +132,51 @@ class ToolInvocationRecorderTest {
|
||||
.evidenceCandidateCount(3)
|
||||
.evidenceBlockCount(1)
|
||||
.evidenceBlocks(List.of(block))
|
||||
.contextPack(ContextPack.builder()
|
||||
.packedText("packed evidence")
|
||||
.strategy("ranked_evidence_char_budget")
|
||||
.charBudget(4000)
|
||||
.usedChars(15)
|
||||
.includedSources(List.of("doc.md"))
|
||||
.omittedSources(List.of())
|
||||
.build())
|
||||
.retrievalTrace(RetrievalTrace.builder()
|
||||
.originalQuery("query")
|
||||
.rewrittenQuery("query")
|
||||
.selectedAttempt("UNFILTERED_VECTOR")
|
||||
.evidenceStatus(ToolInvocationRecorder.EVIDENCE_STATUS_SUPPORTED)
|
||||
.attempts(List.of(RetrievalTrace.Attempt.builder()
|
||||
.name("UNFILTERED_VECTOR")
|
||||
.candidateCount(3)
|
||||
.topScore(0.42)
|
||||
.topSimilarity(0.79)
|
||||
.usable(true)
|
||||
.build()))
|
||||
.build())
|
||||
.build();
|
||||
KnowledgeQuery query = KnowledgeQuery.builder()
|
||||
.originalQuery("query")
|
||||
.rewrittenQuery("query")
|
||||
.domainHints(List.of())
|
||||
.matchedKeywords(List.of())
|
||||
.entities(List.of())
|
||||
.l0Titles(List.of())
|
||||
.l0MatchCount(0)
|
||||
.build();
|
||||
|
||||
ToolInvocationRecorder.LookupKnowledgeRecord record = ToolInvocationRecorder.LookupKnowledgeRecord.from(
|
||||
"query",
|
||||
KnowledgeIndexService.L0Hint.empty(),
|
||||
List.of(),
|
||||
false,
|
||||
query,
|
||||
result,
|
||||
null,
|
||||
null,
|
||||
10,
|
||||
-1
|
||||
10
|
||||
);
|
||||
|
||||
assertEquals(3, record.evidenceCandidateCount());
|
||||
assertEquals(1, record.evidenceBlockCount());
|
||||
assertEquals(1, record.evidenceBlocks().size());
|
||||
assertTrue(String.valueOf(record.evidenceBlocks().get(0).get("content_preview")).endsWith("..."));
|
||||
assertEquals("UNFILTERED_VECTOR", record.retrievalLayer());
|
||||
assertEquals(3, record.l1MatchCount());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user