feat(rag): 检索质量评测 —— 单路检索能力 + recall@k/MRR 评测台
- 引擎抽 searchPaths(三路召回) + SearchByMode(vector/fulltext/graph/hybrid, 纯检索不 rerank,公平对比);kb_search 加 mode 参数(空=生产含rerank), gateway KbSearch 透传 mode - scripts/rageval.py:标注语料+查询 → 四模式 recall@k/MRR 对比表(可复用) - live 量化:纯语义改写让全文0.88/图谱0.75 漏召回,混合 1.00 兜回, 混合=各路上界的稳健组合 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -341,7 +341,15 @@ func (g *Gateway) kbSearch(ctx context.Context, call *contract.ToolCall) *contra
|
||||
if !g.rag.Ready() {
|
||||
return &contract.ToolResult{OK: true, Content: "[]"}
|
||||
}
|
||||
hits, err := g.rag.Search(ctx, kb, q, topK)
|
||||
// mode 空=生产混合检索(含 rerank);显式 vector/fulltext/graph/hybrid=评测用单路/纯融合(不 rerank)。
|
||||
mode, _ := call.Args["mode"].(string)
|
||||
var hits []rag.Hit
|
||||
var err error
|
||||
if mode == "" {
|
||||
hits, err = g.rag.Search(ctx, kb, q, topK)
|
||||
} else {
|
||||
hits = g.rag.SearchByMode(ctx, kb, q, topK, mode)
|
||||
}
|
||||
if err != nil {
|
||||
return &contract.ToolResult{OK: false, Error: "kb_search: " + err.Error()}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user