ChatGPT-4 x Noteable进行数据可视化分析实践
工具:
-
推荐GPT-4,搭配插件
-
Noteable插件:使用Python、SQL和Markdown创建笔记本,用于探索数据、可视化,并与所有人共享笔记本
- 在线python编辑器: noteable,类似juypter notebook
-
WebPilot插件:Browse Webpage/PDF/Data. Chat & Write with one/many/none URLs.
-
项目示例:
对股票与人民币汇率波动相关性进行分析,并生成完整的BI报告文档,以Markdown文档输出,步骤:
注册Noteable,创建项目-创建笔记文档,并开启项目权限,实现梦幻联动(如果需要gpt-4读取目录下的其他文件,也需要对对应的文件开启权限)
可预安装需要的python库,也可以由gpt-4发现问题,并在解决的过程中提供需要安装的依赖(如果已知需要使用到哪些依赖库,建议提前安装,这样后续执行起来更加顺滑,减少出错)
填入安装命令,直接点击左下角的三角形
执行(或ctrl+enter)
使用GPT-4的插件模式(因为需要使用Noteable和联网插件WebPilot,插件最多允许选3个)
键入prompt
- 提供参考链接、参考示例
- 明确需求范围
- 提供notable地址,明确操作方式(如何写入、使用的库)
- 明确输出结果(格式、形式)
- 提出额外的要求
// prompt,记得替换[你的notable笔记本链接]
参考文档:[<https://akshare.xyz>](<https://akshare.xyz/>),利用akshare库的相关方法制定股票均线策略,股票代码为600036,在[你的notable笔记本链接]中创建新的cell,使用plotly生成合适的可视化图表。获取akshare数据的过程中,如果数据获取成功并且数据内容不为空,则把原数据保存到本地,后续执行的过程中从本地读取对应的数据
关注执行过程
发现GPT-4自动往我们创建的noteable笔记本里面写入并运行代码,但是会发现可能有报错,GPT会自动发现错误,并且尝试寻找解决方案
如果gpt尝试多次都无法正确执行,则需要主动分析原因,给gpt提供更准确的资料(同时关注gpt和notable的输出)
主动发现错误,分析错误,结合提供的prompt,补充提供更准确的信息
通过分析,发现我的prompt存在一定的不足:
- 没有结合官方文档的具体方法-搜索gpt提供的方法,stock_zh_a_daily,发现缺少时间范围,并且官方推荐使用另外一个方法stock_zh_a_hist
- 没有指定时间范围
- 即使提供了官方文档,也不一定正确“理解”,依然报错,就提供官方参考代码
补充下述内容:
参考https://akshare.xyz/data/stock/stock.html#id21,改用stock_zh_a_hist的方法来获取20100101-20231231之间的股票数据
图表成功生成了~
优化图表
但我发现图例是英文,于是我让gpt帮我修改图例名称或展示方式
也是成功~顺利得有点不敢相信haha
获取人民币汇率,与股票收盘价结合分析
吸取教训,用gpt能准确理解并输出我们想要的东西的方式去写prompt
参考下列代码:currency_boc_sina_df = ak.currency_boc_sina(symbol="美元", start_date="20230304", end_date="20230813"),获取跟上述最后一个图表同时间段的人民币【央行中间价】数据,并与上述我提供的股票的收盘价比较分析,用合适的方式可视化分析结果,增加一个图表进行展示
经历了一些拉取数据的时间,也出现了两个错误,但gpt都顺利修复了,最终输出了我想要的图表
有亿点点强~
获取数据会占用很多时间,当执行完后提醒gpt帮我保存数据到本地
基于已有的数据,提更多的需求
让gpt扮演专家角色进行专业分析(缩小知识范围,提高专业性和准确性)
计算股票收盘价与人民币央行中间价的相关性,并以一个专业的金融分析师的角度进行分析,形成分析报告
形成完整的数据分析文档,使用notable的publish功能进行整合,勾选需要发布的模块,如图表、markdown内容等形成一个可交互的可视化数据分析报告
GPT-4 x Noteable 联动的优势
- 非专业python开发者,都能通过python实现自己想要功能
- 联动,GPT-4能跟Noteable联动,自动写入代码块并执行,在执行遇到问题的时候gpt会发现,然后尝试找到解决办法,大多数情况能正确解决问题
- 一键把运行结果+图表生成可交互的文档
- 真正实现自然语言编程
劣势
费钱 o(╥﹏╥)o
与GPT沟通的技巧
- 在多次尝试后仍然无法解决的问题,需要换一个解决思路,或者给gpt提供准确的参考资料
- 为gpt提供参考资料的链接或文档,提高答案的准确性
- 执行成功后把数据缓存在本地(如csv)进行读取,不用每次都重新获取,提高执行效率
- 做好出差错的准备,跟GPT一起解决问题,而不是让万能的GPT自己想办法
- 不要丢失自己的判断力(成龙大哥说的:不是你说什么就是什么,首先我要自己试一下)
转载自:https://juejin.cn/post/7270912365167607862