AI大模型应用开发学习-24【20251220】

学习内容:

👉课程主题:《项目实战:交互式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)

数据库设计

sql 复制代码
CREATE TABLE stock_price (
    id INT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
    stock_name VARCHAR(20) NOT NULL COMMENT '股票名称',
    ts_code VARCHAR(20) NOT NULL COMMENT '股票代码',
    trade_date VARCHAR(10) NOT NULL COMMENT '交易日期',
    open DECIMAL(15,2) COMMENT '开盘价',
    high DECIMAL(15,2) COMMENT '最高价',
    low DECIMAL(15,2) COMMENT '最低价',
    close DECIMAL(15,2) COMMENT '收盘价',
    vol DECIMAL(20,2) COMMENT '成交量',
    amount DECIMAL(20,2) COMMENT '成交额',
    UNIQUE KEY uniq_stock_date (ts_code, trade_date)
);

系统流程

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

特色功能

自然语言交互

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

多维度分析

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

智能可视化

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

可扩展架构

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

应用价值

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

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

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

Q & A

相关推荐
何事误红尘1 小时前
Mqtt学习笔记(一):Mosquitto服务器搭建、MQTTX安装测试
学习
青山是哪个青山1 小时前
LangChain 学习笔记(三):LangSmith 调试与监控
笔记·学习·langchain
那年窗外下的雪.3 小时前
AIDC 学习日志 第 04 天 BGP Underlay 基础与路由选择
服务器·学习·php
蒸蒸yyyyzwd3 小时前
cpp选手备战后端学习笔记day6 秋招笔试题
笔记·学习
weixin_446260855 小时前
AVA-Encoder:面向智能体原生视频表征学习框架
学习·音视频
吃好睡好便好6 小时前
说说口罩的佩戴
学习·生活·口罩
fīɡЙtīиɡ ℡6 小时前
大模型结构化输出
人工智能·学习
Dave1205467 小时前
Day17:Agent Memory高级设计——短期记忆、长期记忆与向量语义记忆
人工智能·学习
小唔w7 小时前
2026年AI培训行业观察:主流学习渠道一览
人工智能·学习
Nan_Shu_6148 小时前
学习:MapVGL 地理信息可视化
学习