⚠️ 对代码感兴趣,直接拉到文末
大家好,我是章北海
最近在外面冲浪看到@eviljer分享了 DeepSeek Coder
一步到位做数据分析的玩法。
我复刻后试了一下,确实很爽
只需要塞进去 excel,==告诉它分析哪些指标,自动生成代码,自动执行==,输出可视化图表
原文使用 DeepSeek 官方 API,我冲了 1 元钱,跑一次只需要花费 1 分钱
如果一分钱都不想花呢?
我注册了 siliconflow,免费赠送 14 元(即约 2000 万 Qwen1.5-14B 模型 tokens,或 500 张图片)
注册地址:https://cloud.siliconflow.cn?referrer=cly7ai3ir000jqab7qaqp0qwf
它不但完美支持OpenAI API
调用,还可以免费使用Qwen、GLM、Yi
等模型。
上面演示的自动数据分析、可视化,我是用的是DeepSeek-Coder-V2
这个模型我测试了,非常好用
DeepSeek-Coder-V2:第一个开源模型在编码和数学方面击败了 GPT4-Turbo
在编码和数学方面表现出色,击败了 GPT4-Turbo、Claude3-Opus、Gemini-1.5Pro、Codestral。
支持 338 种编程语言和 128K 上下文长度。
完全开源,有两种尺寸:230B(也具有 API 访问权限)和 16B。
回归正题,如何实现自动生成代码,自动执行,输出可视化图表?
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import re
import pandas as pd
from openai import OpenAI
# 读取 CSV 数据
#file_path = "/Users/zz/Desktop/demo.csv"
file_path = "替换成自己的 csv 文件路径"
mydata = pd.read_csv(file_path)
# 打印数据类型和表头
data_info = mydata.dtypes.to_dict()
data_columns = mydata.columns.tolist()
print("Data columns and types:", data_info)
api_key = "sk-替换成自己的 api"
# for backward compatibility, you can still use `https://api.deepseek.com/v1` as `base_url`.
client = OpenAI(api_key=api_key, base_url="https://api.siliconflow.cn/v1")
# 构造请求信息
messages = [
{"role": "system", "content": "You are a helpful assistant.\n Based on the dataset user provided, do not assume.\n Think step by step, \nUse Markdown to format the output."},
{"role": "user", "content": f"根据接收的数据字段和类型:{data_info}, CSV 路径:{file_path}, 1、用 plotly 图表分析内容标题,做个阅读超过 1000 点文章排行;2、对排名前五的文章做描述性分析,选用适当的图表进行可视化;3、分析哪些文章阅读情况比较良好;4、分别帮我找出阅读后关注人数、送达阅读率、首次分享率前五的文章名;注意:直接给我最终代码即可,不要写注释"}
]
response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-Coder-V2-Instruct",
messages=messages,
stream=False
)
response_code=response.choices[0].message.content
code_blocks = re.findall(r'```(.*?)```',response_code,re.DOTALL)
cleaned_code_blocks = [code.replace("python\n","") for code in code_blocks]
for code in cleaned_code_blocks:
exec(code)
粘贴到Jupyter NoteBook
,替换file_path、api_key
成自己的,修改 messages
中你想让大模型做的数据分析任务,执行即可。
如果你有别的大模型的 api,这套代码依然适用,额外替换一下base_url、model
即可