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

相关推荐
星火开发设计4 小时前
类型别名 typedef:让复杂类型更简洁
开发语言·c++·学习·算法·函数·知识
Gorgous—l4 小时前
数据结构算法学习:LeetCode热题100-多维动态规划篇(不同路径、最小路径和、最长回文子串、最长公共子序列、编辑距离)
数据结构·学习·算法
Hello_Embed5 小时前
libmodbus 移植 STM32(基础篇)
笔记·stm32·单片机·学习·modbus
●VON5 小时前
Flutter for OpenHarmony 21天训练营 Day03 总结:从学习到输出,迈出原创第一步
学习·flutter·openharmony·布局·技术
香芋Yu6 小时前
【大模型教程——第四部分:大模型应用开发】第1章:提示工程与上下文学习 (Prompt Engineering & ICL)
学习·prompt
LYS_06186 小时前
寒假学习10(HAL库1+模数电10)
学习
runningshark6 小时前
【项目】示波器学习与制作
学习
€8116 小时前
Java入门级教程24——Vert.x的学习
java·开发语言·学习·thymeleaf·数据库操作·vert.x的路由处理机制·datadex实战
自可乐6 小时前
n8n全面学习教程:从入门到精通的自动化工作流引擎实践指南
运维·人工智能·学习·自动化