Auto Ontology:自动本体(1):给智能体装一层可信的语义上下文

举报
power233 发表于 2026/11/07 17:21:20 2026/11/07
【摘要】 项目概览——为企业数据构建语义推理层,让智能体先搞懂业务含义再查数

在企业级 AI 应用落地过程中,把大模型接上数据库、让智能体直接用自然语言查数,几乎是所有团队都会尝试的第一步。然而真正把这套流程推向生产环境时,开发者和数据团队往往会撞上一堵厚实的墙:智能体查数并不可靠。

为什么大模型写得出复杂的算法代码,却经常在企业的业务数据库面前"翻车"?原因其实很直观。企业内部的数据库表名、字段名往往充满了历史遗留的缩写与黑话;不同业务系统对同一个核心指标(比如利润率或"活跃客户")的计算口径经常不一致;多张表之间该如何正确关联、要不要经过某张桥接表,单凭字面意思去猜更是极易出错。如果直接让大模型对着原始的数据库结构盲写 SQL,轻则每次提问算出来的数字都不一样,重则悄无声息地拼错关联条件,给出一本正经的错误答案。

要解决这个痛点,缺的并不是更庞大的基础模型,而是在大模型与底层数据库之间补上一层可信的语义上下文层。2026 年 11 月 7 日登上 GitHub Trending 榜单、单日新增约 2 千 Star、总 Star 数已达约 9 千(9,151)的开源项目 NVIDIA/auto-ontology(项目名 Auto Ontology),正是冲着这个方向来的。它由 NVIDIA 维护,核心目标是:帮助大模型先"理解"企业的业务数据,再去生成 SQL,从而让智能体的数据问答变得准确、可解释、可审计。

一、为什么智能体查数并不可靠?

问题的根源在于,大模型与企业数据库之间存在一道巨大的语义鸿沟。一方面,大模型擅长的是通用知识与语言推理,它并不知道某家公司的"订单"到底指哪张表、"销售额"包不包含退货、"客户"是不是要先过滤掉内部测试账号;另一方面,数据库本身只记录结构,不记录业务含义——字段注释缺失、命名不规范、口径散落在各业务团队的文档与口头约定里,都是常态。

更麻烦的是,错误往往是静默发生的。大模型生成的 SQL 只要语法正确就能跑通,但它可能悄悄选错了表、接错了关联键、用错了聚合口径,最终返回一个看起来合理、实则错误的数字。在财务、运营、风控等对数字敏感的场景里,这种"自信的错误"比直接报错更危险。

因此,业界逐渐形成一个共识:要让智能体真正用好企业数据,不能只靠提示词技巧或更大的模型,而必须在模型与数据库之间,构建一层结构化、可治理的语义层。这正是 Auto Ontology 要解决的核心问题。

二、Auto Ontology 是什么?

Auto Ontology 是一个开源的数据智能体平台,专注于解决"大模型如何准确理解企业数据"这一难题。它的核心思想可以概括为一句话:先自动生成一份"本体"(Ontology),再让智能体基于这份本体去查询数据。

这里的"本体",并不是玄学概念,而是一份机器可读、人类可审的业务语义模型。它把数据库里的表、字段、关系,翻译成业务人员能看懂的概念——比如"客户"“订单”“产品”“销售额”——并明确定义它们之间的关联、业务口径和计算规则。智能体在回答问题时,不再直接面对冷冰冰的表结构,而是先查阅这份本体,弄清楚"用户说的到底是什么意思",再生成对应的 SQL。

项目的整体定位是"企业数据问答的语义基础设施":它既能作为独立应用使用,也能经 MCP、命令行与 API 接入已有的智能体框架。

三、系统由哪些部分组成?

从架构上看,Auto Ontology 由几个相互配合的组件组成:前端 Web 应用(端口 3000)、后端 FastAPI 服务(端口 3001)、摄取服务(端口 3002)、MCP 服务器(端口 3003),以及 Postgres 17 加向量扩展(端口 5432),连接凭证可选用 HashiCorp Vault 存放。

