开源 · MIT · Python

本地知识检索,
不必先建向量库。

Jev RAG 是一个开源、本地优先的知识库检索应用。默认路径使用 SQLite FTS5/BM25 做召回,Jev 对候选证据重排,MiniMax 根据证据输出带文件引用的回答。Embedding 和向量数据库都不是启动前提。

一句话回答

Jev RAG 是什么?

它是一套可以在本地文件夹上运行的完整检索与问答代码。第一阶段从本地索引里找候选文段,第二阶段让 Jev 判断哪些证据真正相关,最后由回答模型生成带编号来源的答案。网页界面会展示检索、重排、首 token 和总耗时。

准确边界:它是“本地优先”,不是“完全离线”。索引和 BM25 检索在本地完成;候选文段会发送给 Jev,最终证据会发送给 MiniMax。混合模式还会调用远程 embedding 服务;Line Search 会把每个索引文段的受限长度表示分窗口发送给 Jev。

七种检索路径

先用最简单的,再按需要增加语义召回。

模式流程适合的问题
默认BM25 → Jev → MiniMax术语、编号、名称与原文有明显重合
Agentic 关键词模型生成多组检索词 → 多路 BM25/RRF → Jev别名、同义表达、需要二轮搜索的问题;不建 embedding 索引
可选混合BM25 + embedding/RRF → Jev对语义改写召回要求更高,能够接受额外成本和数据边界
多轮 Agentic Hybrid两轮搜索词 → 多路 BM25 + embedding/RRF → Jev + 原召回先验追求更广候选召回,能够接受规划延迟
知识分类树两层语料树路由 → Hybrid Top 50 + 补充候选 → Jev需要更广的候选召回,可接受 embedding 与更多 Jev 调用
统一 Passage GateBM25 + embedding/RRF → Jev 四问路由实验相关性、证据、事实矛盾与提示注入筛查
两级 Line Search并行窗口 Choice → 全局 Choice不用 BM25 或 embedding,直接测试 Jev 全库检索的精度上限;成本最高

文档分块

可以不分块,但不是所有文件都应该不分。

短而聚焦的文件可以整篇建立一条检索记录。大文件通常应该按标题和段落切成较小的证据单元,否则 BM25 得分会被无关内容稀释,Jev 要判断的上下文过长,最终引用也不够精确。项目支持 auto、none 和 paragraph 三种模式。

公开测评

完整 BEIR NFCorpus 测试集。

项目使用 3,633 篇文档和 323 个测试问题,所有方案共享相同语料、query、qrels 与指标实现。

检索流程nDCG@10MRR@10Recall@10
BM25 top 300.3056540.5126970.147309
BM25 top 30 + Jev0.3532350.5858170.158667
两级 Jev Line Search0.3662800.6576600.169397
Hybrid top 50 + 统一 Passage Gate0.3762980.6180430.166977
Agentic lexical top 50 + Jev0.4309690.6440410.204138
Hybrid top 50 + Jev0.4443270.6545830.214907
Agentic Hybrid + Jev/原召回排名融合0.4507500.6526060.220885

不要过度解读:这些是项目自行运行、可以复现的结果,不是 MTEB 官方提交。主表在 0.44 区间只保留一个代表性方案,以及当前最高分 0.450750;相近分数和负结果仍在完整报告中披露。

查看完整配置、费用、限制和复现命令 →

适合谁

什么时候值得试 Jev RAG?

  • 你要在本地文件夹上快速建立一个知识检索原型;
  • 你想用 BM25 召回,再用 Jev 做相关性重排;
  • 你想比较纯关键词、Agentic、混合检索与 Jev 全库 Line Search;
  • 你不想先部署向量数据库,又希望保留可选的语义召回;
  • 你需要可检查的检索阶段、文件引用和端到端耗时。

当前状态为 alpha。它不是托管式多用户服务,也不保证回答一定正确。请先用自己的文档和代表性问题进行测评。

进一步阅读

从代码和原始结果核实。

中文 README · 架构 · Agentic 关键词检索 · 机器可读项目说明

最后核对:2026-09-27。