北海市网站建设_网站建设公司_数据备份_seo优化
2025/12/21 6:12:55 网站建设 项目流程

学习内容:

👉课程主题:《项目实战:交互式BI报表》

《项目实战:交互式BI报表》
✅ ChatBI

  • ChatBI的原理
  • 数据采集
  • 可视化组件
  • 查询历史价格
  • 对比分析
  • 热点新闻
    ✅ 智能分析
  • 趋势预测:ARIMA模型(未来N天价格预测)
  • 异常检测:布林带分析(超买/超卖点识别)
  • 周期性分析:Prophet模型(趋势分解)
  • 知识库管理:撰写few shot示例

学习产出:

ChatBI项目技术分析

项目概述

该项目是一个基于自然语言处理和数据分析技术的交互式BI报表系统,专门针对股票数据分析设计。它允许用户通过自然语言查询股票历史数据,并自动生成相应的SQL查询、执行查询、以及可视化结果。

核心功能模块

1. 数据获取模块 (stock_data.py)

该模块负责从TuShare金融数据接口获取股票历史数据:

  • 使用TuShare API获取指定股票的历史价格数据
  • 支持多种股票代码(贵州茅台、五粮液、国泰君安、中芯国际)
  • 数据字段包括:股票名称、股票代码、交易日期、开盘价、最高价、最低价、收盘价、成交量、成交额
  • 将获取的数据保存为Excel文件(stock_history_data.xlsx)和SQL建表语句(stock_history_data.sql)

2. 核心助手模块

项目包含多个版本的股票查询助手,逐步增加功能:

基础版本 (stock_query_assistant.py)
  • 实现基本的SQL查询功能
  • 提供Web界面和命令行界面两种交互方式
  • 支持数据可视化,自动生成图表
增强版本 (stock_query_assistant-2.py)
  • 在基础版本上增加了可视化控制参数
  • 改进了图表生成算法,支持智能选择图表类型
  • 引入MCP服务器配置,支持外部工具集成
预测分析版本 (stock_query_assistant-3.py)
  • 新增ARIMA时间序列预测功能
  • 可以预测指定股票未来n天的收盘价
  • 提供图表展示历史数据和预测结果
异常检测版本 (stock_query_assistant-4.py)
  • 新增布林带异常点检测功能
  • 可识别股票的超买和超卖情况
  • 提供可视化图表展示布林带和异常点
周期分析版本 (stock_query_assistant-5.py)
  • 新增Facebook Prophet周期性分析功能
  • 可分析股票的趋势、周周期性和年周期性
  • 提供完整的周期成分分解图表

3. 工具类实现

ExcSQLTool (exc_sql工具)
  • 注册为exc_sql工具,用于执行SQL查询
  • 连接到MySQL数据库获取股票数据
  • 自动生成数据摘要和可视化图表
  • 支持控制是否需要可视化输出
ArimaStockTool (arima_stock工具)
  • 注册为arima_stock工具,用于时间序列预测
  • 使用ARIMA(5,1,5)模型进行建模
  • 预测未来指定天数的股票收盘价
  • 提供预测结果表格和图表
BollDetectionTool (boll_detection工具)
  • 注册为boll_detection工具,用于布林带分析
  • 计算20日移动平均线和标准差
  • 识别超买(价格高于上轨)和超卖(价格低于下轨)情况
  • 提供详细的异常点列表和可视化图表
ProphetAnalysisTool (prophet_analysis工具)
  • 注册为prophet_analysis工具,用于周期性分析
  • 使用Facebook Prophet进行时间序列分解
  • 分析趋势、周周期性和年周期性成分
  • 提供成分分解图表

4. 可视化模块

项目实现了多种数据可视化功能:

  • 智能图表选择:根据数据特点自动选择合适的图表类型
  • 柱状图和折线图:适用于一般数据展示
  • 时间序列图:适用于股价走势图展示
  • 布林带图:用于异常点检测结果展示
  • 成分分解图:用于周期性分析结果展示

5. 用户界面

项目提供两种用户交互方式:

Web界面
  • 基于qwen_agent.gui.WebUI构建
  • 提供友好的图形用户界面
  • 包含示例查询引导用户使用
  • 支持实时交互和结果展示
命令行界面
  • 提供文本交互方式
  • 适合开发者调试和自动化脚本使用

技术架构

主要依赖库

  • qwen-agent: 阿里通义千问智能体框架
  • dashscope: 阿里云模型服务调用
  • pandas: 数据处理和分析
  • sqlalchemy: 数据库连接和操作
  • matplotlib: 数据可视化
  • tushare: 金融数据接口
  • statsmodels: 统计模型(ARIMA)
  • prophet: 时间序列分析(Facebook Prophet)

数据库设计

CREATETABLEstock_price(idINTAUTO_INCREMENTPRIMARYKEYCOMMENT'自增主键',stock_nameVARCHAR(20)NOTNULLCOMMENT'股票名称',ts_codeVARCHAR(20)NOTNULLCOMMENT'股票代码',trade_dateVARCHAR(10)NOTNULLCOMMENT'交易日期',openDECIMAL(15,2)COMMENT'开盘价',highDECIMAL(15,2)COMMENT'最高价',lowDECIMAL(15,2)COMMENT'最低价',closeDECIMAL(15,2)COMMENT'收盘价',volDECIMAL(20,2)COMMENT'成交量',amountDECIMAL(20,2)COMMENT'成交额',UNIQUEKEYuniq_stock_date(ts_code,trade_date));

系统流程

  1. 用户通过自然语言提出查询请求
  2. 助手解析用户意图,生成相应的SQL语句或调用相应工具
  3. 执行SQL查询或调用分析工具进行数据处理
  4. 将结果以表格和图表形式展示给用户

特色功能

自然语言交互

  • 用户可以使用自然语言查询复杂的股票数据
  • 系统能够理解用户的查询意图并转化为具体操作

多维度分析

  • 历史数据查询
  • 时间序列预测
  • 异常点检测
  • 周期性分析

智能可视化

  • 根据数据特征自动选择合适的图表类型
  • 提供丰富的图表展示方式
  • 支持多种分析结果的可视化呈现

可扩展架构

  • 基于工具注册机制,易于添加新功能
  • 支持MCP协议,可集成外部工具
  • 模块化设计,便于维护和升级

应用价值

这个ChatBI项目展示了如何将大型语言模型与数据分析技术结合,构建一个智能化的商业智能系统。它可以帮助金融分析师、投资者和研究人员:

  1. 快速获取和分析股票数据
  2. 进行价格趋势预测
  3. 识别异常交易信号
  4. 发现数据中的周期性规律
  5. 通过自然语言交互降低数据分析门槛

整个系统体现了现代AI技术在金融数据分析领域的应用潜力,为构建更加智能和易用的BI系统提供了有价值的参考。

Q & A

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询