feat: 下沉知识库检索编排能力

- 新增 rag retrieval 核心协议、RRF 融合与相关度归一化

- 支持关键词检索按 knowledgeId 过滤并补充 ES/Lucene 单测

- 扩展 KnowledgeNode 检索模式与 Milvus 检索参数透传
This commit is contained in:
2026-04-05 20:22:59 +08:00
parent 941995d1b8
commit f57544daa2
28 changed files with 1309 additions and 34 deletions

View File

@@ -35,6 +35,7 @@ public class KnowledgeNode extends BaseNode {
private Object knowledgeId;
private String keyword;
private String limit;
private String retrievalMode = "HYBRID";
public Object getKnowledgeId() {
return knowledgeId;
@@ -60,6 +61,14 @@ public class KnowledgeNode extends BaseNode {
this.limit = limit;
}
public String getRetrievalMode() {
return retrievalMode;
}
public void setRetrievalMode(String retrievalMode) {
this.retrievalMode = StringUtil.hasText(retrievalMode) ? retrievalMode : "HYBRID";
}
@Override
public Map<String, Object> execute(Chain chain) {
Map<String, Object> argsMap = chain.getState().resolveParameters(this);
@@ -90,6 +99,7 @@ public class KnowledgeNode extends BaseNode {
"knowledgeId=" + knowledgeId +
", keyword='" + keyword + '\'' +
", limit='" + limit + '\'' +
", retrievalMode='" + retrievalMode + '\'' +
", parameters=" + parameters +
", outputDefs=" + outputDefs +
", id='" + id + '\'' +

View File

@@ -27,6 +27,7 @@ public class KnowledgeNodeParser extends BaseNodeParser<KnowledgeNode> {
knowledgeNode.setKnowledgeId(data.get("knowledgeId"));
knowledgeNode.setLimit(data.getString("limit"));
knowledgeNode.setKeyword(data.getString("keyword"));
knowledgeNode.setRetrievalMode(data.getString("retrievalMode"));
return knowledgeNode;
}