> 自媒体 > (AI)人工智能 > ChatGPT 助力数据分析:实际案例与技巧
ChatGPT 助力数据分析:实际案例与技巧
来源:破局者Breaker
2023-08-09 17:09:15
562
管理

#头条创作挑战赛#

导语|本文将重点介绍 AI 与数据分析结合的应用,通过实际案例与相关技巧,描述 ChatGPT 如何助力数据分析,帮助读者更好地理解并掌握这一领域的创新实践。

本文作者:krryguo,腾讯 IEG前端开发工程师

在如今 AI 爆炸的时代,涌现出各种 AIGC 能力,可能我们已是司空见惯了。

之前分析过一句话生成图表和BI看板,这一次将重点介绍AI数据分析,通过实际案例与相关技巧,描述ChatGPT 如何助力数据分析。

声明:本文涉及与 ChatGPT 交互的数据已严格脱敏。

介绍

AI 数据分析,我这里实现了两种方式,支持多维数据分析:

SQL分析:分析平台自身的使用情况,如图表配置化平台,输入一句话可分析用户配置图表相关的数据个性化分析:平台上支持上传数据,可提供数据信息(非必填),以此自定义分析用户自己上传的数据

分析完成后展示结果数据的图表和分析结论,图表支持折线图和柱状图,可随意切换。

演示

话不多说,直接上视频。

,时长01:08

注:视频中上传和 AI 分析的数据均是假数据,仅供测试。

视频展示内容:

演示SQL分析过程,输入想分析的内容,点击分析,输出数据图表和分析结论。演示个性化分析,上传两个文件案例:单维度数据分析、多维度数据分析,可追加描述内容辅助 ChatGPT 进行分析。

由于我这个是图表配置化平台,所以这里用的第一个演示内容是 “分析每种图表的使用情况”。

流程

逻辑流程图如下:

问题与技巧

对上面的流程,记录开发时一些问题和技巧,部分我采用一问一答形式说明。

公用逻辑

1、为什么在 user prompt 限定 SQL 和数据分析及其返回格式,而不用 system prompt?有两个方面,一是因为 system prompt 已经承载了表结构信息;二是 user prompt 遵循力度更高。尝试多次,还是让 user prompt 承载具体返回格式更为精确,这一操作在后端进行,防止用户通过开发者工具查看参数。

2、为什么分开定义单维度数据和多维度数据的 prompt,而不直接丢给让 GPT 判断?最好不要给让 GPT 存在两种返回格式的 prompt。例如:“如果数据是单维度,你就返回 {xxx},如果数据是多维度,你就返回 {xxx}”。这类存在 两种结果导向 的 prompt,我尝试了多次,大约有 50% 的几率 GPT 会犯傻(明明是单维度,却返回多维度格式,反之多维度却返回单维度格式)

所以最好的解决方式是在发送请求前用条件运算符区分这两个格式的 prompt,代码判断一下是单维度还是多维度数据,再决定用哪个 prompt,再传给 ChatGPT,尽量让这个 prompt 只存在 一种结果导向。

3、前端如何渲染图表?SQL 分析的接口或个性化分析解析的数据文件所获得的 tableData,其格式与渲染表格的格式一样:对象数组。让 GPT 判断出对象的 key 值映射:keyMap,得知 维度、数据项、数据值的 key,就可以拿到并处理成图表所需的 series、xAxis。

SQL 分析

1、为什么还要反复校验是不是 SELECT SQL 语句?

这里不仅仅是 AI 不完全可控的原因,还有 永远不要相信用户的输入,万一用户恶意输入一些描述,非要执行 UPDATE/DELETE 等恶意操作,那就完了。所以一定要再次校验 AI 生成是否是安全的 SELECT SQL 语句,非查询类 SQL 坚决不通过!!提示不支持此类请求。

2、为什么到 AI 分析那一步骤还要拼接上下文?

上文是有表结构信息和 SQL 语句,这些可以提供给 GPT 更好理解数据和字段的意义,分析更准确。

3、针对表结构长类型字段,不允许直接查询,防止 token 消耗过多。其实最好还是告诉 GPT 只允许查询哪几个字段,或者用哪几个 SQL 函数,尽量让 GPT 生成可控。

个性化分析

1、用户上传的数据解析后需要判断数据格式是否符合要求,超长可以限制截取前面若干项,防止 token 消耗过多。

2、在前端解析用户上传的数据,分析完可以直接用于渲染数据图表,无需再让后端再返回。

3、需要支持用户补充输入,可以简单描述这是什么数据、字段意义或作用,用于 辅助 AI 分析。如果都是易理解语义化的字段名,可以无需描述,GPT 也能识别。遇到一些多维度数据,GPT 可能会误将其他字段作为维度分析,为了准确性可以输入:“以xxx(字段名)为维度分析”;还可以输入:“这是xxx数据” 更好帮助 AI 分析。

