Uber 如何使用文本到 SQL 每月节省 140,000 小时,以及你如何利用同样的力量

了解 Uber 的文本到 SQL 技术如何简化数据查询,并学习如何将这种效率应用于你的业务运营。

Howard Chi
Wren AI 联合创始人
更新于
2025 年 1 月 3 日
2025 年 1 月 3 日
12
分钟阅读
发布于
2025 年 1 月 3 日

在数据驱动决策至关重要的世界里,企业正争相寻找从海量数据集中提取可操作洞察的最有效方法。作为实时物流和运输领域的全球领导者,Uber 最近分享了其内部文本到 SQL 平台——QueryGPT(如果你还没看过这篇文章,请在此处查看)——正在彻底改变其团队与数据交互的方式。通过让员工能够简单地使用自然语言提问并获得相应的 SQL 查询,Uber 将查询编写时间缩短了 70%。考虑到他们每月运行大约 120 万次查询,这意味着每月惊人地节省了 140,000 小时。

QueryGPT 的投资回报率,图片来源:Uber:QueryGPT——使用生成式 AI 将自然语言转化为 SQL 文章

然而,这种显著的效率并非只适用于拥有庞大工程资源的科技巨头。随着像Wren AI 这样的开源解决方案的出现,文本到 SQL 的优势可以得到普及。Wren AI Cloud 旨在赋予各种规模的企业利用生成式 AI 支持的自然语言查询来无缝访问其数据的能力。在本文中,我们将从技术角度剖析 Uber 的 QueryGPT,并重点介绍 Wren AI Cloud 如何复制(在某些情况下简化)这些复杂功能。目标是帮助你了解如何在自己的业务中实现文本到 SQL——无论你的规模如何。

理解 Uber 的文本到 SQL 技术方法

Uber 的数据平台是一个庞然大物:它每月处理数万亿行、PB 级数据和数百万次查询。传统的 SQL 编写既耗时又要求用户具备强大的查询构建技能、理解底层数据模型,并且知道在哪里找到正确的表和列。QueryGPT 通过使用大型语言模型 (LLM) 并巧妙地集成到 Uber 现有数据生态系统中,消除了这些障碍。

