ShotAI - 智能股票助手项目介绍
📖 项目概述
ShotAI 是一个基于 Spring AI 和 Vue.js 构建的智能对话系统,定位为私人股票助手。它不仅能够进行流畅的 AI 对话,还支持上传股票相关文档(如财报、研报、行业分析等),通过 RAG(检索增强生成)技术为用户提供基于知识库的专业问答服务。
🎯 项目定位
作为一个私人股票助手,ShotAI 可以帮助投资者:
- 📊 快速分析财报:上传 PDF 格式的财报,快速提取关键信息
- 📈 研报智能问答:基于上传的研究报告进行深度问答
- 💡 投资决策辅助:结合 AI 大模型的分析能力,提供投资建议
- 🔍 知识库检索:从海量文档中快速找到相关信息
✨ 核心特性
1. 实时流式对话
采用 SSE(Server-Sent Events)技术实现打字机效果,让 AI 回复更加自然流畅,提升用户体验。
2. RAG 知识库问答
支持上传多种格式文档(PDF、TXT、DOC、DOCX),系统会自动:
- 解析文档内容
- 智能分割文本
- 向量化存储
- 语义检索相关内容
3. 多模式切换
- 普通对话模式:直接与 AI 对话,获取通用知识
- RAG 模式:基于上传的文档进行专业问答
- 未来扩展:支持联网搜索、图表分析等
4. 现代化 UI 设计
- 响应式布局,适配各种设备
- 渐变色设计,视觉效果出色
- 流畅动画,交互体验优秀
🏗️ 技术架构
整体架构图
┌─────────────────────────────────────────────────────────────┐ │ 前端层 (Vue 3) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 聊天界面 │ │ 文档上传 │ │ SSE连接 │ │ 路由管理 │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────────┘ ↕ HTTP/SSE ┌─────────────────────────────────────────────────────────────┐ │ 后端层 (Spring Boot) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Controller│ │ Service │ │ SSE管理 │ │ 配置层 │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────────┘ ↕ ┌─────────────────────────────────────────────────────────────┐ │ AI 服务层 │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ DeepSeek │ │ Ollama │ │ │ │ (对话模型) │ │ (嵌入模型) │ │ │ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────┘ ↕ ┌─────────────────────────────────────────────────────────────┐ │ 存储层 │ │ ┌──────────────┐ │ │ │ Redis │ │ │ │ (向量存储) │ │ │ └──────────────┘ │ └─────────────────────────────────────────────────────────────┘
|
技术栈详解
后端技术栈
| 技术 |
版本 |
用途 |
| Spring Boot |
3.5.7 |
核心框架 |
| Spring AI |
1.0.3 |
AI 集成框架 |
| DeepSeek |
deepseek-chat |
对话生成模型 |
| Ollama |
bge-m3 |
文本嵌入模型 |
| Redis |
- |
向量数据库 |
| Lombok |
- |
简化开发 |
前端技术栈
| 技术 |
版本 |
用途 |
| Vue 3 |
3.5.22 |
前端框架 |
| Ant Design Vue |
4.2.6 |
UI 组件库 |
| Axios |
1.12.2 |
HTTP 客户端 |
| Vite |
7.1.7 |
构建工具 |
| Vue Router |
4.6.3 |
路由管理 |
💡 应用场景
场景一:财报快速分析
用户:上传某公司 Q3 财报 PDF 系统:自动解析并向量化存储 用户:这家公司的营收增长率是多少? AI:根据财报显示,该公司 Q3 营收同比增长 25.6%...
|
场景二:研报智能问答
用户:上传多份行业研报 系统:构建行业知识库 用户:新能源汽车行业的主要风险是什么? AI:基于已上传的研报,主要风险包括:1. 政策变化...
|
场景三:投资决策辅助
用户:我想了解这只股票的基本面 AI:结合知识库和 AI 分析能力,提供: - 财务指标分析 - 行业地位评估 - 风险提示 - 投资建议
|
📊 项目亮点
1. 技术创新
- ✅ 采用最新的 Spring AI 框架,代码简洁优雅
- ✅ SSE 流式传输,实现打字机效果
- ✅ RAG 技术,让 AI 基于真实数据回答
- ✅ Redis 向量存储,检索速度快
2. 用户体验
- ✅ 实时响应,无需等待完整回复
- ✅ 支持中断生成,用户可控
- ✅ 文档上传进度显示
- ✅ 界面美观,操作流畅
3. 可扩展性
- ✅ 模块化设计,易于添加新功能
- ✅ 支持多种文档格式
- ✅ 可轻松切换 AI 模型
- ✅ 前后端分离,独立部署
🚀 快速开始
环境要求
- Java 17+
- Node.js 20.19+
- Redis(端口 9379)
- Ollama(bge-m3 模型)
- DeepSeek API Key
安装步骤
1. 启动 Redis
redis-server --port 9379 redis-cli -p 9379 CONFIG SET requirepass "123456"
|
2. 启动 Ollama
ollama pull bge-m3 ollama serve
|
3. 配置后端
编辑 ShotAI-back/src/main/resources/application.yml:
spring: ai: deepseek: api-key: your-api-key-here
|
4. 启动服务
后端:
cd ShotAI-back mvn spring-boot:run
|
前端:
cd ShotAI-front npm install npm run dev
|
5. 访问应用
打开浏览器访问:http://localhost:5173
📁 项目结构
shotAI/ ├── ShotAI-back/ # 后端项目 │ ├── src/main/java/ │ │ └── com/alexjoker/shotai/ │ │ ├── controller/ # REST 控制器 │ │ │ ├── ChatController.java │ │ │ ├── RagController.java │ │ │ └── SseController.java │ │ ├── service/ # 业务接口 │ │ ├── serviceImpl/ # 业务实现 │ │ │ ├── ChatServiceImpl.java │ │ │ ├── RagServiceImpl.java │ │ │ └── DocumentServiceImpl.java │ │ ├── config/ # 配置类 │ │ │ ├── VectorStoreConfig.java │ │ │ └── CorsConfig.java │ │ ├── dto/ # 数据传输对象 │ │ └── utils/ # 工具类 │ │ ├── SSEServer.java │ │ └── SSEMsgType.java │ └── src/main/resources/ │ └── application.yml # 配置文件 │ └── ShotAI-front/ # 前端项目 ├── src/ │ ├── api/ # API 接口 │ │ ├── chat.js │ │ └── rag.js │ ├── views/ # 页面组件 │ ├── router/ # 路由配置 │ └── styles/ # 样式文件 └── vite.config.js # Vite 配置
|
🔮 未来规划
短期目标
中期目标
长期目标
📝 总结
ShotAI 是一个功能完整、技术先进的智能股票助手项目。它不仅展示了如何将大语言模型应用到实际场景中,还通过 RAG 技术解决了 AI 幻觉问题,让回答更加准确可靠。
无论你是投资者、开发者还是 AI 爱好者,都可以从这个项目中获得启发。项目采用模块化设计,易于理解和扩展,是学习 Spring AI 和 RAG 技术的绝佳案例。
📄 许可证
MIT License
如果觉得这个项目不错,请给个 ⭐️ Star!
Made with ❤️ by AlexJoker
分享ShotAI-项目介绍 
微信扫码打开,再通过右上角菜单分享。
交流与讨论
评论由 Valine / LeanCloud 提供,点击后连接第三方服务。