PandasAI V3 中文对话功能体验:结合 DeepSeek-R1 与本地大模型,开启智能数据分析新旅程

PandaAI 是一个开源框架,将智能数据处理和自然语言分析相结合。无论您是处理复杂的数据集,还是刚刚开始数据之旅,PandaAI 都提供了定义、处理和高效分析数据的工具。通过其强大的数据准备层和直观的自然语言界面,您可以在不编写复杂代码的情况下将原始数据转化为可操作的见解。

对于之前版本的用户来说,PandaAI 3.0 (目前处于测试阶段)标志着一个重要的发展,它不仅超越了对话分析,还引入了一个全面的数据准备框架,彻底改变了您构建和与数据交互的方式。

PandaAI 3.0 以强大的数据准备层为根基,该准备层赋予用户诸多能力,例如利用丰富的元数据来定义语义数据架构,搭建起不同表格之间的数据关联,打造出融合多个数据源的集成视图,同时还能够处理诸如Parquet、CSV 等在内的各种数据格式。

在继承过往优势的基础上,PandaAI 持续拓展其自然语言功能,能够将普通的英语查询转化为可执行代码,生成动态的可视化图表,并且借助简易的对话就能完成复杂的数据分析。

安装

PandaAI 需要 Python 3.8+,但低于 3.12。我们推荐使用 Poetry 进行依赖管理:

# 使用 Poetry(推荐)
poetry add "pandasai>=3.0.0b2"

# 替代:使用 pip
pip install "pandasai>=3.0.0b2"

快速设置

要使用 PandaAI,您需要一个大型语言模型(LLM)。虽然您可以使用任何 LLM,但平台推荐使用 BambooLLM。您可以在 https://app.pandabi.ai 注册以获取免费的 API 密钥,这将使您既能使用数据平台,又能获得 BambooLLM 的使用额度。

首先,导入 PandaAI 并设置您的 API 密钥:

import pandasai as pai

# 从 https://app.pandabi.ai 获取您的 API 密钥
pai.api_key.set("YOUR_PANDABI_API_KEY")

与数据对话

import pandasai as pai

# 加载数据
df = pai.read_csv("data/companies.csv")

response = df.chat("每个地区的平均收入是多少?")
print(response)

当您提问时,PandaAI 将使用 LLM 生成答案并输出响应。根据您的问题,它可能会返回不同类型的响应:字符串、数据框、图表、数字

创建您的第一个数据层

1. 定义数据源 从创建描述您数据集的数据架构开始:

import pandasai as pai

# 加载数据
df = pai.read_csv("data/companies.csv")

# 创建数据层
companies = pai.create(
  path="my-org/companies",
  df=df,
  description="客户公司数据集"
)

此数据集将保存在您项目的 datasets/my-org/companies 文件夹中。

2. 定义数据集的结构

默认情况下,列将从数据中推断出来。然而,为了获得更多的控制权,您可以定义明确的列架构:

# 使用明确的架构定义公司数据集
companies =
pai.create(
  path="my-org/companies",
  df=df,
  description="客户公司数据集",
  columns=[
    {
      "name":
"company_name",
      "type": "string",
      "description": "公司名称"
    },
    {
      "name": "revenue",
      "type": "float",
      "description": "公司收入"
    },
    {
      "name": "region",
      "type": "string",
      "description": "公司所在地区"
    }
  ]
)

3. 加载和查询数据 定义完成后,您可以轻松加载和查询您的数据集:

# 加载现有数据集
stocks = pai.load("organization/coca_cola_stock")
companies = pai.load("organization/companies")

# 使用自然语言查询
response = stocks.chat("可口可乐股票的波动性如何?")
response = companies.chat("每个地区的平均收入是多少?")

# 使用多个数据集查询
result = pai.chat("比较可口可乐和苹果的收入", stocks, companies)

分享与协作 将您的数据层与团队共享:

# 将数据集推送到平台
stocks.push()
companies.push()

团队成员可以通过以下方式访问和查询共享的数据集:

• https://app.pandabi.ai 的网页界面

• 使用自己的 PandaAI 代码,例如 pai.load("organization/dataset-name")

当然,他们只能看到他们有权限访问的数据集。您可以使用权限管理功能来控制访问权限。

使用API访问国产大模型

这段代码展示了如何在使用 PandaAI 时,配置并使用 OpenAI 的语言模型(LLM),特别是将一个名为 deepseek-r1 的模型集成到 PandaAI 的配置中。以下是对代码的逐步解释:

1. 导入必要的模块

import pandasai as pai
from pandasai_openai import OpenAI

import pandasai as pai:导入 PandaAI 库,并将其简称为 pai,以便后续调用其功能。

from pandasai_openai import OpenAI:从 PandaAI 的 OpenAI 扩展模块中导入 OpenAI 类。这个类用于与 OpenAI 的语言模型进行交互。

2. 实例化 OpenAI 类

llm = OpenAI(api_base="xxx", 
             api_token="xxx")

OpenAI(api_base="xxx", api_token="xxx"):创建一个 OpenAI 对象 llm,并传入两个参数:

api_base:指定 OpenAI API 的基础 URL。这通常是 OpenAI 提供的 API 服务地址,但在这里用 "xxx" 占位,需要替换为实际的 API 地址。

api_token:OpenAI API 的认证令牌,用于身份验证。同样,"xxx" 是占位符,需要替换为您的实际 API 密钥。

3. 配置语言模型

llm.model = "deepseek-r1"
llm._supported_chat_models.append(llm.model)

llm.model = "deepseek-r1":将 llm 对象的 model 属性设置为 "deepseek-r1",指定要使用的语言模型为 deepseek-r1

llm._supported_chat_models.append(llm.model):将 deepseek-r1 模型添加到 llm 对象支持的聊天模型列表中。这一步确保 PandaAI 知道可以使用 deepseek-r1 模型进行聊天功能。

4. 配置 PandaAI

pai.config.set({
   "llm":  llm,
   "save_logs": True,
   "verbose": False,
   "max_retries": 3
})

pai.config.set({...}):使用 pai.config.set() 方法设置 PandaAI 的全局配置。

"llm": llm:将前面创建并配置好的 OpenAI 对象 llm 设置为 PandaAI 使用的语言模型。

"save_logs": True:启用日志保存功能,将 PandaAI 的运行日志保存到文件中。这有助于后续的调试和问题排查。

"verbose": False:禁用详细模式,不将日志信息输出到控制台。这可以使输出更加简洁,避免过多的日志信息干扰。

"max_retries": 3:设置最大重试次数为 3。当与语言模型交互时,如果出现错误或失败,PandaAI 最多会重试 3 次。

调用本地大模型

如果你是用Ollama搭建的本地大模型,那么,也可以很方便地进行使用。只需要将对应的 api_base 和 api_token 更换即可。api_base可设置为 http://localhost:11434/v1/,而api_token默认可设置为EMPTY,或者你已指定的token。调用代码参考:

llm = OpenAI(api_base="http://localhost:11434/v1/", api_token="EMPTY")
llm.model = "deepseek-r1:14b"
llm._supported_chat_models.append(llm.model)

其它代码与上相同。

让PandasAI说中文

如图所示,代码中,我们仅仅设置了三个环境变量:PANDABI_API_URL、PANDABI_API_KEY、MODEL,即实现了让 PandasAI 说中文的能力。其实,这里修改了一处源码,稍微调整了一下。使用这个源码就能实现 PandasAI 说中文的功能。有需要的,可以关注我,后台给我留言获取。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paper易论

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值