PingCAP 唐刘:一个咨询顾问对 TiDB Chat2Query Demo 提出的脑洞

news2024/11/14 19:11:05

导读

近日,TiDB Cloud 发布了 Chat2Query 功能,在 TiDB Cloud 上通过自然语言提问,即可生成相应的 SQL,通过 TiDB Cloud 对上传的任意数据集进行分析。Gartner 也在一份有关 ChatGPT 对数据分析影响研究的报告中提及了 PingCAP 的 Chat2Query 产品。

本文分享了唐刘在展示 Chat2Query demo 过程中的一些思考。探讨了想打造一款好的产品,从用户角度出发的思考方式以及与用户交流的重要性:当我们向用户展示产品能力时,我们往往习惯站在技术的角度出发,然而当用户并不具备完备的相关技术背景时,我们需要换位思考,了解用户的工作流程和思维方式,才能真正让用户理解和接受我们的产品。

最近一段时间,一件非常让我自豪的事情就是我们在 TiDB Cloud 上面发布了基于 OpenAI 的智能数据探索功能 - Chat2Query。见到朋友,我都会非常开心地跟他们去推荐这个功能,跟他们现场演示如何使用,每当看到他们 「aha」 的表情,这个成就感还是挺强的。

在这里插入图片描述

但是,我推荐的朋友几乎全是有技术背景的人,所以当我跟一位不懂技术的朋友进行推荐的时候,我才突然意识到,我们的这款产品离好看以及好用,还有很长的路要走。

因为我的朋友是一位咨询顾问,她对于世界 500 强的财务表报数据非常感兴趣。刚好,我手上有一份今年的财务数据,于是就开始给她演示如何在 Chat2Query 里面,智能对数据进行洞察。

/ 啥,什么是 Database? /

于是,我先开始上传数据,到了导入数据的面板,我上传完成文件之后,我突然意识到一个很好玩的事情,而恰恰在同时,我的朋友问了一个问题也印证了这个事情。

在这里插入图片描述

因为我的朋友不太懂技术,更别提懂数据库了,于是她问了我一个看起来很傻的问题 - 「什么是 Database?」

对的,这个问题看起来非常的低级,什么是 Database?对于一个做了这么多年,用了这么多年数据库的我来说,这问题貌似很简单。但在那个时候,我突然明白,在我看来非常显然的一个单词,对于很多用户来说是完全不可理解的。也许有人会说,我的朋友压根不是我们产品的目标客户,没准是的,但从另一方面来说,有多少人会立刻理解我们在上图那个操作?或者我们能不能将上面那个设置的步骤变得更加的简单和好用?

/ 用户的心智模型 /

于是我就跟我朋友讨论:“你期望如何来使用 Chat2Query?”我朋友回答道:“我是一个重度 Excel 用户,对我来说,我要做的就是上传 Excel 文件,然后我就能对这个 Excel 进行分析了。”

这里可以看到,我的朋友不知道什么是 Database,但其实她日常工作的 Excel,其实跟 Database 的概念是能联系上的,一个 Excel 就是一个 Database,而 Excel 里面的 Sheet 就是 Table。所以如果我朋友要用这个产品,一个更直观的方式就是她上传好一个 Excel 文件之后,我们默认的就按照这个文件名给她建立一个 Database,为 Excel 文件里面的每个 Sheet 建立对应的 Table,根本不需要暴露任何的 Database 和 Table 的概念。

所以一开始,如果我跟我朋友先从 Excel 探讨,用她之前的知识体系来做映射,没准她会更容易理解我们产品。如果一开始,我们就能很好的支持 Excel 相关的概念和操作,没准对我朋友就是一个替换 Excel 的首选了。

/ 好看又要好用 /

数据导入成功之后,我们进入到 Chat2Query,自然我知道,我的朋友不会使用,即使 get started page 里面已经说了可以使用 -- 然后再带上指令,触发 AI 的功能,自动生成 SQL,但这个仍然是不直观。于是我就问我的朋友,你期望如何分析你上传的数据,我的朋友说的很直观,给我打开了 Google 的主页。朋友说到,一个产品,能打动她,一个很重要的事情就是好看以及简单,Chat2Query 整个的界面交互,让她是没有太多的意愿使用的,上手难度太高,也不好看。

对我朋友来说,她需要更加简单易用的交互界面,在她的认知里面,我们这个智能数据洞察的功能就应该跟 Google 一样,一个搜索框,问问题,得到答案,然后生成 Excel 给她做后面的分析。

/ 用户多层需求 /