Function calling

可以发现为了让 ChatGPT 返回符合要求的 JSON 格式,prompt 的定制就尤为重要和复杂。

好消息是,在当地时间 6 月 13 日,OpenAI 发布函数调用及其他 API 更新。现在开发人员可以向 gpt-4-0613 和 gpt-3.5-turbo-0613 描述函数,并让模型智能地选择输出一个包含调用这些函数所需参数的 JSON 对象。这是一种更可靠地将 GPT 的能力与外部工具和 API 连接起来的新方法。

传送门:Function calling and other API updates

官网有很详细的例子,这里就不再描述代码了。我用本文案例总结大致流程:

有个好处是不需要让 ChatGPT 生成 SQL 了,减少 SQL 注入的风险。本地写一个函数执行 this.app.mysql.select(table, condition),根据 GPT 返回的函数名、参数(字段和 where)来查询数据,更为安全。

但这个方法又有局限性,事先定义函数查询不如 SQL 查询来的灵活,所以这里也可以让函数改为 SQL 查询 this.app.mysql.query(sql),GPT 的函数调用改为:getSqlQuery(sql: string),函数名 getSqlQuery,参数:sql,更为灵活。

总结:让 GPT 与函数调用结合,本地控制返回 JSON 格式,prompt 的定制更为简单,AI 的输出更为可控。根据实际业务需求采用 函数查询 或 SQL 查询,值得一试!

SQL 分析示例

注:以下 SQL 分析的数据均是在数据库中伪造的数据,仅供测试。

分析每种图表的使用情况

多维度数据-柱状图

总结和展望

ChatGPT 作为一款强大的人工智能工具,在数据分析领域具有广泛的应用前景。本文所介绍的案例与使用技巧,可以看到 ChatGPT 在提高数据分析效率、降低技能门槛以及支持决策过程等方面的显著优势。不过本案例分析结果可能过于简单,真正接入业务也可定制多种分析模板,让 GPT 按相关模板格式返回,增加分析多样性。

在实际业务中通常是需要处理大量数据,除了文中提到长类型字段的限制,还要指定允许查询或解析的字段告诉 ChatGPT,结果数据要进一步校验是否符合要求,超长数据可以截取关键字段的内容丢给 GPT 总结分析。做到前后两次校验,更为可控。我们仍需结合实际需求和场景,审慎评估其适用性。

随着人工智能技术的不断进步,我们有理由相信,ChatGPT 及其他类似工具将为数据分析带来更多创新和突破,助力各行各业实现更高效、更智能的决策。

0
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 凡本网注明 “来源:XXX(非本站)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。 如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。 QQ:617470285 邮箱:617470285@qq.com
相关文章
《飞驰人生》片尾为何谢王思聪?不止借车库,千万跑车全是真家伙..
提起《飞驰人生》,不少人都记得片尾字幕里王思聪的名字,却鲜少有人知道..
中国古代的顶级“超跑”,如今全球仅剩六千匹!汗血宝马是啥样?..
在历史的长河中,骏马总是与英雄、战争和传奇紧密相连,而对于我们中国人..
法拉利296 Challenge Stradale路试曝光:赛道版公路跑车即将到来..
【网通社快报】法拉利被拍到正在测试一款重度伪装的原型车,外观酷似赛道..
10款你应该现在就入手的跑车,趁它们还没成为经典款!..
整备质量马力扭矩布局2195磅138马力126磅英尺中置引擎,后轮驱动MR-S 是..
消息称保时捷下月推911 GT3 Cabriolet敞篷跑车:折叠软顶..
IT之家 2 月 24 日消息,汽车媒体 thesupercarblog 于 2 月 22 日发布博..
新能源汽车出海2.0:从“卖车”到“建生态”
文 | 惊蛰研究所,作者|芒种2007年,华语女子团体S.H.E的一首《中国话》..
汽车能“乘火车”返乡了!订单火爆→
今年春运,“12306托运汽车订单火爆”的话题冲上热搜。汽车“坐”着火车..
湖北造飞行汽车来了!单价或50万元以内,市民可以像开汽车一样开“飞车”..
极目新闻记者 黄忠 陈倩 杨绍杭 王俐燃 刘中灿像车,又像飞机,能垂直起..
紧急召回!近30万辆汽车,吉林车主快自查!
国家市场监督管理总局网站2月9日发布上海蔚来汽车有限公司的汽车召回信息..
关于作者
帝王之星(普通会员)
文章
1854
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

成员 网址收录40418 企业收录2986 印章生成263660 电子证书1157 电子名片68 自媒体103523

0
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索