跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

使用 GPT 4o with Canvas 构建金融预测 Streamlit 应用

综述由AI生成介绍如何利用 GPT 4o with Canvas 辅助开发一个基于 Streamlit 的金融股票价格预测应用。通过集成 Yahoo Finance 数据获取和 LSTM 机器学习模型,实现交互式可视化展示与未来一周股价预测。文章涵盖环境搭建、代码编写及部署流程,展示了 AI 编程助手在快速构建数据科学应用中的实际应用价值。

www发布于 2025/2/7更新于 2026/6/221 浏览
使用 GPT 4o with Canvas 构建金融预测 Streamlit 应用

使用 GPT 4o with Canvas 构建金融预测 Streamlit 应用

ChatGPT 今年发布了多个模型,其中 GPT 4o 结合 Canvas 功能为开发者提供了强大的辅助编程能力。本文将探索如何利用 GPT 4o with Canvas 快速构建一个预测股票价格的 Streamlit Web 应用。

什么是 Streamlit?

Streamlit 是一种极其有用且快速的方法,可以在几分钟内构建你的 Web 应用。它允许数据科学家和开发人员仅使用 Python 代码即可创建交互式组件(如按钮、滑块和文本输入),无需复杂的 Web 开发知识。这使得它成为展示模型或交互式探索数据集的首选工具。

项目准备

首先,我们需要准备开发环境。确保已安装 Python 3.x,并创建一个新的 GitHub 仓库用于托管代码。

依赖安装

创建一个 requirements.txt 文件,包含以下依赖:

streamlit
yfinance
pandas
numpy
scikit-learn
tensorflow
plotly

核心代码实现

使用 GPT 4o with Canvas 可以生成大部分逻辑代码。以下是完整的 app.py 实现,集成了数据获取、LSTM 模型训练及可视化界面。

import streamlit as st
import yfinance as yf
import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, LSTM, Dropout
import datetime
import plotly.graph_objects as go

st.title('金融股票价格预测')
st.sidebar.header('用户参数')

def load_data(ticker):
    end = datetime.datetime.now()
    start = datetime.datetime(end.year - 1, end.month, end.day)
    data = yf.download(ticker, start=start, end=end)
    return data

def preprocess_data(data, look_back=60):
    scaler = MinMaxScaler(feature_range=(0, 1))
    scaled_data = scaler.fit_transform(data['Close'].values.reshape(-1, 1))
    
    x, y = [], []
    for i in range(look_back, len(scaled_data)):
        x.append(scaled_data[i-look_back:i])
        y.append(scaled_data[i])
    return np.array(x), np.array(y), scaler

def build_model(input_shape):
    model = Sequential()
    model.add(LSTM(units=50, return_sequences=True, input_shape=input_shape))
    model.add(Dropout(0.2))
    model.add(LSTM(units=50))
    model.add(Dropout(0.2))
    model.add(Dense(units=25))
    model.add(Dense(units=1))
    model.compile(optimizer='adam', loss='mean_squared_error')
    return model

@st.cache_data
def run_prediction(ticker):
    try:
        df = load_data(ticker)
        if df.empty:
            return None, None, None
        
        x, y, scaler = preprocess_data(df)
        
        if len(x) < 10:
            return None, None, None
            
        model = build_model((x.shape[1], 1))
        model.fit(x, y, epochs=10, batch_size=32, verbose=0)
        
        last_days = x[-1:]
        pred_scaled = model.predict(last_days)
        pred_price = scaler.inverse_transform(pred_scaled)[0][0]
        
        history = df['Close'].tail(60).values
        future_dates = pd.date_range(start=df.index[-1], periods=7, freq='D')
        predictions = [pred_price] 
        
        return history, predictions, future_dates
    except Exception as e:
        st.error(f"发生错误:{e}")
        return None, None, None

ticker = st.sidebar.text_input("股票代码", value="AAPL")
if st.button("开始预测"):
    history, predictions, future_dates = run_prediction(ticker)
    
    if history is not None:
        fig = go.Figure()
        fig.add_trace(go.Scatter(x=pd.to_datetime(history.index), y=history, name='历史价格'))
        fig.add_trace(go.Scatter(x=future_dates, y=predictions, name='预测价格', mode='lines+markers'))
        st.plotly_chart(fig)
        
        st.write(f"预测下一周价格约为:${predictions[0]:.2f}")
    else:
        st.warning("无法获取数据或处理失败,请检查股票代码。")

运行与部署

本地测试

保存上述代码为 app.py,并在终端运行:

streamlit run app.py

浏览器将自动打开应用界面。

云端部署

  1. 将代码上传至 GitHub 公共仓库。
  2. 登录 Streamlit Cloud,选择'New App'。
  3. 连接 GitHub 仓库并指定 app.py 作为入口文件。
  4. 点击部署,应用将在几分钟后上线。

总结

利用 GPT 4o with Canvas 能够显著降低开发门槛,快速生成高质量的数据科学应用原型。通过本教程,我们实现了从数据获取到模型预测的全流程自动化,展示了 AI 编程助手在实际金融场景中的应用潜力。

目录

  1. 使用 GPT 4o with Canvas 构建金融预测 Streamlit 应用
  2. 什么是 Streamlit?
  3. 项目准备
  4. 依赖安装
  5. 核心代码实现
  6. 运行与部署
  7. 本地测试
  8. 云端部署
  9. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • FunASR 语音识别 WebUI 本地部署与使用详解
  • ROS2 在 RViz 中可视化 URDF 机器人模型
  • Coze 与 Dify 低代码 AI 平台深度对比
  • 大语言模型(LLM)微调方法总结
  • 能源化工企业加速落地大模型:从勘探到生产的全流程智能化
  • Python Web 开发:Flask 框架入门与实战
  • Python 异步编程与协程实战指南
  • 数据结构基础:树的概念与堆的实现详解
  • SpringBoot 集成 LangChain4j 本地调用 Ollama
  • 自然语言处理在金融领域的应用与实战
  • C++ STL string 模拟实现(下):字符串操作与运算符重载
  • Perplexity 揭秘:AI 时代顶级团队的工作模式与协作范式
  • 异构数据迁移实战:DataX 与 DataX-Web 部署指南
  • Python 布尔类型基础
  • acge_text_embedding 文本向量化模型详解与 C-MTEB 评测分析
  • 全栈开发的演变:从 LAMP 到 MEAN 再到现代 JavaScript
  • 深入理解 Web Worker:Web 应用多线程实践
  • 从零搭建 SpringBoot 项目详解
  • 从 API 到 Agent:LangChain 工程化设计详解
  • learn-claude-code 开源项目解析:AI Agent 原理与实战入门

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online