1. 前端 Web 应用(端口 3000)

基于 Next.js 16(搭配 React 19、TypeScript 与 Tailwind CSS 4)构建,提供直观的一站式操作界面,涵盖自然语言聊天、数据分析、数据目录浏览、本体建模分析以及系统设置等功能模块。用户可以在聊天框里直接提问,也可以在数据目录中查看表结构、在本体建模页面审阅和修正自动生成的语义模型。

2. 后端与摄取服务

后端基于 Python 3.12 以上的 FastAPI 框架开发(配合 LangChain),负责聊天、自然语言转 SQL、目录与本体接口;摄取服务同样基于 FastAPI,负责摄取表格数据并写入向量。语义目录与本体层就存在 Postgres 里,向量检索走 pgvector。

值得一提的是,项目采用了容器化部署方式,本地用 Docker Compose,Kubernetes 用 Helm Chart。推理默认走 NVIDIA NIM,也可以配自托管 NIM 或任意 OpenAI 兼容端点。

3. 安全提醒

3001 与 3002 端口应放在私有网络:后端信任前端转发的用户身份头,而摄取服务的接口(摄取、删除、重置、编译)本身没有独立鉴权,客户端应走 3000 端口的 Web 应用。

四、一条问题,是如何变成可信答案的?

当用户在聊天框输入一句自然语言问题(例如"上个月各地区的销售额是多少?")后,系统内部会经过一系列严谨的处理步骤。整体上分三个阶段:生成本体、人工认证、再由智能体据此回答。下面以一次问答为例,看看一条问题是如何变成可信答案的。

1. 自动构建本体:从数据库结构到业务语义

系统首先会自动扫描目标数据库,抽取表结构、画像列并采样值,写进数据目录;再逐表提炼术语、映射到列,并从键与数据中推断表间连接与桥接表,最后把术语、关系与 SQL 属性存入 Postgres,嵌入向量存 pgvector。示例中一次编译微软示例销售数据库 Wide World Importers,得到了 31 个术语。

2. 人工认证:让草稿变得可信

自动生成的本体只是草稿,需要人把它变成可信的定义:先在聊天里用真实问题测试,或经 MCP 的 check_answerable 与 ask_question 测试;再在界面或 API 里打磨术语、描述与 SQL 属性;确认无误后认证。认证过的定义会被智能体复用,同一指标每次都按同一种口径算。

3. 回答:检索、生成 SQL、校验执行

回答时,智能体先分类意图、抽取问题里提到的实体,再用嵌入搜索从本体中召回候选的术语、列与 SQL 属性——面对成百上千张表的企业数据库,这种"按需取用"既控制了提示词长度,也降低了模型"看错表、选错字段"的概率。拿到精选后的本体上下文,大模型就可以开始生成 SQL 了。值得注意的是,系统内部并不是只用一个模型包打天下,而是采用了多模型协作的架构:不同类型的模型分别承担了不同的角色。具体而言,系统采用了以下四个模型角色,各自由端点、API Key 与模型名三元组配置,未填的字段回落到默认配置:推理模型(主导聊天与自然语言转 SQL、构建本体、评判可答性)、非推理模型(跑较轻的步骤,如意图分类、实体抽取、候选筛选与 SQL 检查修复)、嵌入模型(把表、列、术语与 SQL 属性索引进 pgvector,并把每个问题匹配到它们)、重排模型(编译时为桥接表 SQL 属性排序候选表)。四个模型角色的分工,构成了系统可靠性的第一道防线。

生成 SQL 之后,系统还会对照数据库校验过滤值与查询,失败时修复 SQL,再执行。回答时还会先做可答性检查:如果本体覆盖不了问题,智能体会明确说答不了,并反问澄清,而不是硬编一个答案。比如示例数据库里没有广告数据,问广告投入回报率时,智能体会先报可答性覆盖度不足,再问用户要不要改问收入、或把广告数据接进来。

