Auto Ontology:让代理用可追溯语义查询企业数据
给企业数据代理加上Postgres语义层,生成可核验SQL并返回来源。
GitHub NVIDIA/auto-ontology 更新 2026-11-05 分支 main 星标 5.0K 分叉 398
Python TypeScript Postgres NVIDIA NIM MCP 自然语言转SQL 企业知识图谱 Docker Compose

🧭 决策指南

适合,如果你

  • 你要让LLM代理查询关系数据库,并需要SQL和Steps一并返回
    README 的 Quickstart 第5步展示了自然语言问题、生成SQL和执行Steps。
  • 你已有企业语义模型,想连接它们并生成AI-ready knowledge graphs
    README 的 Discover 功能支持连接已有 ontologies and semantic models,并构建 AI-ready knowledge graphs。
  • 你的代理接入方式是MCP、CLI或API,并需要认证和RBAC
    README 正文说明通过 MCP、CLI、API 暴露上下文,Key Features 列出 Better Auth 认证与RBAC。

不适合,如果你

  • 你的数据包含广告支出,而当前连接源只有Wide World Importers
    Quickstart 第6步明确说明Wide World Importers没有 advertising data,ad spend无法解析。
  • 你需要依赖外部贡献或稳定版本发布来扩展项目
    Licensing & contributions章节写明项目当前不接受external contributions,项目元数据显示版本发布数为0。
  • 你的数据治理要求禁止将连接表上传到托管预测服务
    Predictions章节说明KumoRFM会上传connected tables,并由KUMO_MAX_TABLES限制数量。

前置条件

  • Docker with Compose v2、uv,以及来自 build.nvidia.com 的 NVIDIA API key(README Quickstart)
  • 需要配置 DEFAULT_MODELS_API_KEY、AUTH_SECRET、APP_URL、POSTGRES_PASSWORD 和 CONNECTION_STRINGS
  • Quickstart 使用 Postgres、pgAdmin、Web app,并加载 Wide World Importers 样例数据库
  • Embedding 模型必须在 ingest 和 query 间匹配;角色配置使用 _ENDPOINT、_API_KEY、_MODEL 三元组

第一步命令(README 原文)

git clone https://github.com/NVIDIA/auto-ontology.git && cd auto-ontology

要注意

  • 启动前必须替换.env中的默认密码,否则Compose会暴露默认凭据
    Quickstart第1步要求替换每个默认密码,包括POSTGRES_PASSWORD、AUTO_ONTOLOGY_ADMIN_PASSWORD和PGADMIN_PASSWORD。
  • 首次使用需在Settings → Semantic Compilation中手动开启编译
    Quickstart第4步要求进入Settings → Semantic Compilation并打开该功能。
  • 重启后Web UI缺少左侧导航可能是localhost:3000旧会话Cookie
    Quickstart故障说明要求清除localhost:3000的站点数据并重新登录。
  • KumoRFM的KUMO_MAX_ROWS_PER_TABLE默认不限制行数
    Predictions章节写明KUMO_MAX_ROWS_PER_TABLE在未设置时为unlimited。

材料未说明

  • README未提供支持的Postgres版本、连接器完整清单或非Wide World Importers数据源限制。
  • README未列出NVIDIA NIM支持的具体模型名称、Endpoint要求或成本信息。
  • README未说明生产环境所需CPU、内存、GPU和并发规模。
  • README未给出MCP、REST API和Web UI的完整权限模型与接口细节。
  • README未说明0个版本发布是否代表API不稳定,也未提供兼容性承诺。

💡 深度解析

6
适合 我需要支持 revenue 查询,但当 Wide World Importers 没有 advertising data 时,Agent 必须明确拒绝 ROAS;Auto Ontology 是否能满足这个可回答性约束?
适合读者: 负责业务分析 Copilot 的开发者,必须让系统在数据源没有广告支出时拒绝计算 ROAS,而不是生成看似合理的 SQL

适合,因为 README 直接用 Wide World Importers 演示了“先判断能否回答,再决定是否查询”的行为。

  • 示例中的 revenue 查询会解析 revenue、product 和 state,并沿着 ontology 中的关系生成所需连接。
  • 对“return on ad spend”请求,README 明确指出 Wide World Importers 没有 advertising data,因此没有可解析的 ad spend 术语。
  • 通过 MCP 接入的 Agent 会先调用 check_answerable,随后说明只能找到 revenue,不能计算 ROAS,并询问是否改查 June 2015 revenue 或连接其他数据源。
  • 这种行为符合需要可解释边界的 Copilot,而不是把任意自然语言都强行转换成 SQL。

但这项能力依赖当前 ontology 和数据覆盖范围。README 没有说明覆盖率阈值、模糊术语策略,以及当多个数据源分别拥有部分指标时如何合并判断。

  • README「Quickstart」:Wide World Importers has no advertising data
  • README「Quickstart」:check_answerable -> coverage 0.5; no term covers “ad spend”
  • README「Quickstart」:I can find revenue ... but this data has no advertising spend, so I can't compute return on ad spend
  • README「Introduction」:whether to use it and where it came from
