# stork-agent **Repository Path**: visual-team_1/stork-agent ## Basic Information - **Project Name**: stork-agent - **Description**: 这是一个量化新闻选股平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-05 - **Last Updated**: 2026-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目结构与本地部署说明 ## 一、项目概述 本项目是一个股票分析系统,采用前后端分离架构: - 后端:NestJS + MongoDB + Redis + Bull队列 - 前端:Vue 3 + Vite + Element Plus + ECharts --- ## 二、后端目录结构 (admin) ``` admin/ ├── src/ # 源代码目录 │ ├── main.ts # 应用入口文件 │ ├── app.module.ts # 根模块 │ ├── app.controller.ts # 根控制器 │ ├── app.service.ts # 根服务 │ │ │ ├── agents/ # AI Agent 模块 │ │ ├── agents.module.ts # Agent 模块定义 │ │ ├── agent-orchestrator.service.ts # Agent 编排调度服务 │ │ ├── base.agent.ts # Agent 基类 │ │ ├── fundamentals-analyst.agent.ts # 基本面分析 Agent │ │ ├── market-analyst.agent.ts # 市场分析 Agent │ │ ├── news-analyst.agent.ts # 新闻分析 Agent │ │ ├── risk-analyst.agent.ts # 风险分析 Agent │ │ └── trader.agent.ts # 交易决策 Agent │ │ │ ├── analysis/ # 股票分析模块 │ │ ├── analysis.module.ts # 模块定义 │ │ ├── analysis.controller.ts # 分析接口控制器 │ │ ├── analysis.service.ts # 分析核心服务 │ │ ├── batch-analysis.service.ts # 批量分析服务 │ │ ├── dto/ # 数据传输对象 │ │ ├── prompts/ # LLM 提示词模板 │ │ └── schemas/ # Mongoose 数据模型 │ │ │ ├── auth/ # 认证授权模块 │ │ ├── auth.module.ts │ │ ├── auth.controller.ts # 登录/注册接口 │ │ ├── auth.service.ts # JWT 认证服务 │ │ ├── decorators/ # 自定义装饰器 │ │ ├── dto/ # 登录/注册 DTO │ │ ├── guards/ # 路由守卫 │ │ └── strategies/ # Passport 策略 │ │ │ ├── cache/ # 缓存模块 │ │ ├── cache.module.ts │ │ └── redis.service.ts # Redis 缓存服务 │ │ │ ├── common/ # 公共模块 │ │ ├── dto/ # 通用 DTO │ │ ├── filters/ # 异常过滤器 │ │ ├── interceptors/ # 拦截器 │ │ └── logger/ # 日志服务 │ │ │ ├── config/ # 配置模块 │ │ ├── config.module.ts │ │ ├── configuration.ts # 配置加载 │ │ └── config.interface.ts # 配置类型定义 │ │ │ ├── database/ # 数据库模块 │ │ └── database.module.ts # MongoDB 连接配置 │ │ │ ├── llm/ # 大语言模型模块 │ │ ├── llm.module.ts │ │ ├── llm.service.ts # LLM 统一调用服务 │ │ ├── llm.interface.ts # LLM 接口定义 │ │ └── adapters/ # 多模型适配器 │ │ ├── dashscope.adapter.ts # 阿里通义千问 │ │ ├── openai.adapter.ts # OpenAI │ │ └── deepseek.adapter.ts # DeepSeek │ │ │ ├── news/ # 新闻数据模块 │ │ ├── news.module.ts │ │ ├── news.controller.ts │ │ ├── news.service.ts # 新闻抓取与处理 │ │ ├── interfaces/ # 新闻数据接口 │ │ └── schemas/ # 新闻数据模型 │ │ │ ├── progress/ # 进度追踪模块 │ │ ├── progress.module.ts │ │ ├── progress.controller.ts # SSE 进度推送接口 │ │ └── progress.service.ts # 分析进度管理 │ │ │ ├── queue/ # 任务队列模块 │ │ ├── queue.module.ts │ │ ├── queue.service.ts # 队列管理服务 │ │ └── analysis.processor.ts # 分析任务处理器 │ │ │ ├── reports/ # 报告模块 │ │ ├── reports.module.ts │ │ ├── reports.controller.ts # 报告接口 │ │ ├── reports.service.ts # 报告生成服务 (PDF) │ │ ├── usage-statistics.service.ts # 使用统计 │ │ ├── dto/ │ │ └── schemas/ │ │ │ ├── stock-data/ # 股票数据模块 │ │ ├── stock-data.module.ts │ │ ├── stock-data.service.ts # 股票数据获取服务 │ │ ├── stock-analysis-data.service.ts # 分析数据整合 │ │ ├── stock-cache.service.ts # 股票数据缓存 │ │ ├── technical-indicator.service.ts # 技术指标计算 │ │ ├── data-source.factory.ts # 数据源工厂 │ │ ├── stock-data.interface.ts # 数据接口定义 │ │ ├── adapters/ # 数据源适配器 │ │ │ └── tushare.adapter.ts # Tushare 数据源 │ │ └── schemas/ # 股票数据模型 │ │ │ ├── stocks/ # 股票基础模块 │ │ └── schemas/ # 股票基础信息模型 │ │ │ └── users/ # 用户模块 │ ├── users.module.ts │ ├── users.service.ts # 用户 CRUD 服务 │ ├── dto/ │ └── schemas/ # 用户数据模型 │ ├── conf/ # 配置资源 │ ├── font/ # 字体文件 │ └── yinzhang.png # 印章图片 (PDF报告用) │ ├── scripts/ # 测试脚本 │ ├── test-analysis-data.ts │ ├── test-data-flow.ts │ ├── test-full-analysis.ts │ ├── test-news.ts │ └── test-tushare.ts │ ├── test/ # 单元测试/E2E测试 ├── dist/ # 编译输出目录 ├── node_modules/ # 依赖包 │ ├── .env # 环境变量配置 ├── .gitignore ├── .prettierrc # 代码格式化配置 ├── eslint.config.mjs # ESLint 配置 ├── nest-cli.json # NestJS CLI 配置 ├── package.json # 项目依赖 ├── tsconfig.json # TypeScript 配置 └── tsconfig.build.json # 构建 TS 配置 ``` --- ## 三、前端目录结构 (vue) ``` vue/ ├── src/ │ ├── main.js # 应用入口 │ ├── App.vue # 根组件 │ │ │ ├── api/ # API 请求封装 │ │ └── index.js # Axios 实例与接口定义 │ │ │ ├── assets/ # 静态资源 │ │ ├── base.css # 基础样式 │ │ ├── main.css # 主样式 │ │ └── logo.svg # Logo 图片 │ │ │ ├── components/ # 公共组件 │ │ ├── analysis/ # 分析相关组件 │ │ ├── icons/ # 图标组件 │ │ ├── ClickSpark.vue # 点击特效组件 │ │ ├── ShinyText.vue # 闪光文字组件 │ │ ├── StarBorder.vue # 星星边框组件 │ │ └── ... │ │ │ ├── layouts/ # 布局组件 │ │ └── MainLayout.vue # 主布局 (侧边栏+头部+内容区) │ │ │ ├── router/ # 路由配置 │ │ └── index.js # Vue Router 路由定义 │ │ │ ├── stores/ # 状态管理 │ │ └── analysis.js # Pinia 分析状态 Store │ │ │ ├── utils/ # 工具函数 │ │ └── supabase.js # Supabase 客户端初始化 │ │ │ └── views/ # 页面视图 │ ├── LoginView.vue # 登录页面 │ ├── analysis/ # 分析相关页面 │ └── reports/ # 报告相关页面 │ ├── public/ # 公共静态资源 (不经过构建) ├── node_modules/ # 依赖包 │ ├── .env # 环境变量 ├── .gitignore ├── index.html # HTML 入口模板 ├── jsconfig.json # JS 配置 (路径别名等) ├── package.json # 项目依赖 ├── vite.config.js # Vite 构建配置 └── README.md ``` --- ## 四、技术栈说明 ### 后端技术栈 | 技术 | 用途 | |------|------| | NestJS | Node.js 后端框架 | | MongoDB + Mongoose | 数据库存储 | | Redis + ioredis | 缓存与会话 | | Bull | 任务队列 (基于 Redis) | | Passport + JWT | 身份认证 | | Swagger | API 文档 | | PDFKit | PDF 报告生成 | | Axios | HTTP 请求 (调用外部 API) | ### 前端技术栈 | 技术 | 用途 | |------|------| | Vue 3 | 前端框架 | | Vite | 构建工具 | | Vue Router | 路由管理 | | Pinia | 状态管理 | | Element Plus | UI 组件库 | | ECharts + vue-echarts | 图表可视化 | | Axios | HTTP 请求 | | Supabase | 用户认证 (可选) | | marked + highlight.js | Markdown 渲染 | --- ## 五、本地部署启动说明 ### 5.1 环境要求 | 依赖 | 版本要求 | 说明 | |------|----------|------| | Node.js | ^20.19.0 或 >=22.12.0 | 运行环境 | | npm | 随 Node.js 安装 | 包管理器 | | MongoDB | 4.4+ | 数据库 | | Redis | 6.0+ | 缓存与队列 | ### 5.2 安装依赖服务 #### MongoDB 安装与启动 Windows 下载安装包:https://www.mongodb.com/try/download/community 启动服务: ```bash # 默认端口 27017 mongod --dbpath "C:\data\db" ``` #### Redis 安装与启动 Windows 推荐使用 WSL 或下载 Windows 版本:https://github.com/tporadowski/redis/releases 启动服务: ```bash # 默认端口 6379 redis-server ``` ### 5.3 配置环境变量 #### 后端配置 (admin/.env) ```properties # 应用配置 NODE_ENV=development PORT=3000 # MongoDB 配置 MONGO_URI=mongodb://127.0.0.1:27017/choose-stock-agent MONGO_DB=choose-stock-agent # Redis 配置 REDIS_HOST=localhost REDIS_PORT=6379 REDIS_PASSWORD= REDIS_DB=0 # JWT 配置 JWT_SECRET=your-jwt-secret-key JWT_EXPIRES_IN=7d # LLM 配置 (选择一个配置) LLM_PROVIDER=dashscope # 阿里通义千问 DASHSCOPE_API_KEY=你的API密钥 DASHSCOPE_MODEL=qwen-plus # OpenAI (可选) OPENAI_API_KEY= OPENAI_MODEL=gpt-4o-mini # DeepSeek (可选) DEEPSEEK_API_KEY= DEEPSEEK_MODEL=deepseek-chat # 股票数据源 TUSHARE_TOKEN=你的Tushare Token ``` #### 前端配置 (vue/.env) ```properties # 后端 API 地址 VITE_API_BASE_URL=http://localhost:3000 # Supabase 配置 (可选,用于第三方登录) VITE_SUPABASE_URL=你的Supabase URL VITE_SUPABASE_ANON_KEY=你的Supabase Key ``` ### 5.4 安装项目依赖 ```bash # 安装后端依赖 cd admin npm install # 安装前端依赖 cd ../vue npm install ``` ### 5.5 启动服务 #### 启动后端服务 ```bash cd admin npm run start:dev ``` 后端服务将在 http://localhost:3000 启动,支持热重载。 #### 启动前端服务 ```bash cd vue npm run dev ``` 前端服务将在 http://localhost:5173 启动。 ### 5.6 访问地址 | 服务 | 地址 | |------|------| | 前端页面 | http://localhost:5173 | | 后端 API | http://localhost:3000 | | Swagger 文档 | http://localhost:3000/api | ### 5.7 生产环境构建 ```bash # 后端构建 cd admin npm run build npm run start:prod # 前端构建 cd vue npm run build # 构建产物在 dist/ 目录,可部署到 Nginx 等静态服务器 ``` --- ## 六、常见问题 ### Q1: MongoDB 连接失败 检查 MongoDB 服务是否启动,确认 MONGO_URI 配置正确。 ### Q2: Redis 连接失败 检查 Redis 服务是否启动,确认 REDIS_HOST 和 REDIS_PORT 配置正确。 ### Q3: LLM 调用失败 检查对应的 API Key 是否配置正确,确认网络可以访问对应的 API 服务。 ### Q4: Tushare 数据获取失败 确认 TUSHARE_TOKEN 有效,免费版有调用频率限制,建议升级积分。