ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

手把手用 PandasAI + Streamlit 搭建自然语言查数据的 AI 数据分析 Web 应用

2026/9/5 15:48:11 拓冰建站 浏览量
手把手用 PandasAI + Streamlit 搭建自然语言查数据的 AI 数据分析 Web 应用 手把手用 PandasAI Streamlit 搭建自然语言查数据的 AI 数据分析 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把结果画进网页就搭出一个能自然语言查数据的 AI 数据分析 Web 应用。这篇文章带你从零跑通全流程。30秒看懂两者如何配合整条链路只有一句话你在页面里输入自然语言 → PandasAI 让 LLM 生成 Python/SQL 并执行 → Streamlit 把结果渲染成表格、图表或数字。环节承担者做什么理解问题、生成代码PandasAI把按部门算平均工资翻译成可执行代码安全执行、产出结果PandasAI 沙箱跑代码得到 DataFrame / 图表 / 数字展示与交互Streamlit输入框、按钮、表格、图表、导出你不需要写分析脚本只需要维护数据加载和页面两块代码。从零到第一次AI数据问答 三步跑起第一个 AI 问答。第一步装依赖pip install pandas-ai streamlit记得配置 LLM 密钥如OPENAI_API_KEYPandasAI 依赖它理解你的问题。第二步初始化智能数据湖把数据表交给SmartDatalakeSmartDataframe的升级版可挂载多张表并关联查询import pandas as pd from pandasai import SmartDatalake sales_df pd.read_csv(data/sales.csv) agent SmartDatalake( [sales_df], config{verbose: True}, )verbose打开后控制台会打印 AI 生成的代码调试问题特别有用。第三步提出第一个问题agent.chat(按部门统计平均工资并画出柱状图)运行到这一步AI 就完成了理解 → 写码 → 执行 → 出图的闭环。接下来把它搬进网页。让AI分析结果直接在页面呈现用 StreamlitResponse 自动渲染结果默认情况下chat()把结果返回给 Python。想让结果直接出现在页面上把StreamlitResponse挂到配置里即可from pandasai import SmartDatalake from pandasai.responses.streamlit_response import StreamlitResponse agent SmartDatalake( [sales_df], config{ verbose: True, response_parser: StreamlitResponse, }, )之后在 Streamlit 页面里这样接住用户输入import streamlit as st question st.text_input(你想分析什么) if st.button(开始分析) and question: with st.spinner(AI 正在分析…): agent.chat(question) # 结果自动渲染到页面DataFrame、图表、数字会被自动识别并转成对应的 Streamlit 组件。自定义导出 CSV 组件想给结果加个下载按钮继承ResponseParser覆盖format_dataframe方法from pandasai.responses.streamlit_response import StreamlitResponse class ExportableResponse(StreamlitResponse): def format_dataframe(self, result): super().format_dataframe(result) st.download_button( 导出 CSV, dataresult[value].to_csv(indexFalse).encode(), file_nameresult.csv, mimetext/csv, )初始化时把response_parser: ExportableResponse传入配置即可。更多写法参考自定义响应文档。基于会话状态的多轮追问AI 分析天然需要上下文IT 部门最高工资是多少 这种问句脱离上一轮就没意义。两种做法用agent.follow_up(IT 部门最高工资是多少)在同一个 Agent 上继续提问保留对话记忆用st.session_state存历史问题页面上渲染成对话流并允许重新分析时带着上下文再跑一遍。两者结合就是完整的多轮追问体验。从本地运行到生产可用本地启动只要一条命令streamlit run app.py --server.port 8501上生产环境注意三件事HTTPS 与反向代理用 Nginx 反代到 Streamlit证书挂在 Nginx 上Streamlit 侧设置server.address绑内网端口即可。密钥不落代码LLM 的 API Key 走环境变量或密钥管理服务别写进app.py。按技能机制扩展PandasAI 支持用skill装饰器注册自定义函数AI 可以按需调用。比如写一个调用st.plotly_chart的技能AI 分析到趋势类问题时就会触发它输出交互图表。做法见官方 skills 文档。常见坑与优化建议AI 理解错字段怎么办列名是 AI 的主要依据。把region改成region_name、把客单这类业务黑话换成标准名准确率会明显提升也可在create()时为列补充 description。大表加载慢避免把千万行 CSV 整个塞进内存。优先用 SQL 数据源或 parquet 格式让查询下推到数据库页面只展示聚合后的结果。多轮上下文丢失Agent 实例如果每次请求都重建记忆就清零了。把 Agent 放进st.session_state复用或改用follow_up()。AI 生成的代码不安全生产部署建议启用 Docker 沙箱执行代码AI 生成的 Python 不会直接跑在你的宿主机上相关配置见仓库的extensions/sandbox/docker/目录。结果偶发不一致把温度调低并在问题里写清口径近 90 天按自然月汇总比反复重试更有效。写在最后这套组合的价值一句话把提需求—写脚本—出图的链路压缩成一句话数据团队从重复取数里解放出来。跑通之后可以往三个方向深入接上生产数据库做实时查询、用 skills 沉淀团队常用的分析套路、给页面加上登录与权限控制让它真正能交给业务团队日常使用。【免费下载链接】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),仅供参考