最近在搭一个本地知识库的Agent,用的Chroma+OpenAI的text-embedding-3-small。文档切了500字左右,top-k设5,但经常召回一些语义上完全不相关的内容,比如问“如何重置密码”却把“权限管理”的段落排到前面了。我试过调chunk大小和overlap,效果不明显。想问下各位老哥,这种问题一般是先换更强的Embedding模型(比如bge-m3或voyage),还是应该去调向量索引的相似度算法(比如从cosine换到IP)?另外,有没有必要上重排模型(reranker)?主要是我现在项目进度卡在这,不想一上来就重写整个pipeline,求点实操经验。