RAG踩坑:ChromaDB返回距离4697,我的知识库白建了?
2026/6/16 11:45:52 网站建设 项目流程

距离是什么?

你问一个问题,系统去知识库里找答案,算一个“距离值”。距离越小,越相关;距离越大,越不相关。正常范围:0-0.5非常相关,0.5-1.0比较相关,1.0-1.5勉强相关,1.5以上不相关。我的日志里,距离显示4697。这相当于你在北京,答案在上海。不是不相关,是根本不搭边。

为什么会出现4697?

向量维度不一致——入库时的向量维度和查询时用的不一样,算出来的距离就离谱。向量没归一化——ChromaDB默认用欧氏距离,没做归一化,数值就会很大。知识库内容太短——每条知识只有几个字,向量稀疏,算出来就不准。

怎么解决?

我把阈值从0.5改到1.5。正常相关文档距离0.8,过了阈值就能回来。不相关的4697还是过不了。这是快速修复,一分钟搞定。

更科学的方法是把欧氏距离转成相似度。相似度=1/(1+距离)。距离0.8变成相似度0.56,距离4697变成0.0002。然后设个相似度阈值0.3,高于0.3的才要。这样不管距离多大,都能归一化到0-1之间,阈值好设,逻辑也清楚。

现在知识库能正常返回结果了。阈值从0.5改到1.5,相似度判断加上了,欧氏距离不再直接暴露出来。你搜“泵头漏液”,能回来“密封圈老化”那段,距离0.8,相似度0.56,通过。搜“今天天气怎么样”,回来一段不相干的,距离3.0,相似度0.25,过滤掉。RAG检索不是丢给向量库就完事了,阈值要调、距离要看、相似度要算。这些不调好,知识库就是摆设。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询