资讯详情

资讯详情

3 步上线会聊天的数据分析应用:PandasAI + Streamlit 自然语言数据分析完整指南

3 步上线会聊天的数据分析应用PandasAI Streamlit 自然语言数据分析完整指南【免费下载链接】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 搭一个自然语言数据分析的 Web 应用丢进一份 CSV用大白话提问AI 生成代码、执行分析直接把图表画到网页上。方案全景一个补分析一个补界面PandasAI 负责“分析”。它把 pandas 数据交给大模型你输入一句自然语言问题它就生成对应的 Python 代码并执行返回表格、数字或图表——本质是一个“会聊天的数据分析引擎”。但它只在脚本里跑界面是短板。Streamlit 负责“界面”。这个开源库几行代码就能把 Python 脚本变成 Web 应用一个输入框、一块图表区、一个按钮全部由它渲染。但它不懂自然语言不会做分析。两者拼起来链路就通了你提问 → PandasAI 生成并执行代码 → 结果经 Streamlit 渲染到页面。衔接桥梁是一个叫StreamlitResponse的自定义响应解析器原理与写法见 docs/v2/custom-response.mdx。五步跑通最小应用安装依赖一条命令pip install pandasai streamlit准备数据任意一份规范 CSV 放进data/sales.csv。项目结构保持精简4 项够用app.py主入口data/sales.csv数据集config.pyAPI 密钥等配置utils/自研组件后文会用到写最小版app.pyimport pandas as pd import streamlit as st from pandasai import SmartDatalake from pandasai.responses.streamlit_response import StreamlitResponse df pd.read_csv(data/sales.csv) agent SmartDatalake( [df], config{verbose: True, response_parser: StreamlitResponse}, ) question st.text_input(想问数据的什么) if st.button(开始分析) and question: with st.spinner(AI 正在分析...): agent.chat(question)执行streamlit run app.py浏览器打开本地 8501 端口。到这里一个能问答的应用已经跑起来了。自然语言查询实战从提问到出图换一套全新数据感受一下三座城市、三款饮品的月销量。df pd.DataFrame({ city: [北京, 上海, 广州] * 3, item: [拿铁, 美式, 生椰] * 3, cups: [320, 210, 150, 410, 260, 190, 280, 300, 230], }) agent.chat(各城市拿铁销量对比画柱状图) agent.chat(哪个城市总杯数最高)第一句问题执行后AI 先聚合数据再调绘图库柱状图被StreamlitResponse捕获并渲染到页面你能直接看到三个城市的柱高差异第二句返回的是一个带说明的表格。整个过程你一行分析代码都没写。它还能接住追问。比如出完图后再问“把销量最高的城市单独标出来”上下文还在AI 会继续基于同一份数据作答。进阶能力拆解自定义响应与对话记忆自定义响应组件写法默认解析器只负责把结果画出来。想加东西继承它再覆盖一个方法即可。下面的例子在每次返回表格时额外挂一个指标卡和提示语import streamlit as st from pandasai.responses.streamlit_response import StreamlitResponse class StreamlitResponseWithSummary(StreamlitResponse): def format_dataframe(self, result): super().format_dataframe(result) st.metric(结果行数, len(result[value])) st.caption(AI 自动生成可展开核对原始数据)初始化时把config里的response_parser换成新类就生效了。完整机制见 docs/v2/custom-response.mdx。多轮对话记忆实现记忆靠一个参数初始化时传入memory_size如 10Agent 就会保留最近 10 轮对话。这样“刚才那个图里最高的柱子是哪个城市”这类问题才有据可依参数用法可参考 docs/v2/skills.mdx 中的初始化示例。本地启动与团队部署本机运行就一条命令streamlit run app.py --server.port 8501要分享给同事把应用放到一台内网服务器上前面挂一层 Nginx 反向代理并配置 HTTPS 即可路径映射到 8501 端口多实例时由 Nginx 顺带做负载均衡。再往后是插件化扩展PandasAI 提供skill装饰器把任意 Python 函数注册成 Agent 的技能。比如写一个“检查某城市销量环比是否异常”的函数再挂上去用户直接问“广州这个月有没有异常波动”就能触发它业务逻辑随需求增量叠加扩展思路见 docs/v2/skills.mdx。接下来可以做的 3 件事用一份真实订单表哪怕只是一个月替换演示数据依次问“汇总”“对比”“趋势”三类问题验证图表和数字都对得上先建立对结果的信任。把自定义响应组件落到utils/里加指标卡、导出按钮和结果说明让页面从“能看”升级到“好交接”。把数据源从单张 CSV 扩到多表仓库里的 extensions/connectors/sql 提供了 SQL 连接示例接上数据库后这个应用就能覆盖跨表查询场景。【免费下载链接】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),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →