> 技术文档 > PandasAI V3 中文对话功能体验:结合 DeepSeek-R1 与本地大模型,开启智能数据分析新旅程_pandasai调用本地大模型接口

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

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\"# 替代:使用 pippip 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 paifrom 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 说中文的功能。有需要的,可以关注我,后台给我留言获取。