Streamlit ollama 开发一个股票助手

AI Stock 助手应用程序

本文将介绍一个使用 Streamlit 构建的 AI 股票助手应用程序。该应用程序能够实时更新股票数据,并提供市场分析和见解。以下是代码的详细说明和注释。

代码结构

1. 导入必要的库

import streamlit as st
import pandas as pd
import schedule
import time
import ollama
from datetime import datetime, timedelta
  • streamlit: 用于构建Web应用程序的库。
  • pandas: 用于数据处理和分析的库。
  • schedule: 用于定时任务调度的库。
  • time: 提供时间相关的功能。
  • ollama: 用于生成自然语言响应的模型。
  • datetime: 用于处理日期和时间的模块。

2. 设置Streamlit用户界面

# Streamlit UI
st.title("AI Stock 助手")
logtxtbox = st.empty()
  • 使用 st.title() 设置应用程序的标题。
  • logtxtbox 是一个空的占位符,用于后续显示当前时间。

3. 读取和处理股票数据

# 读取 stock.cxv 文件
file_path = './stock.csv'  # 请替换为您的文件路径
data = pd.read_csv(file_path)

# 将数据转换为适合处理的格式
data['Date'] = pd.to_datetime(data['Date'])  # 确保日期列为 datetime 类型
data.set_index('Date', inplace=True)  # 将日期设置为索引
  • 从 CSV 文件中读取股票数据,并将日期列转换为 datetime 类型。
  • 将日期设置为数据框的索引,以便后续分析。

4. 读取道琼斯数据

# 读取 Dow 数据文件
dow_file_path = './stock.csv'  # 请替换为您的 Dow 数据文件路径
dow_data = pd.read_csv(dow_file_path)

# 将 Dow 数据转换为适合处理的格式
dow_data['Date'] = pd.to_datetime(dow_data['Date'])  # 确保日期列为 datetime 类型
dow_data.set_index('Date', inplace=True)  # 将日期设置为索引
  • 同样读取道琼斯指数的数据,并进行相同的格式转换。

5. 初始化变量

# 使用读取的数据替换 yf.Ticker
rolling_window = data[['Close']].copy()  # 复制收盘价数据

# 计算每日的高低价
daily_high = rolling_window['Close'].max()
daily_low = rolling_window['Close'].min()

# Global variables to store rolling data for analysis
rolling_window = pd.DataFrame()
dow_rolling_window = pd.DataFrame()

# Variables to track daily context
daily_high = float('-inf')
daily_low = float('inf')
buying_momentum = 0
selling_momentum = 0
  • 初始化用于存储滚动数据的变量,并计算每日的最高价和最低价。

6. 定义处理股票更新的函数

# Function to process a new stock update every minute
def process_stock_update():
    global rolling_window, data, dow_rolling_window, dow_data
    global daily_high, daily_low, buying_momentum, selling_momentum

    if not data.empty and not dow_data.empty:
        # Simulate receiving a new data point for AAPL and Dow Jones
        update = data.iloc[0].to_frame().T
        # 获取当前时间并格式化
        current_time = datetime.now().strftime("%H:%M:%S")
        logtxtbox.caption(current_time)  # 更新显示的时间
        dow_update = dow_data.iloc[0].to_frame().T
        data = data.iloc[1:]  # Safely remove the first row without causing index issues
### 关于 StreamlitOllama 的集成、使用或比较 #### Streamlit 简介 Streamlit 是一种用于构建机器学习和数据科学 Web 应用程序的开源框架。它允许开发者通过简单的 Python 脚本创建交互式的仪表板和应用程序,极大地简化了开发流程并提高了效率[^1]。 ```python import streamlit as st st.title('My First App') st.write("Here's our first attempt at using data to create a table:") st.write(pd.DataFrame({ 'first column': [1, 2, 3, 4], 'second column': [10, 20, 30, 40] })) ``` #### Ollama 平台概述 Ollama 提供了一个平台和服务来管理和优化容器化应用的工作负载调度。该服务特别适用于微服务体系结构中的复杂部署场景,在这些场景下需要精细控制资源分配以及提高性能表现[^2]。 #### 集成可能性分析 尽管两者来自不同领域——一个前端可视化工具,另一个是后端编排解决方案;但在某些特定情况下可以考虑它们之间的协作: - **监控与管理界面**:利用 Streamlit 构建直观易用的操作面板连接到运行在 Ollama 上的应用实例; - **日志查看器**:借助 Streamlit 实现对由 Ollama 处理的日志文件进行实时展示的功能模块; - **配置编辑器**:提供基于浏览器环境下的 YAML 文件在线修改能力给管理员们用来调整其 Kubernetes 或其他容器集群设置[^3]。 #### 使用案例探讨 对于希望快速搭建原型或者小型项目团队来说,这种组合能够带来极大的便利性和灵活性。例如在一个物联网(IoT)设备管理系统中,工程师可以通过编写少量Python代码迅速得到一个功能齐全的数据呈现页面,并且这个页面背后依赖着强大而稳定的Kubernetes作为支撑底座来进行大规模传感器节点间的通信协调工作[^4]。 #### 技术对比考量 当评估这两个技术栈时,应该注意到各自的优势所在: | 特性 | Streamlit | Ollama | | --- | --- | --- | | 主要用途 | 数据可视化/报告生成功能 | 容器编排及自动化运维 | | 编程语言支持 | Python为主 | 支持多种编程语言 | | 学习曲线 | 较低,适合初学者入门 | 中等到高难度的学习过程 | 综上所述,虽然 StreamlitOllama 属于完全不同的软件类别,但二者可以在适当条件下相互补充以满足更广泛的需求范围。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老大白菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值