不写一行SQL!用WrenAI把自然语言问题变成可信的Text-to-SQL和看板
2026/9/10 23:00:35 网站建设 项目流程

不写一行SQL!用WrenAI把自然语言问题变成可信的Text-to-SQL和看板

【免费下载链接】WrenAIGenBI (Generative BI) for AI agents, an open-source, governed text-to-SQL through an open context layer that turns natural-language questions into trusted dashboards, charts, and SQL across 20+ data sources, such as BigQuery, Snowflake, PostgreSQL, ClickHouse, Amazon Redshift, Databricks and more.项目地址: https://gitcode.com/GitHub_Trending/wr/WrenAI

老板要数据,别再翻半天表了

周五下午五点,老板冒出一句:“上周GMV多少?集中在哪些城市?”你打开数据库,翻了几张表,字段看得头晕,还得手写SQL。更要命的是,status字段里的 4 到底是退款还是退货,你自己都没底。

你真正需要的是一套受治理的 Text-to-SQL 方案:WrenAI 是一款开源 GenBI(生成式 BI)引擎,通过语义层让 AI Agent 听懂数据的业务含义,把自然语言问题转成可信的 SQL 并执行,支持 PostgreSQL、BigQuery、Snowflake、DuckDB、ClickHouse 等 22+ 数据源。

关键词是“受治理”:不是让模型凭感觉编 SQL,而是先让它理解你的数据是什么意思,再动手。

WrenAI 能力全景:一层开放的上下文

从这张架构图看,整体分三层:顶层是各种 AI Agent(Claude Code、Cursor、ChatGPT、企业内部助手等)发起提问;中间是 WrenAI 开放上下文层,由 MDL、Memory、受控访问三块组成;底层是各家数据源。三种接入方式:CLI、Python SDK、WASM。

语义层 MDL:给表补上“业务含义”

裸 schema 只能告诉 Agent 有个叫status的字段,但告诉不了它status=4是退款。

WrenAI 用 MDL(Modeling Definition Language)把数据的业务含义写成可读的 YAML 文件:哪些表、字段怎么命名、表之间怎么关联、哪个指标定义是权威的。Agent 读的是这份“业务词典”而不是猜字段。细节可以看 MDL 概念说明。

对你来说,这意味着“收入”这个词在系统里永远只有一个定义,而且这个定义躺在文件里,能 review、能 diff。

记忆系统:问得越多,答得越熟

业务问题总会带着小变体重复出现:“上月营收最高的客户”和“本季 ARR 最高的账户”本质是同一个问题。

WrenAI 把已确认的“自然语言→SQL”对存在knowledge/sql/目录里,并构建本地向量索引。下次类似问题进来,Agent 先召回上次答对的例子,而不是从零推导。原理见 记忆系统文档。

受控执行:SQL 先过闸再落地

生成 SQL 在真正执行前,会先做 dry-plan 校验:翻译成目标库的原生方言并验证,再叠加行数上限与结构化错误。Agent 写错的地方会在闸口被拦住,而且看到的报错带着提示,方便自我修正。

从零到能用的最短路径

环境准备

安装 CLI 即可,DuckDB 数据源自带:

pip install wrenai # 安装CLI,内置DuckDB

想读源码可以 clone 仓库 https://gitcode.com/GitHub_Trending/wr/WrenAI 浏览,但日常使用不需要。

连接数据源

PostgreSQL、MySQL、BigQuery、Snowflake、ClickHouse、Trino、SQL Server、Databricks、Redshift、Oracle、Athena、Spark 都支持,安装时追加对应扩展即可,例如wrenai[postgres]

wren profile add my-db --ui用浏览器页面填连接信息,不用背参数;加完执行一条SELECT 1验证连通。完整流程参考 连接数据库指南。

数据建模

连接好后,让 Agent 读取表结构生成 MDL 脚手架,你只补业务含义:哪张表是权威口径、退款怎么处理、枚举值什么意思。这些都会落成可 review 的 YAML 与 markdown 文件。

开始自然语言查询

之后直接问问题就行:

wren ask "本季度销售额前10名客户是谁?" # 把问题交给Agent

Agent 会取 MDL 上下文、召回相似历史问题、写出 SQL 并执行。如果你在用 Claude Code 或 Cursor,直接说一句“用 Wren 帮我把 Postgres 搭起来”即可。

实战演示:一个问题,三句对话

假设你已连好仓库自带的示例数据集(结构见examples/v5-jaffle/)。

第一句:“上个月总营收多少?营收前三的城市是?”Agent 从 MDL 里知道营收定义在 orders 表、经 customers 关联城市,写出 SQL,dry-plan 校验通过后执行,你拿到的是带结构、可直接出图的结果表,而不只是一个数。

第二句:“按周拆分看趋势。”此时记忆系统在起作用——Agent 召回上一轮 SQL,只改时间粒度,第二问明显比第一问更快。

第三句:“把它做成可筛选的看板,给我一个链接。”Agent 构建浏览器端 GenBI 应用并部署到你自己的 Vercel 或 Cloudflare Pages,返回一个可分享的 URL。从提问到可分享看板,全程没人打开传统 BI 工具。

更关键的是:每个定义、每条 SQL、每段知识都落在仓库文件里,你可以随时 diff 出“为什么这次这么答”。

适用边界与常见问题

说句实话:WrenAI 适合已有数仓或分析库、希望 AI 给出稳定可信答案的场景。如果你只想对单个 CSV 画一张图,用不上它;如果你不想建任何语义模型、只想让模型裸猜 SQL,那它和裸 LLM 没区别。

不会写SQL也能用吗

能。全程自然语言交互,SQL 由 Agent 生成、WrenAI 校验。你要投入的是“数据的业务含义”,而这恰恰决定答案准不准。

支持哪些数据源?

22+ 种,覆盖 BigQuery、Snowflake、PostgreSQL、ClickHouse、Redshift、Databricks、DuckDB、MySQL、Trino、Oracle、Athena、Spark 等,引擎基于 Apache DataFusion 实现。

数据安全怎么保障?

开源版提供列级可见性、行数上限,dry-plan 保证 SQL 先校验后执行;行级、列级细粒度权限与用户组管控属于商业版能力(Cloud / 自托管企业版)。


WrenAI 把“业务含义”变成可 review 的文件,让可信的答案从可信的上下文里长出来。无论你是想摆脱取数排期的业务同学,还是在做 AI 数据 Agent 的开发者,都值得把自然语言查询体验跑一遍——让数据自己开口。

【免费下载链接】WrenAIGenBI (Generative BI) for AI agents, an open-source, governed text-to-SQL through an open context layer that turns natural-language questions into trusted dashboards, charts, and SQL across 20+ data sources, such as BigQuery, Snowflake, PostgreSQL, ClickHouse, Amazon Redshift, Databricks and more.项目地址: https://gitcode.com/GitHub_Trending/wr/WrenAI

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询