基于Kronos金融大模型的A股日线预测分析系统
本项目是一个基于Kronos金融大模型的A股股票预测分析系统,提供智能的股票走势预测功能。系统采用前后端分离架构,后端使用FastAPI构建RESTful API,前端使用现代化的Web界面。
kronos-ai/
├── backend/ # 后端服务
│ ├── app/
│ │ ├── services/ # 业务逻辑服务
│ │ │ ├── kronos_integration.py # Kronos模型集成(加载/卸载/预测)
│ │ │ ├── model_manager.py # 模型管理器(单例,支持切换)
│ │ │ ├── prediction_service.py # 预测服务
│ │ │ └── stock_service.py # 股票数据服务
│ │ └── utils/ # 工具函数
│ ├── model/ # Kronos模型定义
│ │ ├── kronos.py # Kronos模型实现
│ │ └── module.py # 模型模块
│ ├── main.py # FastAPI主应用
│ ├── config.py # 配置文件
│ ├── requirements.txt # Python依赖
│ ├── Dockerfile # Docker配置
├── frontend/ # 前端应用(React + TypeScript)
│ ├── src/
│ │ ├── components/ # React组件
│ │ │ ├── KLineChart.tsx # K线图组件
│ │ │ ├── ModelStatus.tsx # 模型状态和切换组件
│ │ │ ├── PlotlyKLineChart.tsx # Plotly K线图
│ │ │ ├── PredictionForm.tsx # 预测表单
│ │ │ └── PredictionTable.tsx # 预测结果表格
│ │ ├── services/
│ │ │ └── api.ts # API调用封装
│ │ ├── types/
│ │ │ └── index.ts # TypeScript类型定义
│ │ ├── App.tsx # 主应用组件
│ │ ├── App.css
│ │ ├── index.tsx # 入口文件
│ │ └── index.css
│ ├── package.json # npm依赖
│ ├── tsconfig.json # TypeScript配置
│ ├── Dockerfile # Docker配置
├── docker-compose.yml # Docker Compose配置
├── docker-start.sh # Docker启动脚本
├── docker-stop.sh # Docker停止脚本
├── start.sh # 启动脚本
├── stop.sh # 停止脚本
├── quick-start.sh # 快速启动脚本
└── README.md # 项目说明
后端核心模块:
kronos_integration.py: Kronos模型的底层集成,处理模型加载、卸载、预测等操作model_manager.py: 模型管理器(单例模式),提供统一的模型访问接口,支持模型切换prediction_service.py: 预测服务,协调股票数据和模型预测stock_service.py: 股票数据服务,集成Baostock等数据源前端核心组件:
ModelStatus.tsx: 模型状态展示和切换界面,支持查看当前模型、切换模型、重新加载PredictionForm.tsx: 股票预测表单,用户输入股票代码和预测天数KLineChart.tsx: K线图可视化组件api.ts: 封装所有后端API调用git clone https://github.com/raydez/kronos-ai.git
cd kronos-ai
cd backend
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# 返回项目根目录
cd ..
# 使用启动脚本
./start.sh
或者手动启动:
# 启动后端
cd backend
source .venv/bin/activate # Windows: .venv\Scripts\activate
python main.py
# 启动前端(新终端)
cd frontend
python3 -m http.server 3000
./stop.sh
| 接口 | 方法 | 描述 |
|---|---|---|
/predict | POST | 股票预测 |
/stock/{code} | GET | 获取股票信息 |
/stock/{code}/history | GET | 获取历史数据 |
/batch-predict | POST | 批量预测 |
/model/info | GET | 获取模型信息 |
/model/available | GET | 获取可用模型列表 |
/model/reload | POST | 重新加载当前模型 |
/model/switch | POST | 切换到指定模型 |
/health | GET | 健康检查 |
股票预测
curl -X POST "http://localhost:8000/predict" \
-H "Content-Type: application/json" \
-d '{"code": "600000", "prediction_days": 5}'
获取股票信息
curl -X GET "http://localhost:8000/stock/600000"
获取可用模型列表
curl -X GET "http://localhost:8000/model/available"
切换模型
curl -X POST "http://localhost:8000/model/switch" \
-H "Content-Type: application/json" \
-d '{"model_name": "kronos-base"}'
重新加载模型
curl -X POST "http://localhost:8000/model/reload"
系统支持3个不同规格的Kronos模型,可根据需求灵活切换:
| 模型名称 | 参数规模 | 上下文长度 | 特点 | 适用场景 |
|---|---|---|---|---|
| kronos-mini | 4.1M | 2048 | 轻量快速 | 快速预测、资源受限环境 |
| kronos-small | 24.7M | 512 | 平衡性能 | 日常使用(默认) |
| kronos-base | 85.6M | 1024 | 高精度 | 深度分析、精确预测 |
通过Web界面切换:
通过API切换:
curl -X POST "http://localhost:8000/model/switch" \
-H "Content-Type: application/json" \
-d '{"model_name": "kronos-base"}'
~/.cache/huggingface/hubkronos-mini(4.1M),速度最快kronos-small(24.7M),平衡性能kronos-base(85.6M),准确率最高查看当前模型
/model/info 端点选择目标模型
/model/switch 接口等待切换完成
kronos-mini: 约需下载 5-10MBkronos-small: 约需下载 25-50MBkronos-base: 约需下载 80-150MB验证切换结果
⚠️ 首次使用某个模型时:
⚠️ 切换过程中:
✅ 推荐做法:
如果需要在离线环境使用,可以预先下载所有模型:
# 方法1:通过API依次切换所有模型(会自动下载)
curl -X POST "http://localhost:8000/model/switch" -H "Content-Type: application/json" -d '{"model_name": "kronos-mini"}'
curl -X POST "http://localhost:8000/model/switch" -H "Content-Type: application/json" -d '{"model_name": "kronos-small"}'
curl -X POST "http://localhost:8000/model/switch" -H "Content-Type: application/json" -d '{"model_name": "kronos-base"}'
# 方法2:手动下载到缓存目录
# 下载后放置到 ~/.cache/huggingface/hub/
backend/app/models/: Pydantic数据模型定义backend/app/services/: 核心业务逻辑
model_manager.py: Kronos模型管理(单例模式,支持模型切换)kronos_integration.py: Kronos模型集成(加载、卸载、预测)stock_service.py: 股票数据服务prediction_service.py: 预测服务backend/model/: Kronos模型定义
kronos.py: Kronos模型实现module.py: 模型模块backend/main.py: FastAPI应用主入口frontend/: Web前端界面
src/components/ModelStatus.tsx: 模型状态和切换组件src/services/api.ts: API调用封装cd backend
source .venv/bin/activate
python -m pytest tests/
# 构建镜像
docker build -t kronos-ai .
# 运行容器
docker run -p 8000:8000 kronos-ai
本项目采用MIT许可证
A: 应用会正常启动,但预测功能不可用。可以:
A: 可能的原因和解决方案:
A: 切换模型成功后,会显示详细信息:
A: 是的。切换模型时:
A: 根据需求选择:
A: 每个模型的大小:
全部下载约占用 200-300MB 磁盘空间。
A: 可以手动删除 ~/.cache/huggingface/hub/ 目录下的对应模型文件夹。下次使用时会重新下载。
A: 是的。不同模型的预测结果可能有差异:
A: 当前版本支持三个预设的 Kronos 模型。如需添加自定义模型,需要:
backend/app/services/kronos_integration.py 中添加模型配置A: 如果模型需要认证访问:
# 设置环境变量
export HUGGINGFACE_TOKEN="your_token_here"
# 或在代码中配置
# backend/app/services/kronos_integration.py
注意: 本系统仅用于学习和研究目的,不构成投资建议。股票投资有风险,入市需谨慎。
5 commits
Python
64.7%
TypeScript
29.5%
Shell
3.0%
CSS
1.3%
Dockerfile
1.2%
基于Kronos金融大模型的A股日线预测分析系统
本项目是一个基于Kronos金融大模型的A股股票预测分析系统,提供智能的股票走势预测功能。系统采用前后端分离架构,后端使用FastAPI构建RESTful API,前端使用现代化的Web界面。
kronos-ai/
├── backend/ # 后端服务
│ ├── app/
│ │ ├── services/ # 业务逻辑服务
│ │ │ ├── kronos_integration.py # Kronos模型集成(加载/卸载/预测)
│ │ │ ├── model_manager.py # 模型管理器(单例,支持切换)
│ │ │ ├── prediction_service.py # 预测服务
│ │ │ └── stock_service.py # 股票数据服务
│ │ └── utils/ # 工具函数
│ ├── model/ # Kronos模型定义
│ │ ├── kronos.py # Kronos模型实现
│ │ └── module.py # 模型模块
│ ├── main.py # FastAPI主应用
│ ├── config.py # 配置文件
│ ├── requirements.txt # Python依赖
│ ├── Dockerfile # Docker配置
├── frontend/ # 前端应用(React + TypeScript)
│ ├── src/
│ │ ├── components/ # React组件
│ │ │ ├── KLineChart.tsx # K线图组件
│ │ │ ├── ModelStatus.tsx # 模型状态和切换组件
│ │ │ ├── PlotlyKLineChart.tsx # Plotly K线图
│ │ │ ├── PredictionForm.tsx # 预测表单
│ │ │ └── PredictionTable.tsx # 预测结果表格
│ │ ├── services/
│ │ │ └── api.ts # API调用封装
│ │ ├── types/
│ │ │ └── index.ts # TypeScript类型定义
│ │ ├── App.tsx # 主应用组件
│ │ ├── App.css
│ │ ├── index.tsx # 入口文件
│ │ └── index.css
│ ├── package.json # npm依赖
│ ├── tsconfig.json # TypeScript配置
│ ├── Dockerfile # Docker配置
├── docker-compose.yml # Docker Compose配置
├── docker-start.sh # Docker启动脚本
├── docker-stop.sh # Docker停止脚本
├── start.sh # 启动脚本
├── stop.sh # 停止脚本
├── quick-start.sh # 快速启动脚本
└── README.md # 项目说明
后端核心模块:
kronos_integration.py: Kronos模型的底层集成,处理模型加载、卸载、预测等操作model_manager.py: 模型管理器(单例模式),提供统一的模型访问接口,支持模型切换prediction_service.py: 预测服务,协调股票数据和模型预测stock_service.py: 股票数据服务,集成Baostock等数据源前端核心组件:
ModelStatus.tsx: 模型状态展示和切换界面,支持查看当前模型、切换模型、重新加载PredictionForm.tsx: 股票预测表单,用户输入股票代码和预测天数KLineChart.tsx: K线图可视化组件api.ts: 封装所有后端API调用git clone https://github.com/raydez/kronos-ai.git
cd kronos-ai
cd backend
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# 返回项目根目录
cd ..
# 使用启动脚本
./start.sh
或者手动启动:
# 启动后端
cd backend
source .venv/bin/activate # Windows: .venv\Scripts\activate
python main.py
# 启动前端(新终端)
cd frontend
python3 -m http.server 3000
./stop.sh
| 接口 | 方法 | 描述 |
|---|---|---|
/predict | POST | 股票预测 |
/stock/{code} | GET | 获取股票信息 |
/stock/{code}/history | GET | 获取历史数据 |
/batch-predict | POST | 批量预测 |
/model/info | GET | 获取模型信息 |
/model/available | GET | 获取可用模型列表 |
/model/reload | POST | 重新加载当前模型 |
/model/switch | POST | 切换到指定模型 |
/health | GET | 健康检查 |
股票预测
curl -X POST "http://localhost:8000/predict" \
-H "Content-Type: application/json" \
-d '{"code": "600000", "prediction_days": 5}'
获取股票信息
curl -X GET "http://localhost:8000/stock/600000"
获取可用模型列表
curl -X GET "http://localhost:8000/model/available"
切换模型
curl -X POST "http://localhost:8000/model/switch" \
-H "Content-Type: application/json" \
-d '{"model_name": "kronos-base"}'
重新加载模型
curl -X POST "http://localhost:8000/model/reload"
系统支持3个不同规格的Kronos模型,可根据需求灵活切换:
| 模型名称 | 参数规模 | 上下文长度 | 特点 | 适用场景 |
|---|---|---|---|---|
| kronos-mini | 4.1M | 2048 | 轻量快速 | 快速预测、资源受限环境 |
| kronos-small | 24.7M | 512 | 平衡性能 | 日常使用(默认) |
| kronos-base | 85.6M | 1024 | 高精度 | 深度分析、精确预测 |
通过Web界面切换:
通过API切换:
curl -X POST "http://localhost:8000/model/switch" \
-H "Content-Type: application/json" \
-d '{"model_name": "kronos-base"}'
~/.cache/huggingface/hubkronos-mini(4.1M),速度最快kronos-small(24.7M),平衡性能kronos-base(85.6M),准确率最高查看当前模型
/model/info 端点选择目标模型
/model/switch 接口等待切换完成
kronos-mini: 约需下载 5-10MBkronos-small: 约需下载 25-50MBkronos-base: 约需下载 80-150MB验证切换结果
⚠️ 首次使用某个模型时:
⚠️ 切换过程中:
✅ 推荐做法:
如果需要在离线环境使用,可以预先下载所有模型:
# 方法1:通过API依次切换所有模型(会自动下载)
curl -X POST "http://localhost:8000/model/switch" -H "Content-Type: application/json" -d '{"model_name": "kronos-mini"}'
curl -X POST "http://localhost:8000/model/switch" -H "Content-Type: application/json" -d '{"model_name": "kronos-small"}'
curl -X POST "http://localhost:8000/model/switch" -H "Content-Type: application/json" -d '{"model_name": "kronos-base"}'
# 方法2:手动下载到缓存目录
# 下载后放置到 ~/.cache/huggingface/hub/
backend/app/models/: Pydantic数据模型定义backend/app/services/: 核心业务逻辑
model_manager.py: Kronos模型管理(单例模式,支持模型切换)kronos_integration.py: Kronos模型集成(加载、卸载、预测)stock_service.py: 股票数据服务prediction_service.py: 预测服务backend/model/: Kronos模型定义
kronos.py: Kronos模型实现module.py: 模型模块backend/main.py: FastAPI应用主入口frontend/: Web前端界面
src/components/ModelStatus.tsx: 模型状态和切换组件src/services/api.ts: API调用封装cd backend
source .venv/bin/activate
python -m pytest tests/
# 构建镜像
docker build -t kronos-ai .
# 运行容器
docker run -p 8000:8000 kronos-ai
本项目采用MIT许可证
A: 应用会正常启动,但预测功能不可用。可以:
A: 可能的原因和解决方案:
A: 切换模型成功后,会显示详细信息:
A: 是的。切换模型时:
A: 根据需求选择:
A: 每个模型的大小:
全部下载约占用 200-300MB 磁盘空间。
A: 可以手动删除 ~/.cache/huggingface/hub/ 目录下的对应模型文件夹。下次使用时会重新下载。
A: 是的。不同模型的预测结果可能有差异:
A: 当前版本支持三个预设的 Kronos 模型。如需添加自定义模型,需要:
backend/app/services/kronos_integration.py 中添加模型配置A: 如果模型需要认证访问:
# 设置环境变量
export HUGGINGFACE_TOKEN="your_token_here"
# 或在代码中配置
# backend/app/services/kronos_integration.py
注意: 本系统仅用于学习和研究目的,不构成投资建议。股票投资有风险,入市需谨慎。
5 commits
Python
64.7%
TypeScript
29.5%
Shell
3.0%
CSS
1.3%
Dockerfile
1.2%