NVIDIA 开源 Auto Ontology:让数据 Agent 先确认业务口径,再回答查询

NVIDIA 开源的 Auto Ontology 试图在数据 Agent 与数据库之间建立一层可认证语义层:先整理术语、SQL 属性和表关系,再让 Agent 基于认证后的定义回答问题;当语义依据不足时,它会明确拒答。

掘金「一天一个开源项目」系列第254篇介绍了 NVIDIA 开源的 Auto Ontology。该项目不是简单让大模型把自然语言翻译成 SQL,而是在 Agent 与数据库之间加入一层可认证的语义层。它会先从企业元数据中整理业务术语、SQL 表达式和表间关系,再经过人工测试与认证,供 Agent 在回答时使用。当已有定义不足以支撑问题时,系统会明确说明无法回答,而不是继续生成看似可执行但口径存疑的查询。

数据问答的真正难点,不只是 SQL 语法

让 Agent 查询企业数据时,常见错误并不一定来自 SQL 语法,而来自业务语义。比如收入是否含税、活跃用户按什么口径统计、不同系统中的客户表是否指向同一实体,都会影响最终数字。模型可以根据表名和列名写出一条能够运行的 SQL,但如果口径理解错误,结果仍然不可用。

Auto Ontology 的做法是先建立「上下文层」。它会从元数据中发现术语、可复用的 SQL 属性和表与表之间的关系,再由人进行测试、修正和认证。项目 README 将能力概括为 Discover、Ground、Validate、Expose、Learn 五个动词,其中 Learn 指经过认证的修正和使用情况可以回流到本体。官方定位是从企业元数据构建 AI Agent 的上下文层,调和不同系统中的定义,并通过 MCP、CLI 和 API 对外提供。项目设计为与企业已有语义模型并存,而不是取代现有体系。GitHub 描述还提到,它希望在数据之上构建语义化、基于图的推理层,以改善上下文检索,并让 LLM 和 Agent 工作流更可解释。

本体里存什么:术语、SQL 属性与表关系

在 Auto Ontology 中,语义层主要包含三类内容。

  • 术语:业务概念及其描述、同义词和列映射。
  • SQL 属性:经过审核的表达式,例如毛利率如何计算。
  • 关系:表间连接关系,包括桥接表,可由键和数据推断。

整个流程分为三步。第一步是 Generate,系统读取数据源,对列做画像,逐表抽取术语;同时从查询历史推断关系,并建议 SQL 属性。生成结果会写入 PostgreSQL,向量数据存入 pgvector。第二步是 Certify,由人用真实问题测试,修正并认证名称、描述和 SQL 属性。第三步是 Answer,Agent 识别用户意图、抽取实体,再通过嵌入检索候选定义,随后生成 SQL,并校验过滤值与查询本身;如果失败,会尝试修复。最终返回的不只是答案,还包括 SQL 和相关步骤。

如果候选语义内容不足以支撑查询,Auto Ontology 会说明无法回答。对于预测类问题,素材提到可以转给第三方 KumoRFM,但需要自行配置。

部署与安全:示例可跑,接入前需先改默认配置

该项目需要 Docker(Compose v2)、uv,以及一个 NVIDIA API Key,Key 以 nvapi- 开头。官方使用 Wide World Importers 示例库演示:先克隆仓库并配置环境变量,包括 DEFAULT_MODELS_API_KEY、AUTH_SECRET、APP_URL、POSTGRES_PASSWORD、CONNECTION_STRINGS 以及管理员和 pgAdmin 密码;随后启动 PostgreSQL,导入示例数据,再构建并打开本地页面。用户可在 Settings 的 Semantic Compilation 中启用编译,并在 Chat 中提问。官方示例中,一次编译产生了 31 个术语。

部署层面有几个需要特别注意的边界。素材提到,3001 和 3002 端口应保持私有,因为摄取接口自身没有认证;Docker Compose 会把服务发布到宿主机,因此默认密码必须全部修改。仓库中另有 DEPLOYMENT.md,说明如何用 Helm 部署到 Kubernetes。项目还支持与 Apache Ossie 的 YAML 格式导入导出,便于与已有语义模型互通。

此外,GitHub 仓库描述中提到 deterministic query generation,但 README 并没有这样描述。按照素材,更准确的理解是:业务定义来自人工认证,具有确定性;SQL 生成仍由 LLM 完成,随后经过校验与修复。如果业务场景要求结果完全可复现,使用者需要自行验证。

对数据 Agent 的启发

Auto Ontology 的关注点不是让模型更快写出 SQL,而是把生成前的业务定义、生成后的校验步骤放到更靠前的位置。对于企业数据场景,这种路径比单纯追求自然语言转 SQL 更接近实际落地需求。

它也让 Agent 的边界更清楚:当语义依据不足时,系统应承认无法回答,而不是给出一条能运行但不可信的查询。这把问题从「模型能不能写 SQL」转回「业务定义是否已被确认」。

原创文章,作者:点点,如若转载,请注明出处:https://www.dian8dian.com/nvidia-kai-yuan-auto-ontology-rang-shu-ju-agent-xian-que

Like (0)
点点的头像点点
Previous 4小时前
Next 2025年9月13日 下午12:00

相关推荐