4. 结果呈现与可追溯性

查询结果返回后,答案会附带 SQL 与推导步骤,可以查看数据行、下载表格或看成图表,并有自然语言解释说明"这个数字是怎么算出来的"。

更重要的是,每一次问答都是可追溯的:用户可以查看完整的执行链路,包括系统引用了哪些本体概念、生成了怎样的 SQL、经历了哪些验证步骤。这种透明性,是企业级应用不可或缺的信任基础。

五、它和同类工具的区别在哪里?

市面上已有不少 Text-to-SQL 工具和数据智能体产品,Auto Ontology 与它们的差异,主要体现在三个方面:

1. 强调"本体先行",而非"提示词先行"

许多同类工具的做法,是把数据库表结构直接拼进提示词,让大模型"现学现卖"。Auto Ontology 则坚持先构建本体、再查询数据的路线。本体一旦建立,就可以在多次查询中复用,而且可以被业务专家审阅和修正,越用越准。

2. 治理与可审计性是"一等公民"

企业级场景最在意的不是"能不能跑出一个答案",而是"这个答案能不能被信任、被复核"。Auto Ontology 从设计之初就把可解释性与可追溯性放在核心位置:每一次查询都能回溯到本体概念与 SQL 语句,每个答案都附带出处。

3. 开源、本地化与 NVIDIA 生态

与许多闭源 SaaS 产品不同,Auto Ontology 完全开源,企业可以将其部署在自己的服务器或私有云上,数据不出内网。同时,它默认走 NVIDIA 的推理微服务(NIM),对已有 NVIDIA 基础设施的企业尤为友好。

六、为什么选择开源与本地部署?

对于金融、医疗、政务等对数据安全高度敏感的行业而言,把核心业务数据交给第三方云服务做语义解析,往往难以通过合规审查。开源与本地部署的模式,恰好解决了这一顾虑:企业可以把整套系统部署在内网环境中,数据库连接信息与查询内容都不离开自己的基础设施。

此外,开源还意味着可互操作:项目兼容 Apache Ossie 这一交换语义模型的开放标准,模型定义可以在设置里导入导出。需要注意的是,项目目前不接受外部 Pull Request,集成需求与缺陷反馈走 Issue。

七、谁适合用它?

从项目定位来看,以下几类团队最适合关注 Auto Ontology:

  • 正在建设数据智能体或"聊天式 BI"产品的团队,希望提升自然语言查询的准确率与可信度;
  • 数据团队规模较大、业务口径复杂,希望用一套语义层统一各业务系统对核心指标定义的中大型企业;
  • 对数据安全与合规有严格要求,需要本地部署、私有化运行的金融、医疗、政务等行业用户;
  • 希望基于 NVIDIA GPU 或 NIM 推理服务,搭建高性能数据问答系统的开发者与架构师。

当然,项目仍在持续演进。企业在引入之前,仍需结合自身的数据规模与业务复杂度,进行充分的概念验证(PoC)。

八、小结

Auto Ontology 的出现,标志着数据智能体正在从"拼提示词、拼模型"的蛮力阶段,走向"拼语义、拼治理"的精细化阶段。它没有发明全新的大模型技术,而是把工程实践的重点,放在了大模型与企业数据之间的那层"翻译"与"校验"上。

这种思路并不花哨,却切中了企业级 AI 落地的真正要害:智能体要想在生产环境中被信任,靠的不是一次惊艳的演示,而是每一次查询都可解释、可验证、可追溯。对于正在构建企业级数据智能体的团队而言,与其在提示词工程里无休止地修补 SQL 语法错误,不如像 Auto Ontology 倡导的那样,先在模型与数据库之间,扎扎实实地装上一层可信的语义上下文。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。