材料未说明:README 未说明 coverage 0.5 等覆盖率数值如何计算,以及阈值是否可配置。;README 未说明多数据源之间部分覆盖、同名指标冲突和时间范围不一致时的判断规则。
适合 我现在有 PostgreSQL 关系型数据和 Wide World Importers 样例库,团队希望用 Docker Compose 在本地验证自然语言查数;Auto Ontology 是否适合这条接入路径?
适合读者: 维护关系型数据库和企业数据平台、希望把 Wide World Importers 这类结构化数据接入 Agent 的数据工程师

适合,因为 README 已经给出了针对 PostgreSQL、Wide World Importers 和 Docker Compose 的完整 Quickstart,但它不是“只连数据库就完成”的工具。

  • 项目会从企业元数据生成 ontology,并把语义目录存储在 Postgres 中;查询会把自然语言转换为 SQL 并执行。
  • 启动后需要加载样例数据库,并在 Web UI 的 Settings → Semantic Compilation 中开启语义编译;编译完成前不应把系统视为可用。
  • 返回结果包含 SQL 和推理步骤,例如 revenue、product、state 的术语解析及实际 join 路径,便于核对源数据。
  • Docker Compose 会发布 Postgres、pgAdmin 和 Web app,README 要求替换默认密码并配置 NVIDIA API key。

因此,这条路径适合本地验证;若目标是直接接入复杂生产数据,还需要确认元数据、指标定义和数据权限是否完整。

  • README「Quickstart」:This runs Auto-Ontology with Docker Compose against Wide World Importers
  • README「Key Features」:Natural-language querying of structured data;Semantic catalog / ontology layer over relational sources
  • README「Quickstart」:Go to Settings → Semantic Compilation
  • README「Quickstart」:The answer comes back with its SQL and the steps that produced it
git clone https://github.com/NVIDIA/auto-ontology.git && cd auto-ontology
cp .env.example .env
材料未说明:README 未说明生产环境下跨多个关系型数据库的联邦查询边界。;README 未说明高并发、实时数据更新和大规模元数据摄取的性能上限。
适合 我正在做一个基于 MCP 的企业 Agent,推理使用 NVIDIA NIM,同时希望保留 SQL、解析步骤和来源输出;Auto Ontology 是否比直接让 LLM 生成 SQL 更合适?
适合读者: 构建企业 Copilot 或 MCP Agent 的 AI 工程师,需要通过 NVIDIA NIM、MCP、CLI 或 API 接入结构化查询能力

适合,因为它把语义理解、查询生成、验证和 provenance 放进同一条 Agent 上下文流程,而不是只返回一段 SQL。

  • README 明确支持通过 MCP、CLI 和 API 向任意 agent harness 暴露上下文,因此可以接入已有 MCP Agent,而不必改用项目自带 Web UI。
  • Natural-language querying 由 NVIDIA NIM 驱动,系统会将问题转为 SQL 并连接数据库执行。
  • 示例结果同时返回 Answer、SQL、Steps,并展示了解析出的业务术语、join 路径和过滤值验证。
  • 对“广告支出”这类源数据没有覆盖的请求,MCP Agent 会先执行 check_answerable,并明确拒绝计算 ROAS,而不是编造查询。

不过,项目是否满足你的延迟、调用成本、模型托管和权限隔离要求,README 没有给出指标,不能仅凭可解释输出推断生产级 SLA。

  • README「Introduction」:exposes it to any agent harness through MCP, CLI, and API
  • README「Key Features」:Natural-language querying ... powered by NVIDIA NIM
  • README「Quickstart」:The answer comes back with its SQL and the steps that produced it
  • README「Quickstart」:check_answerable -> coverage 0.5; no term covers “ad spend”
docker compose up -d --build
材料未说明:README 未提供 MCP 工具调用的吞吐、延迟、重试和并发指标。;README 未说明 Agent 侧如何映射现有用户身份到数据库行级或列级权限。
适合 我已经维护了企业语义模型、认证指标和数据血缘,希望继续保留这些资产,只让 Agent 更准确地理解 revenue 等指标;Auto Ontology 是否适合?
适合读者: 负责指标体系、数据目录和数据血缘认证的数据治理人员,已有语义模型但不想替换现有资产

适合,因为项目明确定位为补充客户已有的 semantic models,而不是要求治理团队重建全部语义资产。

  • README 的 Discover 能力支持连接 existing ontologies and semantic models,并从企业元数据生成 AI-ready knowledge graphs。
  • Ground 能力把 metrics、entities 和 relationships 的业务含义提供给 Agent,用于协调不同系统中的定义。
  • Validate 会根据 certified definitions and lineage 检查生成查询,并在答案中返回 provenance;这比仅凭字段名生成 SQL 更贴合治理流程。
  • Learn 允许把 certified corrections and usage 反馈回 ontology,形成治理资产与运行时查询之间的闭环。

