NVIDIA Auto-Ontology

在数据之上自动构建语义图谱,把自然语言问题变成确定性查询——用显式结构换可靠性


项目速览

项目 内容
仓库 NVIDIA/auto-ontology
语言 Python
接入形态 MCP Server / REST API / Agent Skills
默认模型 NVIDIA API Catalog(Nemotron 系列)
环境管理 uv
定位 图谱 + LLM 的推理层,而非又一个向量检索框

它想解决什么问题

LLM 与 Agent 落到真实业务里,两个坎绕不过去:幻觉与不可解释。向量检索缓解了一部分——把相关段落塞进上下文——但它本质是”相似度匹配”:你无法预知某次检索为何命中,也无法保证同一个问题两次得到同一批依据。

Auto-Ontology 的解法换个方向:在数据之上建一层语义化、基于图谱的推理层,把实体与关系显式建模,让自然语言问题转化为确定性的查询。检索范围由结构决定,而不是由向量距离决定。

核心机制拆解

1. 语义图谱推理。 自动在数据上构建本体(ontology)图谱,实体与关系被显式建模。模型不再”读一堆段落然后自由发挥”,而是在一张有边界的图上游走——推理过程因此可解释。

2. 确定性查询生成。 将用户问题稳定地映射为结构化查询。这一步是它和纯向量 RAG 最大的分歧:同样的输入,得到同样的查询、同样的结果集,可复现、可回归测试。

3. 更好的 RAG 上下文检索。 内置 embedding、retriever、rerank 工具。定位很务实——不是取代向量检索,而是给它加上图谱这层约束,把”召回一堆相关段落”升级成”召回结构上真正相关的那一支”。

4. 三种接入面。 MCP Server、REST API、Agent Skills 三条路径,方便嵌进现有 LLM / Agent 工作流:编辑器里的 Agent 走 MCP,后端服务走 REST,任务型 Agent 走 Skills。

5. 连接器与模型角色分离。 支持多种数据源连接器,并把模型按角色区分——reasoning / non-reasoning / embed / rerank 各司其职,默认对接 NVIDIA API Catalog 的 Nemotron 系列,也可以换成自己的模型。

安装与上手

1
2
3
4
git clone https://github.com/NVIDIA/auto-ontology.git
cd auto-ontology
uv sync
cp .env.example .env # 设置 AUTO_ONTOLOGY_* 环境变量

启动后即可通过 MCP Server、REST API 或 Skills 接入 Agent。仓库内置「Wide World Importers」示例(见 docs/),另有 auto-ontology-eval 评测仓库用于基准测试——先跑示例再改自己的数据源,是最省时间的路径。

点评

亮点是它对”可靠性”的工程化取舍:不追求黑盒智能,而是用显式结构与确定性查询去换可追溯。在一个满是”再叠一个 reranker 试试”的赛道里,这种”把不确定性挪出关键路径”的思路值得借鉴。NVIDIA 把模型角色拆开、默认绑定自家 Catalog 但保留替换口,商业上也算得体。

局限也要看清:本体构建的质量取决于数据本身的结构化程度——文档、PDF、散乱表格这类非结构化数据,图谱建出来可能又浅又碎;”确定性”是有前提的,自然语言到查询的映射仍靠模型,映射错了结果依然错,只是错得更可定位;绑定 NVIDIA 生态(API Catalog、Nemotron)时体验最顺,换模型需要自己调;作为一个新项目,文档与示例仍在早期,生产使用要做好读源码的准备。

适合人群:要求答案可追溯、可解释的企业知识库团队;想把”数据库之上的自然语言查询”做成确定性接口的工程师;以及在 Agent 工作流里希望用图谱约束 LLM 推理边界的架构师。

如果你已经有一套向量 RAG,跑得也挺好,那它的价值不在”替换”,而在给检索加一道结构上的闸门。