NVIDIA 开源 Auto Ontology 构建智能体数据语义层

原标题:Nvidia – open-source auto-ontology
78AI 研判分

NVIDIA 发布开源库 Auto Ontology,旨在为企业智能体构建统一的上下文语义层。该工具通过 MCP、CLI 和 API 暴露经过验证的业务定义与数据血缘,解决智能体在查询数据库时因语义歧义导致的准确性问题,支持从元数据自动生成企业本体并持续优化。

报道正文

本文目录5 个章节

Auto Ontology

智能体能够检索文档并查询数据库,但可靠性是制约智能体分析能力的关键瓶颈:如果数据结果错误,那么更快得出的营收指标毫无价值。智能体需要一个上下文层,用于告知它们数据位于何处、其含义是什么、是否应使用、如何使用、来源为何以及相似项有哪些。NVIDIA Auto Ontology 是一个开源库,它基于企业元数据构建该上下文层,协调不同系统间的定义差异,并通过 MCP、CLI 和 API 向任何智能体框架(agent harness)暴露这些信息。它与现有客户已拥有的语义模型形成互补。

它使开发者能够:

  • 发现:从元数据生成企业本体;连接现有的本体和语义模型;构建适用于 AI 的知识图谱。
  • 落地:为智能体提供关于指标、实体和关系的可信业务含义;协调不同系统间不一致的定义。
  • 验证:根据认证定义和数据血缘检查生成的查询;在每次回答中返回数据来源信息。
  • 暴露:通过 MCP、CLI 和 API 向任何智能体框架提供上下文服务。
  • 学习:将认证的修正和使用反馈融入本体,使共享上下文随着每一次提问而不断优化。

基准测试

若要运行诸如 BIRD 这样的文本转 SQL 基准测试,请参考 ontology SQL evaluation repository。

许可与贡献。 Auto Ontology 依据 Apache License 2.0 分发。本项目捆绑、链接或以其他方式使用的第三方开源组件列于 THIRD_PARTY_NOTICES.md。本项目目前不接受外部贡献。

<p> <img src="./docs/assets/arch.png" alt="Auto Ontology Architecture" width="800"> </p>

核心特性

  • 结构化数据的自然语言查询 — 问题被转换为 SQL 并在连接的数据库中执行,由 NVIDIA NIM 提供支持。
  • 关系型数据源之上的语义目录 / 本体层,存储在 Postgres 中,与其所描述的目录并存。
  • 身份验证与 RBAC — 使用 Better Auth。
  • Web UI,支持聊天、分析、数据目录、分析和设置功能。
  • 灵活的部署方式 — 适用于 Kubernetes 的 Helm chart 或用于本地堆栈的 Docker Compose。

软件组件

组件技术栈角色默认端口
前端Next.js 16 (React 19, TypeScript, Tailwind CSS 4), Better Auth, PrismaWeb UI、身份验证、API 网关3000
后端FastAPI (Python 3.12+), LangChain聊天 / NL-to-SQL、目录、数据源 API3001
数据摄取工作器FastAPI (Python 3.12+)摄取表格数据并写入嵌入向量3002
Postgres + pgvector关系型数据库应用元数据、目录和本体、向量存储5432
HashiCorp Vault可选安全存储连接凭证—

NVIDIA NIM

Auto Ontology 使用 NVIDIA NIM 端点进行推理——既可以是托管的 NVIDIA API 目录 (integrate.api.nvidia.com),也可以是自托管的 NIM。.env.example 中的默认配置如下:

  • LLM: nvidia/nemotron-3-nano-30b-a3b
  • Embeddings: nvidia/nemotron-3-embed-1b
  • Reranking: nvidia/llama-nemotron-rerank-vl-1b-v2

端点和模型通过 DEFAULT_MODELS_ENDPOINT、DEFAULT_MODELS_MODEL、EMBED_ENDPOINT 和 EMBED_MODEL 环境变量进行配置,并且需要设置 DEFAULT_MODELS_API_KEY。

模型三元组

每个模型角色由一组三元组环境变量配置——<PREFIX>_ENDPOINT(URL)、<PREFIX>_API_KEY 和 <PREFIX>_MODEL:

前缀角色
DEFAULT_MODELS共享默认值;以下所有字段均回退到此配置。
REASONING主要聊天 / NL-to-SQL 模型。
NON_REASONING用于实体提取的轻量级模型。
EMBED文本嵌入模型(在摄取和查询之间必须保持一致)。
RERANK检索流程中使用的重排序器。

你可以设置完整的三元组、仅设置其中的部分字段,或者完全不设置——任何未设置的字段都会回退到对应的 DEFAULT_MODELS_<FIELD>。因此,最简单的配置方式是填写 DEFAULT_MODELS_*,并仅在存在差异时覆盖特定于三元组的字段(例如 EMBED_MODEL、NON_REASONING_MODEL)。为了保持向后兼容性,*_API_KEY 也会回退到旧版的 NVIDIA_API_KEY。

(注:更多技术实现细节与完整 API 文档请查阅原项目 README)