基于Streamlit+AI Agent的云南省天气数据可视化分析系统产品系统Vibe Coding

我要开发同款
xiaoxue-ixue2026年08月13日
11阅读

技术信息

语言技术
Python
系统类型
Web
行业分类
人工智能项目任务

作品详情

行业场景

云南省气候类型多样,天气数据对农业种植、旅游出行、灾害预警等领域具有重要参考价值。传统天气数据查询方式缺乏直观的可视化分析和智能问答能力,用户难以快速获取有价值的天气趋势信息。

本项目旨在解决天气数据采集难、分析门槛高、交互体验差的问题,通过网络爬虫自动采集云南省各城市2015年以来的历史天气数据,经过数据清洗和特征工程处理后,提供多维度的可视化分析仪表盘,并基于随机森林算法实现气温预测。同时集成AI大模型,支持自然语言问答和图表自动解读,降低数据分析门槛,让非技术人员也能轻松查询和理解天气数据趋势。

功能介绍

1. 数据采集模块:从天气后报网站爬取云南省各城市历史天气数据,支持增量采集、自动去重,数据存储至SQLite数据库。

2. 数据处理模块:完整的数据清洗流程,包括重复值检测删除、日期特征提取(年/月/日/周/季节)、风力等级标准化、缺失值向前填充、温度格式转换、数据类型统一,输出高质量结构化数据。

3. 数据可视化分析模块:支持按城市、年份、月份多维度筛选,提供气温变化趋势折线图、风力分布柱状图、风向分布条形图、天气类型词云图、综合仪表盘(关键指标卡片+多图表组合),支持图表/数据两种展示模式切换。

4. 气温预测模块:基于随机森林回归算法,选择7个特征(城市、年月日、周、季节、年积日)进行模型训练,支持最高温和最低温预测。提供模型评估(MAE/MSE/RMSE/R²)、误差分布直方图、真实值与预测值对比折线图、特征重要性分析,用户可输入城市和日期实时预测气温。

5. AI智能问答助手:基于Dify+通义千问云端大模型,支持自然语言查询天气数据,本地统计引擎+云端AI双重保障,提供对话历史记录和示例问题快速访问。

6. AI图表解读:集成通义千问Qwen-VL多模态模型,自动识别图表类型并生成专业解读报告,包含图表基础信息、核心分析和结论。

7. 数据导出:综合仪表盘支持一键导出当前筛选数据为CSV文件,方便后续使用。

项目实现

我独立负责项目的全部开发工作,包括需求分析、架构设计、爬虫开发、数据处理、可视化分析、机器学习建模、AI 集成和前端交互页面开发。

技术栈:Python 3.13 + Streamlit + Pandas + Scikit-learn + Matplotlib + Seaborn + Plotly + Requests + BeautifulSoup + Dify API + SQLite

架构设计:采用三层架构,展示层使用 Streamlit 构建交互式 Web 应用,业务逻辑层按功能拆分为数据采集、数据处理、可视化分析、气温预测、AI 问答、AI 图表解读 6 个独立模块,数据层使用 SQLite 持久化存储。

实现亮点:
1. 增量爬虫:自动检测已采集数据,避免重复爬取,支持断点续采
2. 8 步数据清洗流水线:重复值处理、日期特征提取、天气类型简化、风力等级标准化、缺失值填充、温度格式化、类型转换,输出高质量结构化数据
3. 随机森林气温预测:选择 7 个特征进行目标编码,80/20 划分训练测试集,4 项指标评估(MAE/MSE/RMSE/R²),支持特征重要性分析和误差分布可视化
4. AI 双引擎:Dify + Qwen3 实现自然语言问答,Qwen-VL 多模态模型实现图表自动解读,本地统计引擎 + 云端 AI 双重保障
5. 综合仪表盘:关键指标卡片 + 多图表组合 + 数据导出功能

难点与解决:
1. 风力等级格式不统一(如"3-4级级"多了一个字),通过建立标准化映射字典解决
2. AI 图表解读需要先保存图表为图片再传入多模态模型,通过 Matplotlib savefig + 临时文件方案解决
3. 爬虫增量采集需要高效去重,通过城市+年月组合唯一键检测解决

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论