我两继续讨论如何才能让她更好的使用 Chat2Query,毕竟我朋友是重度 Excel 用户,我们如何能给她更大的价值。我朋友想了想,如果 Chat2Query 能做到三层,那么将会很吸引她:

  • 第一层 - 处理她上传的私有数据,例如多个 Excel 文件。相比于简单的 Excel 处理,Chat2Query 可以在成百上千的 sheet 中帮助她获得一些洞察。
  • 第二层 - 对她在 TiDB cloud 上的私有数据以及能与 PingCAP 在 TiDB cloud 上托管的公开数据集进行查询分析。
  • 第三层 - 她可以将她在其他服务商的账号密码给我们,让 Chat2Query 能在第二层的基础上对她在其他服务商的数据进行联合查询分析。

当我朋友跟我说这些的时候,我其实内心是很惊讶的。我最近在规划 TiDB Cloud 未来的技术架构方向,就是在思考通过构建一个弹性的计算引擎,以及数据 meta 的服务,来让用户非常方便的做到上面 3 层的操作。我非常高兴看到用户有类似的需求。

然后我的朋友又继续说到,你这个能不能有历史记录的功能,能将我之前的洞察结果保存下来,甚至有没有对比功能,对不同时间的查询结果进行对比分析。不过后来我们讨论到,这个没准在外面的工具做可能更好,所以 Chat2Query 最好要提供一个 API 服务出去。实话,我这个不懂技术的朋友能想到 API,以及对 API 收费,以及对接其他的 BI 工具,还是挺让我吃惊的 😃

/ 写在最后 /

这次与我的朋友的演示让我意识到了几点重要的事情:

  • 真正试着站在用户的角度思考问题是很重要的。我们需要了解用户平常使用的工具和完成的工作,并理解他们的思维方式。
  • 产品不仅要好看,也要好用。这对研发工程师来说是一个巨大的挑战,但幸运的是,这个世界上有很多这样的产品,我们可以学习借鉴。
  • 用户是最好的老师,与用户交流能获得非常不同的对产品的洞察。

最后,我希望我的朋友能成为我们的标杆用户,她非常愿意接受这个角色。

BTW, 本文有一些文本使用了 ChatGPT 进行了润色。

最后,如果你想体验 TiDB Cloud + AI 的能力,欢迎点击尝试 TiDB Cloud,也希望收到更多来自大家的反馈。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/377340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Gateway集成Netty服务

Gateway和Netty都有盲区的感觉; 一、Netty简介 Netty是一个异步的,事件驱动的网络应用框架,用以快速开发高可靠、高性能的网络应用程序。 传输服务:提供网络传输能力的管理; 协议支持:支持常见的数据传输…

Python调用百度AI实现文字识别

目录标题 前沿实战演示重中之重(开玩笑)前沿 今天我们也来高大上一下,玩一把人工智能。那就是免费调用百度AI实现图片上面的文字识别。相对于Python的第三方库,百度人工智能要更强大,毕竟人工智能不是那么容易搞的。要调用,其实很简单,关键的代码只需要三行。但需要先注…

使用cmake在win10编译yolov5+tensorRT+cuda+cudnn+protobuf代码进行混合编译

这里进行之前需要把protobuf在win10下编译,可以参考这篇文章从Linux下载下来的工程代码,这里建议直接使用vs系列打开不要用vscode打开,vscode对win下的cmake不友好,主要体现在报错机制无法直接定位,题主的环境是vs2022…

Kubernetes07:Service

Kubernetes07:Service 1、service存在的意义 因为Pod的IP是不断变化的,所以需要注册service防止pod失联 1)为了防止Pod失联(服务发现) 2、定义一组Pod访问策略(负载均衡) 2、Pod和Service的关系-------通…

为什么要学习C++软件调试技术?掌握这类技术都有哪些好处?

目录 1、为什么要学习C软件调试技术? 1.1、IDE调试手段虽必不可少,但还不够 1.2、通过查看日志和代码去排查异常崩溃问题,费时费力,很难定位问题 1.3、有的问题很难复现,可能只在客户的环境才能复现 1.4、为了应对…

主打的就是I/O流,顺便把File复习了

文章目录1. File类1.1 预备知识1.2 创建文件1.3 文件的常用方法2. IO流2.1 InputStream2.2 OutputStream2.3 Reader2.4 Writer2.5 缓冲流2.6 转换流2.7 对象流2.8 打印流1. File类 1.1 预备知识 文件分隔符 Windows:D:\Soft\QQ\PluginLinux:D:/Soft/QQ…

SpringMVC使用 redis 实现缓存

简介 SpringMVC 中也可以将缓存标签和 redis 结合起来使用,其实此时缓存没有起作用,只是通过缓存的那几个注解来操作 redis 而已;SpringMVC 中整合 redis 比较麻烦的是注意版本冲突的问题,如下是官网有关于版本的要求 https://d…

【人脸识别】DDL:数据分布知识蒸馏思想,提升困难样本(遮挡、低分辨率等)识别效果

论文题目:《Improving Face Recognition from Hard Samples via Distribution Distillation Loss》 论文地址:https://arxiv.org/pdf/2002.03662v3.pdf 代码地址:https://github.com/HuangYG123/DDL 1.前言及相关工作 Large facial variatio…

秒懂算法 | 基于图神经网络的推荐算法

图神经网络(Graph Neural Networks,GNN)是近几年兴起的学科,用来作推荐算法自然效果也相当好,但是要学会基于图神经网络的推荐算法之前,需要对图神经网络自身有个了解。 图卷积网络(Graph Convolutional Networks,GCN)提出于2017年。GCN 的出现标志着图神经网络的出现。深度学习…

大家一起来找茬,新手第一次layout到底能挑出多少毛病?

有一个新手工程师在论坛上发了一篇帖子,把自己的处女PCB布线图贴出来。 如果不看其他网友的评论,你能看出多少问题呢?可以在留言区和我们互动哦~ 帖子里他还提出了自己的小见解:问一下,我觉得自动布线挺好用的啊&#…

汽车标定知识整理(一):标定简介与CCP报文协议简介

目录 一、什么是标定 二、XCP与CCP 三、CCP报文协议简介 1、CCP报文协议简介 (1)CRO:Command Receive Object ,命令接收对象(由Master -> Slave) (2)DTO:Data T…

Kotlin 39. Dependency Injection依赖注入以及Hilt在Kotlin中的使用,系列2:手动依赖注入

一起来学Kotlin:概念:26. Dependency Injection依赖注入以及Hilt在Kotlin中的使用,系列2:手动依赖注入 此系列博客中,我们将主要介绍: Dependency Injection(依赖注入) 概念介绍。…

当IDEA加载一个MAVEN新项目时,加载不成功,无法加载依赖的解决方法

当IDEA加载一个MAVEN新项目时,加载不成功,无法加载依赖的解决方法 此文为练习项目时的错误记录 当使用IDEA引入一个MAVEN新项目时,点击Reload maven按钮加载不成功,显示如下图界面: 在项目中的代码显示报红&#xff0c…

urllib之ProxyHandler代理以及CookieJar的cookie内存传递和本地保存与读取的使用详解

处理更高级操作时(Cookies处理,代理设置),需要一个强大的工具Handler,可以理解成各种处理器,有处理登录认证的、有处理Cookies的、有处理代理设置的。利用这些几乎可以做到HTTP请求中所有事情。当中urllib.request模块里的 BaseHa…

机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测

机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测 作者:AOAIYI 作者简介:Python领域新星作者、多项比赛获奖者:AOAIYI首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞…

MySQL实战解析底层---基础架构:一条SQL查询语句是如何执行的?

目录 前言 连接器 查询缓存 分析器 优化器 执行器 前言 平时使用数据库,看到的通常都是一个整体比如,有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时: 看到的只是输入一条语句,返回…

微电影广告的内容突破方案

微电影作为新媒体时代背景的产物,深受大众的欢迎,同时,微电影广告在微电影模式环境下应运而生,以自己独特的传播优势,俘获了大量企业主的青睐,也获得了广大青年群体的喜爱。微电影广告欲确保可持续发展&…

Android App异常崩溃处理详解

异常崩溃是Android项目中一个棘手的问题,即使你做了很多的try - catch处理,也不能保证不崩溃,一旦崩溃就会出现下图的弹窗,xx应用就会停止运行这种体验对于用户来说是很差的,所以很明显我们做的app已经崩溃了。 像现在…

社科院与杜兰大学金融管理硕士项目——在这里共同改变,一起前行

人这一生,要走很长的路,才能确定前行的方向,在路上遇到很多的人,才知道与谁同行。在人生旅程中,保持怎样的姿态前行,往往与身边的人有很大关系。身边的人都很努力,你也会跟着努力上进。怀揣着在…

Synchronized,我要一层一层剥开你的心

三种应用方式 修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁。修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁。修饰代码块,指定加锁对象,对给定对象加锁&a…