🔄 业务逻辑与交互流程

AI 投研助手 · 核心业务流程 · 状态机 · 规则

📄研报解析流程
flowchart LR A([用户上传 PDF]) --> B[framework-space\n保存文件] B --> C[创建 stock_report\nparseStatus=0] C --> D[触发 Bull 异步 Job] D --> E[pdf-parse\n提取文本] E --> F[LLM 提取结构化信息\n标题/摘要/目标价/评级] F --> G[文本分块\nchunk_size=512] G --> H[批量向量化\nOpenAI Embedding] H --> I[(pgvector\n写入向量)] I --> J[更新 stock_report\nparseStatus=2] J --> K([前端显示完成]) D --> |失败重试3次| L[parseStatus=3\n支持手动重试]
🤖AI 多模型聚合分析流程
flowchart TD A([用户选择股票+模型+维度]) --> B[后端组装 Prompt\n含行情/新闻/RAG] B --> C{并行调用多模型} C --> D[DeepSeek\n逻辑推演] C --> E[GPT-4o\n综合归纳] C --> F[其他模型] D --> |SSE 流| G[前端实时展示] E --> |SSE 流| G F --> |SSE 流| G D --> H[各模型完成] E --> H F --> H H --> I[提取 Bull/Bear 情绪分] H --> J[technicalindicators\n计算技术信号] I --> K[LLM 聚合结论\nmergedResult] J --> K K --> L[保存 stock_analysis\n+ stock_analysis_model] L --> M([用户点赞/点踩\n反馈学习])
7x24 AI 盯盘预警流程
flowchart TD A([定时任务 每5分钟]) --> B[查询 is_monitoring=true\n的 stock_watch 列表] B --> C[Bull 队列并发控制\n最多10并发] C --> D{逐股检查} D --> E{价格突破\nalert_price_high/low?} D --> F{成交量异动\n> alert_volume_pct?} D --> G{舆情预警\nalert_sentiment=true?} D --> H{AI 定期分析\n距上次>4h?} E --> |是| I[创建预警\nlevel=3 紧急] F --> |是| J[创建预警\nlevel=2 提醒] G --> |是| K[创建预警\nlevel=2 提醒] H --> |是| L[触发 AI 分析\nlevel=1 信息] I --> M[WebSocket 推送\n通知前端] J --> M K --> M L --> M M --> N[更新 lastAlertTime] N --> O{1小时内已预警\n同类型?} O --> |是| P([跳过,防刷机制])
🗞️投资早报生成流程
flowchart LR A([每交易日 07:00\n定时触发]) --> B[收集最近24h\n重要新闻] B --> C[获取所有自选股\n最新行情+AI判断] C --> D[获取最近3份\n研报摘要] D --> E[LLM 分段生成] E --> E1[① 宏观市场摘要] E --> E2[② 行业热点3-5条] E --> E3[③ 自选股逐一简评] E --> E4[④ 今日关注事项] E --> E5[⑤ 风险提示] E1 & E2 & E3 & E4 & E5 --> F[合并为 Markdown] F --> G[保存 stock_brief\nstatus=1] G --> H([WebSocket 通知用户])
📋关键业务规则
⏰ 交易时段判断
09:30-11:30 和 13:00-15:00 为高频运行区间,行情同步和盯盘任务仅在此区间高频执行。非交易日(周末/节假日)停止拉取
🔒 预警防刷机制
同一股票同一类型预警,1 小时内不重复触发。AI 定期分析间隔默认 4 小时,可配置
💾 数据保留策略
分时数据保留 30 天;日K线永久保留;新闻快讯保留 90 天;AI 分析记录永久保留
🛡️ API 配额保护
Tushare Pro 每分钟限频,通过 Bull 队列做请求限流(每分钟不超过 50 次)。AI 调用同股票同天缓存 4 小时
📊 情绪分计算规则
从 AI 结论提取情感倾向词 + 近 24h 新闻情感分布(利好/利空比例)。0-100 分,≥60 为 Bull,≤40 为 Bear
🎯 偏好学习规则
用户点赞/踩累计后更新 model_scores。下次分析时偏好模型优先展示。后验准确率 = 次日涨跌与 AI 判断吻合度统计
← 返回文档总览