Closed SchweitzerGAO closed 1 month ago
检索到了却答错了,才会网络搜索。 有段这个:
# unrelated to knowledge base or bad input, exit
if sess.code in exit_states:
break
if sess.code == ErrorCode.SUCCESS:
check.process(sess)
检索回答,state 会给 SUCCESS, 然后检查是否真的 SUCCESS,不是就进入下个阶段
“检索不到文档,再进行搜索”
本地检索阈值卡得很低(topk 取 100, rerank 阈值也很低), 如果检索不到,大概率是个无关的话题。
无关的话题不应该再处理了。
检索低阈值给 UNRELATED 是表示拒答, 和 is_reject
有一点差异,在 chunk 切分上。
"检索到了文档就不进行搜索。"
text2vec 模型把 text 转 float[] 实际损失了信息,必定不会 100% 检索成功。
所以需要设计一个时机,用 web search 和 sg search 来补充,提高回答成功率。
这样啊,感谢大佬解答,我再看看源码去
detail | 详细描述 | 詳細な説明
我在阅读源码时发现,如果本地知识库检索不到匹配文档,则会直接返回UNRELATED,不会进行后续的网络搜索,相反如果检索到了匹配文档则会进行网络搜索,为什么要这样设计呢?我个人认为触发网络搜索的条件应该是:检索不到文档,再进行搜索,检索到了文档就不进行搜索。