但它的收益取决于现有语义资产能否被连接、认证和维护。README 没有说明所有外部语义模型格式是否都能直接导入,也没有承诺自动解决指标口径冲突。

  • README「Introduction」:It complements the semantic models customers already own
  • README「Discover」:connect existing ontologies and semantic models
  • README「Ground」:give agents trusted business meaning for metrics, entities, and relationships
  • README「Validate / Learn」:check generated queries against certified definitions and lineage;fold certified corrections and usage back into the ontology
材料未说明:README 未列出可直接导入的外部 ontology、semantic model 或数据目录格式。;README 未说明认证流程的审批角色、变更审计和冲突处理机制。
适合 我正在构建面向业务分析人员的 Web 应用,结果不能只有一个数字,必须展示 SQL、解析步骤和来源;Auto Ontology 是否适合这种可审计的查询界面?
适合读者: 需要把自然语言查询结果提交给审计或业务复核的分析应用开发者,要求每个答案带 SQL、步骤、来源和认证定义

适合,因为项目的示例输出和功能设计都把 SQL、步骤、来源与验证结果作为答案的一部分,而不是隐藏在后台。

  • Web UI 覆盖 chat、analysis、data catalog、analytics 和 settings,适合从聊天问题进入业务分析流程。
  • 示例答案展示了 SQL、Resolved terms、Joined 路径以及“Validated the filter values against the data, then executed”。
  • README 的 Validate 能力会根据 certified definitions and lineage 检查生成查询,并返回 provenance with every answer。
  • Authentication & RBAC 可用于控制 Web 应用访问,但它不等于数据库层面的细粒度数据权限。

因此,它适合作为可复核的查询界面或上下文基础设施;如果审计要求包括不可篡改日志、完整用户身份链路或法规级留存周期,README 没有提供足够依据。

  • README「Key Features」:Web UI for chat, analysis, data catalog, analytics, and settings
  • README「Quickstart」:The answer comes back with its SQL and the steps that produced it
  • README「Quickstart」示例:Resolved terms;Joined;Validated the filter values against the data, then executed
  • README「Validate」:return provenance with every answer
docker compose up -d --wait postgres
材料未说明:README 未说明 provenance、SQL 和用户操作日志是否支持不可篡改存储。;README 未说明审计记录的保留期限、导出格式和与企业 SIEM 的集成方式。;README 未说明 Web UI 是否支持业务用户自定义复核或审批流程。
视情况 我不能把企业数据服务长期跑在本地 Docker Compose 上,必须部署到 Kubernetes,并要求 Web UI 具备认证和 RBAC;Auto Ontology 是否适合?
适合读者: 维护 Kubernetes 平台、需要把企业语义查询服务部署到受控集群并使用认证与 RBAC 的平台工程师

视情况,部署形态和基础认证能力匹配,但 README 没有证明它已经覆盖企业 Kubernetes 生产运行所需的全部安全与运维边界。

  • Key Features 明确提供 Kubernetes Helm chart,也提供 Docker Compose,因此平台团队有从本地栈迁移到集群的部署入口。
  • 项目提供 Authentication & RBAC,使用 Better Auth;这满足应用层登录和角色控制的基本要求。
  • Quickstart 要求设置 AUTH_SECRET、管理员密码、Postgres 密码和 NVIDIA API key,并明确要求替换默认密码,说明凭据管理是部署前置条件。
  • 项目数据中的 release_count 为 0、latest_release 为空;升级承诺、版本兼容策略和生产变更节奏无法从公开信息确认。

如果你的要求还包括数据库行列级安全、跨租户隔离、HTTPS、密钥轮换或高可用,不能仅依据 Helm 和 RBAC 宣称已经满足。

  • README「Key Features」:Flexible deployment — Helm chart for Kubernetes or Docker Compose for a local stack
  • README「Key Features」:Authentication & RBAC — using Better Auth
  • README「Quickstart」:replace each default password before you start it
  • 项目核心数据:release_count 为 0;latest_release 为空
材料未说明:README 未说明 Helm chart 的高可用、备份、升级回滚和监控配置。;README 未说明 Better Auth RBAC 是否与数据库行级、列级或多租户权限联动。;README 未说明生产环境的网络隔离、TLS 和密钥轮换方案。

✨ 核心亮点

  • MCP、CLI、API同时暴露语义上下文
  • Postgres存储关系源语义目录
  • NVIDIA NIM驱动自然语言转SQL
  • Apache 2.0许可但暂不接受外部贡献

🔧 工程化

  • 从企业元数据生成本体并连接已有语义模型
  • 用认证定义和数据血缘校验生成SQL并返回来源
  • Docker Compose或Helm部署含Web UI与RBAC

⚠️ 风险

  • Quickstart要求Docker Compose v2、uv和NVIDIA API key
  • 项目当前不接受外部贡献,且版本发布数为0
  • KumoRFM会上传连接表,默认最多20张表
  • Embedding模型必须在摄取和查询间保持一致

👥 适合谁?

  • 需要给LLM代理接入企业Postgres语义层的Python团队
  • 使用MCP、CLI或API构建数据代理工作流的开发者
  • 希望用Docker Compose验证Wide World Importers的团队