ChatGPT的Assistant:高效的数据分析和智能问答
文章主题:文件上传, ChatGPT, Assistant, NLP
ChatGPT 的 Assistant 具备强大的文件处理能力,可支持高达 20 个、总容量达 100G 的文件上传。最近,我对其数据分析功能进行了尝试,并取得了令人满意的成果。此外,我还深入研究了其数据处理的内部机制,发现助手实际上是通过将自然语言需求描述转换为 Python 程序,并在沙箱环境中执行该程序来获得结果的。这一过程确保了结果的准确性,从而使得助手成为了我在数据处理方面的得力助手。
数据准备
在开始撰写本文之前,我们需要先准备好两个Excel文件,分别为“产品信息表”和“销售记录表”。前者包含产品ID、产品名称以及单价等详细信息,而后者则主要记录了各产品的销售情况。
产品ID
产品名称
单价
1000
电饭锅
100
1001
空气炸锅
200
1002
电吹风
300
时间
产品ID
销售量
2021-01-01 08:00:00
1001
6
2021-01-01 08:10:00
1002
2
2021-01-01 08:20:00
1000
6
2021-01-01 08:30:00
1002
4
2021-01-01 08:40:00
1001
2
2021-01-01 08:50:00
1002
1
2021-01-01 09:00:00
1000
7
2021-01-01 09:10:00
1002
2
2021-01-01 09:20:00
1000
4
2021-01-01 09:30:00
1001
10
2021-01-01 09:40:00
1000
1
2021-01-01 09:50:00
1001
10
2021-01-01 10:00:00
1001
4
将文档上传到openAI的系统
# 上传文件
def upload_file():
product = client.files.create(
file=open(“/Users/crazyicelee/MiniProjects/PythonDemo/product.xlsx”, “rb”),
purpose=assistants
)
sales = client.files.create(
file=open(“/Users/crazyicelee/MiniProjects/PythonDemo/sales.xlsx”, “rb”),
purpose=assistants
)
return [product.id,sales.id]
创建新的Assistant对象
# 创建assistant
def create_assistan(file_ids):
assistant = client.beta.assistants.create(
name=“大表姐”,
instructions=“你是一名数据分析师,从用户提供的excel表格文件里边给出各种统计结果。”,
tools=[{“type”: “code_interpreter”}],
model=“gpt-4-1106-preview”,
file_ids=file_ids
)
thread = client.beta.threads.create()
run=client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id,
instructions=“product文件是产品ID、产品名称、单价的对应关系,sales是每个产品的销售量流水,后面回答问题都是中文输出,用markdown格式”
)
return assistant.id,thread.id,run.id
在本示例中,我们一次性创建了三个重要对象:Assistant、Thread和Run。为了确保ChatGPT能够明确理解我们的分析目标,我们在Run对象的介绍部分清楚地阐述了目标文件的结构和关系。这种表达方式不仅提高了文章的专业性,还使得读者更容易理解我们的方法。
启动run
if __name__ == __main__:
assistant_id,thread_id,run_id=create_assistan([file-11Azcb6dozmxQmOUG4OP5tbU, file-lZlPAABvUO9LoLHjFEPUJ8vh])
is_quit=True
while is_quit:
time.sleep(1)
run = client.beta.threads.runs.retrieve(
thread_id=thread_id,
run_id=run_id
)
if run.status==completed:
messages = client.beta.threads.messages.list(
thread_id=thread_id,
)
# 只输出第1条消息
i=0
for message in messages:
if i<1:
if message.assistant_id:
for c in message.content:
if c.text.value!=:
print(f”答案:\n{c.text.value}”)
i=1
else:
break
prompt=input(“输入统计要求:”)
message = client.beta.threads.messages.create(
thread_id=thread_id,
role=“user”,
content=prompt
)
run = client.beta.threads.runs.create(
thread_id=thread_id,
assistant_id=assistant_id,
)
run_id=run.id
在处理这种线程级任务时,我们需要对run状态进行轮询,以确保只有在run状态达到”complete”时,我们才能确认ChatGPT已经成功执行完用户请求。需要注意的是,当run运行完毕后,你可以与ChatGPT展开持续的对话,向她传达你在数据分析方面的需求,从而获取到相应的执行结果。
执行过程演示
输入统计要求:你对excel文档的处理 事通过程序还是文本生成?
答案:
我的处理方式对于Excel文档是通过程序自动化进行的。当您提供一个Excel文档,我可以使用Python等编程语言,并利用如pandas、openpyxl或xlrd等库来读取、分析和生成统计结果。这些处理过程是在代码中定义的,而不是手动通过文本生成。通过这种方式,可以高效处理大量数据并生成所需的统计信息。
如果您需要对上传的Excel文件执行特定的数据分析,请提供具体的指令或问题,我将通过编程来为您提供解决方案。
输入统计要求:月度差产品销售量的统计 结果和执行代码?
答案:
我们已经成功地读取了两个Excel文件。以下是它们的内容概览:
第一个文件(文件0)包含产品信息,具有三列:“产品ID”、“产品名称”和“单价”。
第二个文件(文件1)包含销售记录,同样有三列:“时间”、“产品ID”和“销售量”。
为了计算月度产品销售量的统计结果,我将会执行以下步骤:
1. 将“时间”列转换为日期类型(如果尚未完成)并提取月份信息。
2. 对每个月份的数据分组,并按照“产品ID”计算每个产品的销售总量。
3. 然后将结果与第一个文件中的“产品名称”和“单价”进行合并,得到每个产品在每个月的销售量及相应信息。
请确认这些是您需要的数据处理步骤,如果有其他特定需求或说明,请告知以便我进行相应的数据分析。如果这些步骤符合您的要求,我将继续执行代码并提供结果。
输入统计要求:符合要求
答案:
根据提供的数据,我们得出了产品每月的销售总量。在2021年1月和2月期间,每个产品的销售量如下:
– 2021年1月销售量:
– 电饭锅:8,009个
– 空气炸锅:8,313个
– 电吹风:8,316个
– 2021年2月销售量:
– 电饭锅:2,990个
– 空气炸锅:2,853个
– 电吹风:2,880个
这些统计数据是按照产品名称、年份和月份进行排序的。如果您需要其他类型的统计信息或进一步的数据分析,请告诉我。
输入统计要求:用表格方式给出
答案:
如下是修正后的表格展示,显示了2021年1月和2月各产品的销售量:
| 产品名称 | 2021年1月 | 2021年2月 |
|———-|————|————|
| 电吹风 | 8,316 | 2,880 |
| 电饭锅 | 8,009 | 2,990 |
| 空气炸锅 | 8,313 | 2,853 |
请让我知道如果您需要任何其他的数据分析或有任何额外的问题。
输入统计要求:增加销售额
答案:
以下是包含销售量和销售额的最终月度产品销售统计表格:
| 产品名称 | 2021年1月 销售量 | 2021年2月 销售量 | 2021年1月 销售额 | 2021年2月 销售额 |
|———-|—————–|—————–|—————–|—————–|
| 电吹风 | 8,316 | 2,880 | 2,494,800 | 864,000 |
| 电饭锅 | 8,009 | 2,990 | 800,900 | 299,000 |
| 空气炸锅 | 8,313 | 2,853 | 1,662,600 | 570,600 |
请注意销售额是根据产品的销售量和单价计算得出的。如果您需要其他格式的数据或进一步的分析,请告诉我。
结论
ChatGPT 的 Assistant 已经推迟了基于用户文档的问答以及数据处理等功能,这些功能已经具备替代普通数据分析师和相关软件开发工程师的能力。
AI时代,拥有个人微信机器人AI助手!AI时代不落人后!
免费ChatGPT问答,办公、写作、生活好得力助手!
搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!