news 2026/9/5 21:59:02

PandasAI 集成 Streamlit:三步搭出自然语言数据分析 Web 应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PandasAI 集成 Streamlit:三步搭出自然语言数据分析 Web 应用

PandasAI 集成 Streamlit:三步搭出自然语言数据分析 Web 应用

【免费下载链接】pandas-aiChat with your database or your datalake (SQL, CSV, parquet). PandasAI makes data analysis conversational using LLMs and RAG.项目地址: https://gitcode.com/GitHub_Trending/pa/pandas-ai

PandasAI 让数据会"说话",Streamlit 把结果变成网页,两者组合后你用自然语言问数,图表当场渲染。本教程适合刚接触数据分析的朋友,跟着做一遍,十分钟内就能拥有一个可上线的问数工具。

成品速览:先看看你要的东西长什么样

想象这样一个场景:运营同事在输入框里敲下"按部门统计平均工资并绘图",几秒钟后页面上蹦出一张柱状图——全程没人写一行代码。

上面就是最终效果。接下来我带你把它做出来。

三分钟原理:问句是怎么变成图表的

这一节不堆术语,只讲清楚链路。你输入的自然语言先交给 PandasAI 的 SmartDatalake(可以理解为"会思考的数据池",它知道池里每张表的字段长什么样)。SmartDatalake 让大模型把问题翻译成一段针对数据的 Python 代码并执行,得到数值、表格或图表。默认情况下结果只会打印在终端里,但官方提供了 StreamlitResponse 解析器,一挂载,这些结果就直接变成网页上的组件。官方集成示例在 docs/v2/custom-response.mdx,想深挖细节可以对照看。

三步启动数据对话

第一步:装好环境(两行命令搞定)

先用 git clone https://gitcode.com/GitHub_Trending/pa/pandas-ai 拿到仓库(仅用于查文档和示例数据),然后执行:

pip install pandasai pandasai-litellm pip install streamlit export OPENAI_API_KEY=你的密钥

这三行装好了核心库、LLM 适配层和网页框架。目录结构不用讲究,记住三个位置就行:一个 app.py 当入口、一个 data 文件夹放数据集、一个 utils 文件夹装你的自定义组件。

第二步:接入数据、开始提问

在 app.py 里把两张表喂给 SmartDatalake,并把 StreamlitResponse 写进配置:

from pandasai import SmartDatalake from pandasai.responses.streamlit_response import StreamlitResponse agent = SmartDatalake( [employees_df, salaries_df], config={"verbose": True, "response_parser": StreamlitResponse}, )

这两张表就是员工信息和工资表(示例数据仓库里有现成的 CSV 可换用)。response_parser指定了结果走 Streamlit 通道渲染。

接着搭交互界面,只有几行:

st.text_input("想问数据点什么?") if st.button("开始分析"): agent.chat("按部门统计平均工资并绘图")

保存后刷新页面,问题一提交,图表或表格就出现在浏览器里。

第三步:让结果更可控

默认解析器已经把结果渲染成 Streamlit 组件了,想再改什么?记住一个口诀:继承 StreamlitResponse,只覆写你嫌它做得不对的那个方法。比如想给每次分析加个"导出 CSV"按钮,就覆写 format_dataframe,先调用父类方法保留默认表格,再补一个下载控件;想改图表布局同理,找到对应方法动手即可。具体方法签名在 docs/v2/custom-response.mdx 里,照着抄就行。

进阶两招:多轮记忆与自定义技能

这一节给你两个"从能用变好用"的开关。

🧠 两招做出多轮记忆:提问时带上上下文("上一张图里 IT 部门最高的是谁"),前提是让 Agent 记住历史。实例化时加一个 memory_size 参数(比如 10 轮),后续问题就能引用前面的结论。多轮对话的完整写法参考 docs/v2/custom-response.mdx 中段的示例。

🧩 教它新本领:把写好的函数挂上 @skill 装饰器,用 docstring 说明它是干什么的,再传给 agent 的技能列表,模型就会在合适的时候自己调用它——比如"检测工资异常值"这类固定业务逻辑。完整实现(含往 Streamlit 里画图的技能)见 docs/v2/skills.mdx。

部署与避坑:一条命令上线,两个坑先填上

启动就一行:

streamlit run app.py

默认监听 8501 端口,浏览器打开 http://localhost:8501 即可。常见坑有两个:一是端口被占,加--server.port换到 8502 或别的空闲端口;二是依赖版本打架,pandasai 目前要求 Python 3.8 到 3.11,建议单独开个虚拟环境装依赖,别和项目里其他库混用。

收尾:你刚刚上线了什么

到这里,你已经把"问一句、出一图"的自然语言数据分析服务跑在了浏览器里,同事打开链接就能用。接下来可以继续往三个方向长:接入图片和文本等多模态数据、加上账号与权限控制、换成实时数据源。代码就放在你本地,现在就 streamlit run 起来试试吧。

【免费下载链接】pandas-aiChat with your database or your datalake (SQL, CSV, parquet). PandasAI makes data analysis conversational using LLMs and RAG.项目地址: https://gitcode.com/GitHub_Trending/pa/pandas-ai

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 21:54:18

5 步跑通 ino:Arduino 命令行开发工具入门指南

5 步跑通 ino:Arduino 命令行开发工具入门指南 【免费下载链接】slint Slint is an open-source declarative GUI toolkit to build native user interfaces for Rust, C, JavaScript, or Python apps. 项目地址: https://gitcode.com/GitHub_Trending/sl/slint …

作者头像 李华
网站建设 2026/9/5 21:54:11

基于YOLOv8与CNN的车牌识别系统:从原理到工程实践全解析

简介:这是一套面向计算机及相关专业本科生的毕业设计级车牌识别系统源码,融合YOLOv8目标检测与CNN字符识别双模型,专为大作业、毕设及AI项目实战学习者设计,解决真实场景下车牌定位与OCR识别两大核心问题。资源包共425个文件&…

作者头像 李华
网站建设 2026/9/5 21:51:49

如何为AI编程助手写一份AGENTS.md指引文件:三步初始化指南

如何为AI编程助手写一份AGENTS.md指引文件:三步初始化指南 【免费下载链接】agents.md AGENTS.md — a simple, open format for guiding coding agents 项目地址: https://gitcode.com/GitHub_Trending/ag/agents.md 你有没有遇到过这种场景:让A…

作者头像 李华
网站建设 2026/9/5 21:43:30

中医脉象识别系统:Python实现物理模型+轻量网络双轨架构

简介:本资源是一套面向中医智能化研究者与Python医疗AI开发者的脉象识别系统源码,聚焦于将传统中医脉诊数字化、模型化,解决脉位、脉率、脉形等多维特征的自动识别与分类问题,适用于辅助诊断系统开发、中医药信息化教学及机器学习…

作者头像 李华