实验 4与 10M 数据记录聊天 ChatGPT PandasAI 和 Streamlit
用自然语言询问您的数据
“与数据聊天” 是“与一切聊天”系列中的一篇文章。本部分将重点介绍如何用自然语言询问您的数据。
对于那些不知情的人,“与一切聊天”系列专注于为您提供构建 LLM 应用程序的技术知识和技巧。我创建的所有应用程序都使用流行框架:Streamlit、Langchain 和 OpenAI (LLM 模型)。
您可以在这里找到“与一切聊天”系列:我的 GitHub
难度等级:中级 🎖️
本文将涵盖的内容:
- 如何使用自然语言与您的数据“对话”?
- “与数据聊天”实际上是如何工作的
- 为我们的演示准备技术栈和数据
- 实现“与数据聊天”应用
- 展示案例(对于那些想先看到结果以获得动力的人)
1. 使用自然语言与您的数据“对话”
我们都非常熟悉自然语言,这是我们日常社交交流中使用的语言。但当涉及到与计算机和数据互动时,这个过程变得复杂得多。
在过去, 为了处理数据,我必须学习 SQL。这一过程可能需要几天,甚至几周的时间,如果我想彻底掌握它。对于像我这样有技术背景的人来说,这仍然是可以管理的,但对于那些没有技术专长的人来说,可能需要几个月。
如今, 在大型语言模型(LLMs)的支持下,这一过程变得显著更简单和更快。想象一下 LLMs 就像一个有才华的翻译员。您无需学习新的编程语言或查询语言,只需使用自然语言即可。LLMs 会自动将您的请求翻译成编程语言,执行复杂任务,并将结果返回给您。整个过程在几分钟内完成,快速而准确地为您提供所需的信息。
使用 LLMs(如 ChatGPT、Gemini 等)不仅节省了时间,还为每个人打开了机会,无论技术水平如何,都可以访问和利用数据的力量。
有两种可能的方法可以使用LLMs来处理我们的数据:
第一种解决方案是直接使用ChatGPT进行数据分析的能力。可以访问OpenAI网站并上传计算机上的数据文件进行处理和分析。然而,这种方法有三个显著的缺点:
- 您的数据可能会泄露给第三方(OpenAI)
- 大数据处理是如此“昂贵”,如何计算令牌成本将在下面解释
- 过度的数据处理可能会导致您的账户被封锁1-2小时,因为OpenAI限制用户账户的计算能力
为了克服这些限制,让我们来看第二种解决方案,我将在下一部分实施。为了更有说服力,我将使用一个包含1000万条记录的数据集。使用这个数据集,第一种解决方案是不可行的。
2. “与数据对话”的实际工作原理

“与数据对话”应用的高层设计概念如下所示:
- 步骤 1: 接收用户的 问题
- 步骤 2: 连接到数据库(CSV、XLSX、PostgreSQL、MySQL、BigQuery、Databrick、Snowflake 等)以检索 元数据(关于数据表的信息以及各个数据字段的描述)
- 步骤 3: 此步骤仅发送 元数据 + 问题,而不是将整个数据发送给 LLM
- 步骤 4: 基于元数据,LLM 将创建 可执行代码。简单来说:LLM 将自然语言翻译为查询语言(SQL)或编程语言(Python)以处理数据
- 步骤 5+6: 步骤 4 中的可执行代码将在数据库上运行以获取最终结果
- 步骤 7: 形成最终的 答案 并返回给您。
3. 准备我们的演示所需的技术栈和数据
PandasAI:用自然语言询问您的数据。
为了实现上述概念,我将向您介绍一个非常有趣的用于数据分析的 Python 库:PandasAI。
PandasAI 使用生成性 AI 模型来理解和解释自然语言查询,并将其转换为 Python 代码和 SQL 查询。然后,它使用这些代码与数据进行交互,并将结果返回给用户。如果您想了解更多关于 PandasAI 的信息,请查看: https://pandas-ai.com 。这里有一个演示视频:
- 标题: 实验 4与 10M 数据记录聊天 ChatGPT PandasAI 和 Streamlit
- 作者: Barry
- 创建于 : 2024-08-15 16:09:30
- 更新于 : 2024-08-31 06:59:45
- 链接: https://wx.role.fun/2024/08/15/c02c3c6a93844cc0ae1d5ff984c76f92/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。