QueryGPT 当前设计(图片来源:QueryGPT

Uber 设计 QueryGPT 的关键技术组件,在 QueryGPT 文章 中分享

1. 工作区 (Workspaces)

工作区 (Workspaces) 是与特定业务领域(例如出行 (Mobility)广告 (Ads)核心服务 (Core Services) 等)对齐的 SQL 样本和表模式的精选集合。通过创建面向域的相关表和查询模板集群,QueryGPT 缩小了可能的数据源范围,这显著提高了模型生成 SQL 时的准确性。

工作原理:当用户与 QueryGPT 交互时,系统首先会识别哪些业务领域(例如,针对行程和司机的出行 (Mobility))与查询相关。在该工作区内,QueryGPT 将参考一组更小、更集中的表和 SQL 模式,而不是扫描 Uber 的整个数据库生态系统。

优势:

  • 准确性 (Precision):通过将搜索空间限制在特定领域的相关引用内,QueryGPT 更可能选择正确的表格和列。
  • 降低复杂性 (Reduced Complexity):处理出行 (Mobility) 领域的用户,例如,只看到与行程、司机或文档相关的表格,这简化了数据探索过程。
  • 可定制性 (Customizability):除了 Uber 默认提供的系统工作区 (System Workspaces) 外,用户还可以为标准领域未涵盖的利基用例或新颖项目创建自己的自定义工作区 (Custom Workspaces)

2. 意图代理 (Intent Agent)

用户输入自然语言问题后,QueryGPT 会使用意图代理 (Intent Agent) 来解释用户意图并确定最合适的工作区。这一步骤对于确保系统将查询定向到正确的领域,进而定向到正确的表子集至关重要。

  • 意图检测 (Intent Detection):意图代理使用大型语言模型 (LLM) 分析用户的查询——寻找关键词、上下文和语义——将其映射到一个或多个领域工作区。例如,如果问题涉及行程数据、司机详情或车辆属性,系统可能会将查询路由到出行 (Mobility) 工作区。
  • 多重映射 (Multiple Mappings):有些查询可能跨越多个领域(例如,同时涉及出行 (Mobility)广告 (Ads) 数据的分析),在这种情况下,意图代理可以将问题映射到多个工作区。这确保了跨领域查询也得到支持。
  • 效率提升 (Efficiency Gains):由于只考虑相关工作区,QueryGPT 减少了搜索无关模式的计算开销。这不仅提高了准确性,还缩短了整体查询生成时间。

3. 表格代理 (Table Agent)

一旦 QueryGPT 知道需要关注哪些业务领域,表格代理 (Table Agent) 会提出与用户请求最相关的具体表格列表。这一步骤在像 Uber 这样的大型组织中至关重要,因为一个领域可能包含数十甚至数百个具有重叠或互补数据的表格。

  • 表格选择 (Table Selection):表格代理根据用户意图和精选的工作区内容,调取出 SQL 查询最可能需要的候选表格。它利用示例查询、表格关系和领域特定知识来决定哪些表格是相关的。
  • 用户验证 (User Verification):系统随后向用户显示所选表格的摘要,并询问是否正确。如果看起来有问题——比如系统选择了一个过时的表格或遗漏了一个新表格——用户可以在继续之前编辑列表。这种人在回路中 (human-in-the-loop) 的反馈机制有助于保持生成 SQL 的高质量和可信度。
  • 增强协作 (Enhanced Collaboration):通过允许用户微调表格选择,QueryGPT 弥合了自动化查询生成与领域专业知识之间的差距。熟悉特定模式的数据分析师可以快速确保 QueryGPT 正在引用正确的数据源。

4. 列剪枝代理 (Column Prune Agent)

即使确定了正确的表格,大型企业模式也可能包含数百列,如果某列有可能出现在查询中,就必须将其描述给语言模型。如此详尽的细节在生成过程中可能会达到或超出令牌限制,尤其是在使用像 GPT-4 Turbo 这样具有高令牌容量的模型时。

  • 剪枝逻辑 (Pruning Logic)列剪枝代理 (Column Prune Agent) 使用 LLM 调用来过滤掉不太可能与用户问题相关的列。这样做可以显著减少传递到后续查询生成步骤的信息量。
  • 成本和性能优势 (Cost and Performance Benefits):涉及的令牌更少,QueryGPT 降低了每次 LLM 调用的成本,并更快地处理查询。此外,删除不相关的列简化了最终的 SQL 查询,使其更透明且易于维护。
  • 减少错误 (Reduced Errors):处理更精简、更有针对性的模式,也降低了模型选择错误字段的机会——提高了最终 SQL 输出的清晰度和准确性。

总结

这四个组件——工作区 (Workspaces)意图代理 (Intent Agent)表格代理 (Table Agent)列剪枝代理 (Column Prune Agent)——共同协调 Uber 流畅高效的文本到 SQL 生成过程。通过将解决方案细分为特定领域的工作区 (Workspaces),通过意图代理 (Intent Agent) 过滤查询,通过表格代理 (Table Agent) 验证表格选择,并在生成最终查询之前剪枝不必要的列,QueryGPT 确保了高准确性、成本节约和快速周转。这种方法使用户能够通过简单的自然语言问题与 Uber 复杂的数据生态系统进行交互——提高了整个公司的数据可访问性和运营效率。

QueryGPT 在 Uber 的直接业务影响

前沿技术带来的业务成果。

  • 查询时间减少 70%:将每次查询的时间从大约 10 分钟减少到 3 分钟,极大地提高了分析师的效率。
  • 每月节省 140,000 小时:这不仅意味着节省成本。它使分析师可以将更多时间花在增值任务上:解释结果、优化活动、改善乘客体验和加强平台可靠性。
  • 更快的反馈循环:通过更快地获取洞察,产品经理和数据科学家可以更快地迭代,更频繁地测试假设,并更有信心地推出改进措施。
  • 竞争优势:在一个对市场变化响应速度至关重要的行业中,快速从数据中提取洞察的能力直接转化为更好的决策和改进的客户体验。

将 Uber 的 QueryGPT 功能映射到 Wren AI Cloud

毫无疑问,Uber 的 QueryGPT 令人印象深刻,但它是为拥有大量工程资源的庞大组织量身定制的。成长型初创企业、中型企业,甚至独立数据从业者如何利用类似的技术呢?这正是 Wren AI 发挥作用的地方。

Wren AI 项目

Wren AI 是一个开源的 SQL AI Agent,旨在普及文本到 SQL 技术。通过提供一个集成了 Uber QueryGPT 许多相同功能的云平台,Wren AI 旨在拉平竞争环境。

下面概述了 Uber QueryGPT 的设计如何与 Wren AI 的功能对齐和映射,说明了工作区隔离、意图检测、表格选择和列剪枝等相似原则是如何在两个系统中实现的。这些相似之处表明了双方都致力于提供一个流畅、安全且用户友好的文本到 SQL 体验。

1. 工作区 (Workspaces) → Wren AI 中的项目 (Projects) 与组织 (Organizations)

Uber 的 QueryGPT (针对工作区)

在 QueryGPT 中,工作区 (Workspaces) 是针对特定领域(例如出行或核心服务)的 SQL 样本和表格模式的精选集合。通过将重点缩小到特定的业务领域,QueryGPT 可以更准确地生成 SQL 查询,并确保数据分析师只与上下文相关的表格交互。

Wren AI 中的对应功能

你可以在 Wren AI Cloud 文档中阅读更多关于创建组织和项目的信息。

正如 QueryGPT 的工作区 (Workspaces) 一样,Wren AI 的项目 (projects) 允许你对特定数据模型进行分组和隔离,以便只有授权用户才能访问它们。在单个组织 (organization) 内,你可以为不同的职能或业务领域设置多个项目 (projects)——类似于 QueryGPT 设置单独的工作区 (Workspaces)。Wren AI 中的访问控制确保只有合适的人员可以查看和管理敏感数据,这与 QueryGPT 中看到的域范围隔离的原则是一致的。

重要性

  • 目标化上下文 (Targeted Context):通过将数据访问限制在单个工作区或项目内,系统能够更好地理解用户请求并生成更准确的查询。
  • 安全与治理 (Security & Governance):拥有敏感或专有数据的组织受益于强大的访问控制和数据策略,确保合规性和适当的数据治理。

2. 意图代理 (Intent Agent) → Wren AI 的意图检测 (Intent Detection)

Uber 的 QueryGPT (针对工作区)

当用户输入问题时,QueryGPT 的意图代理 (Intent Agent) 会识别问题属于哪个业务领域——出行 (Mobility)、广告 (Ads) 等——并将查询路由到相应的工作区 (workspace)。这一步骤极大地缩小了相关表格和模式的搜索范围,提高了准确性和速度。

Wren AI 中的对应功能

Wren AI 的意图检测方法在询问文档中有所描述。当你提出“我有多少个表格?”或“给我解释一下客户表格”这样的问题时,Wren AI 会自动识别你是请求数据检索、模式探索,还是你的问题超出了范围(例如,随意的问候)。

AI 驱动的数据探索功能
  • 数据检索请求 (Data Retrieval Requests):这些查询会促使 Wren AI 生成 SQL,将请求映射到底层数据模式。
  • 模式探索 (Schema Exploration):当问题更关注结构时——例如列出可用的表格、描述表格的列或解释关系——Wren AI 会提供深入的元数据和推荐的查询。

重要性

  • 自动领域路由 (Automatic Domain Routing):与 QueryGPT 类似,Wren AI 的意图检测 (Intent Detection) 确保你的请求得到准确处理,要么导致 SQL 生成,要么提供模式探索响应。
  • 用户指导 (User Guidance):如果请求超出范围(例如,闲聊),Wren AI 会提示用户澄清,从而保持对数据和模式查询的明确关注。

3. 表格代理 (Table Agent) → Wren AI 的表格检索代理 (Table Retrieval Agent)

Uber 的 QueryGPT (针对工作区)

在 QueryGPT 中,一旦识别出正确的领域,表格代理 (Table Agent) 会提出构建 SQL 查询所需的具体表格。用户可以确认这些建议,或对其进行编辑以确保与他们的实际数据专业知识保持一致。

Wren AI 中的对应功能

在 Wren AI 中,这一步骤对应于表格检索 (table retrieval) 阶段,我们使用语义搜索来选择与用户问题最相关的前 10 个表格。在生成查询之前,我们会查看每个表格的名称及其元数据(例如描述或标签)来确定最佳匹配。

Wren AI 架构
  • 聚焦检索 (Focused Retrieval):通过缩小范围到最相关的表格,Wren AI 使用户无需筛选庞大复杂的模式。
  • 语义相关性 (Semantic Relevance):将用户的问题与表格元数据进行匹配,确保初始查询阶段既准确又高效。

重要性

  • 准确性 (Accuracy):预先识别正确的表格减少了不正确或无关查询的可能性。
  • 效率 (Efficiency):语义搜索和简洁的前 10 个表格列表简化了检索过程,为技术和非技术用户都节省了时间。

4. 列剪枝代理 (Column Prune Agent) → Wren AI 的列剪枝 (Column Pruning)

Uber 的 QueryGPT (针对工作区)

企业环境中的大型数据模式每个表格可以有数百列,将这些数据输入到 LLM 时可能会达到令牌限制。列剪枝代理 (Column Prune Agent) 过滤掉不必要的列,避免模型过载,从而降低延迟和成本。

‍Wren AI 中的对应功能

Wren AI 的列剪枝代理 (Column Prune Agent) 功能相同:当你连接大量表格和列时,Wren AI 会剪枝掉与查询或用户当前需求不相关的列。这使得系统在大规模运行时保持快速、高效和经济。

‍重要性

  • 可扩展性 (Scalability):减少令牌负载确保 LLM 能够处理复杂查询,而不会超时或产生巨额处理成本。
  • 提高准确性 (Improved Accuracy):专注于最相关的列减少了对 AI 的干扰,从而生成更精确的 SQL。

Wren AI 的更多功能

‍除了强大的文本到 SQL 功能外,Wren AI 还提供一系列额外功能,使数据分析对所有技术背景的团队来说更加便捷、互动和易于访问。

1. 文本到图表 (Text-to-Chart)

‍Wren AI 自动生成富有洞察力的图表,以可视化你的数据并发现有意义的模式——无需额外步骤。

  • 自动图表生成 (Automatic Chart Generation):当你提出问题时,Wren AI 会分析你的数据集并选择最合适的图表类型来显示结果。
  • 无缝探索 (Seamless Exploration):只需切换到“图表”选项卡,即可在柱状图、折线图、饼状图或其他具有视觉吸引力的格式中查看你的查询结果。
  • 快速洞察 (Quick Insights):通过可视化数据,你的团队可以更快地发现趋势和关联,使数据驱动决策更加直观。

了解更多https://docs.wrenai.cn/oss/guide/home/chart

2. 数据样板 (Data Boilerplates)

Wren AI 中的样板 (Boilerplates) 是预定义模板,旨在简化你的数据分析旅程,从开始到结束。

  • 简化设置 (Streamlined Setup):样板附带预选的表格和列,无需导入包含无关信息的大量数据集。
  • 快速开启探索 (Jumpstart Exploration):精选的常见问题集可帮助你快速发现有价值的洞察,无需从头开始。
  • 支持的集成 (Supported Integrations):Wren AI 已提供 HubSpotGA4 的样板,WooCommerce 即将推出,未来还将有更多集成。

了解更多https://docs.wrenai.cn/oss/guide/boilerplates/overview

3. 分步 SQL 解析 (Step-by-step SQL breakdown)

‍这种解析会引导用户了解 AI 如何选择某些表格和列,最终生成最终的 SQL 查询。

  • 用户透明度 (User Transparency):Wren AI 会展示它打算使用哪些表格和列。用户可以看到这些选择背后的逻辑,增强信任和准确性。
  • 可解释性 (Explainability):详细的解析有助于用户理解 AI 的决策过程,这在企业环境中进行调试和合规性检查至关重要。

了解更多:https://docs.wrenai.cn/cloud/guide/home/answer#result-steps

4. 连接 Excel 和 Google 表格 (Connection with Excel and Google Sheets)

‍Wren AI 使在熟悉的电子表格工具中共享和处理查询结果变得容易。

  • Excel 加载项 (Excel Add-in):通过选择特定的线程或视图,将 Wren AI 中的数据直接导出到 Excel。这种集成减少了手动数据复制,并在你的团队已经熟悉的环境中加快了分析速度。
  • Google 表格插件 (Google Sheets Add-on):为 Google 的办公套件提供类似功能,因此依赖 G Suite 的团队也可以享受无缝数据导出。

了解更多:

通过整合文本到图表、数据样板和深度电子表格集成,Wren AI 不仅仅是文本到 SQL,还提供了一个全面、用户友好的数据分析生态系统。无论你需要快速可视化、用于常见数据问题的现成模板,还是无缝导出到你偏好的电子表格工具,Wren AI 都能满足你的需求。

结论

Uber 的 QueryGPT 和 Wren AI 都采用了模块化设计,通过利用关键步骤——工作区或项目细分、意图检测、表格选择和列剪枝——来解决文本到 SQL 的挑战。这种结构化方法确保了准确、高效和可扩展的 SQL 生成,同时保持严格的数据治理和安全性。

如果你正在寻找一个强大、开源的文本到 SQL 解决方案,能将这些创新带入你的组织,那么 Wren AI 提供了转变你团队与数据交互方式所需的一切。凭借项目和组织管理意图检测分步 SQL 解析列剪枝功能,Wren AI 确保数据易于访问、准确且安全——无论你是数据分析师、工程师还是业务负责人。

👉 在 GitHub 上探索 Wren AI 的开源项目https://github.com/Canner/WrenAI

👉 了解更多并立即试用 Wren AIhttps://wrenai.cn/

开始简化你的数据工作流程,赋能你的团队更快获得洞察——无需手动编写 SQL。

今天就用 AI 为你的数据赋能?!

感谢你!你的提交已收到!
哎呀!提交表格时出错了。