Initial commit
This commit is contained in:
438
微信公众号财经分析需求.md
Normal file
438
微信公众号财经分析需求.md
Normal file
@ -0,0 +1,438 @@
|
||||
# 微信公众号财经分析网站需求文档
|
||||
|
||||
## 1. 项目定位
|
||||
|
||||
### 1.1 项目名称
|
||||
|
||||
财经内容日报网站
|
||||
|
||||
### 1.2 项目目标
|
||||
|
||||
建设一个可部署到服务器的网站,用于每天汇总财经新闻与大V观点,并生成可浏览的财经日报页面。
|
||||
|
||||
### 1.3 技术方向
|
||||
|
||||
- 前端:Vue 3 + Vite
|
||||
- 后端:Python + FastAPI
|
||||
- 存储:首期以 JSON 文件为主,后续可迁移 SQLite / MySQL
|
||||
|
||||
### 1.4 当前版本原则
|
||||
|
||||
- 网站以“可落地、可维护、可每日使用”为第一优先级
|
||||
- 不强依赖全自动发现微信公众号最新文章
|
||||
- 大V观点模块首期采用“手动录入当天文章链接 + 系统自动抓取和分析”的模式
|
||||
- 财联社模块优先接入财联社官网或 APP 可获取的公开数据
|
||||
|
||||
## 2. 项目范围
|
||||
|
||||
网站包含 3 个核心模块:
|
||||
|
||||
1. 财联社新闻
|
||||
2. 大V观点
|
||||
3. 日报录入
|
||||
|
||||
## 3. 目标数据来源
|
||||
|
||||
### 3.1 财联社新闻
|
||||
|
||||
- 财联社
|
||||
- 财联社 AI Daily
|
||||
|
||||
说明:
|
||||
|
||||
- 如果微信公众号端无法稳定自动获取,允许直接使用财联社官网或 APP 的公开内容作为主要数据源
|
||||
- 财联社模块目标是获取最近一周的资讯汇总,不依赖手动逐条录入
|
||||
|
||||
### 3.2 大V观点公众号
|
||||
|
||||
- 投资明见
|
||||
- 爱股君2020
|
||||
- 马志明收评
|
||||
- 老白分析室观点
|
||||
|
||||
说明:
|
||||
|
||||
- 一个公众号一天可能发布多篇文章
|
||||
- 系统必须支持同一公众号在同一天录入多条链接
|
||||
|
||||
## 4. 核心业务流程
|
||||
|
||||
### 4.1 财联社新闻流程
|
||||
|
||||
1. 后端定时抓取财联社最新资讯
|
||||
2. 将资讯缓存到本地
|
||||
3. 基于最近一周数据生成汇总分析
|
||||
4. 前端展示最近一周资讯、热点板块、简要总结和参考链接
|
||||
|
||||
### 4.2 大V观点流程
|
||||
|
||||
1. 用户每天进入“日报录入”页面
|
||||
2. 选择日期
|
||||
3. 按公众号录入当天文章链接
|
||||
4. 后端抓取文章标题、发布时间、正文、摘要等内容
|
||||
5. 系统进行摘要、板块识别、情绪倾向分析
|
||||
6. 生成当日大V观点日报
|
||||
7. 前端按日期展示日报,支持切换历史日期
|
||||
|
||||
### 4.3 历史日报流程
|
||||
|
||||
1. 每天生成独立日报数据
|
||||
2. 数据按日期保存
|
||||
3. 网站支持按日期查看历史日报
|
||||
|
||||
## 5. 功能需求
|
||||
|
||||
### 5.1 模块一:财联社新闻
|
||||
|
||||
#### 5.1.1 功能目标
|
||||
|
||||
展示最近一周财联社相关新闻,并形成持续滚动更新的财经资讯模块。
|
||||
|
||||
#### 5.1.2 刷新频率
|
||||
|
||||
- 默认每 30 分钟更新一次
|
||||
- 页面支持手动立即刷新
|
||||
|
||||
#### 5.1.3 展示内容
|
||||
|
||||
每条资讯至少包含:
|
||||
|
||||
- 标题
|
||||
- 发布时间
|
||||
- 来源
|
||||
- 简要摘要
|
||||
- 参考链接
|
||||
- 情绪倾向
|
||||
- 涉及板块
|
||||
|
||||
#### 5.1.4 汇总内容
|
||||
|
||||
模块顶部需要提供最近一周的简要汇总,包括:
|
||||
|
||||
- 最近一周资讯概览
|
||||
- 热点方向总结
|
||||
- 当前值得关注的板块
|
||||
|
||||
#### 5.1.5 展示要求
|
||||
|
||||
- 财联社列表按时间倒序展示
|
||||
- 不需要堆砌过多统计卡片
|
||||
- 信息以内容为主,次要数据弱化展示
|
||||
|
||||
### 5.2 模块二:大V观点
|
||||
|
||||
#### 5.2.1 功能目标
|
||||
|
||||
按天展示财经类大V公众号观点,不同日期严格分开展示。
|
||||
|
||||
#### 5.2.2 日期规则
|
||||
|
||||
- 页面默认显示当天数据
|
||||
- 支持通过日期 Tab 切换历史日报
|
||||
- 两天的数据不能混在一起展示
|
||||
|
||||
#### 5.2.3 展示内容
|
||||
|
||||
每篇文章至少展示:
|
||||
|
||||
- 公众号名称
|
||||
- 标题
|
||||
- 发布时间
|
||||
- 摘要
|
||||
- 参考链接
|
||||
- 涉及板块
|
||||
- 情绪倾向
|
||||
|
||||
#### 5.2.4 当日汇总
|
||||
|
||||
每个日期需要有一段“当日总结”,用于概括当天大V整体观点。
|
||||
|
||||
#### 5.2.5 页面展示取舍
|
||||
|
||||
- 板块信息仅作为辅助信息,使用小标签展示,不单独占很大篇幅
|
||||
- “摘要”和“文章列表”不要分成两块重复区域
|
||||
- 应将当日总结与文章列表放在同一信息区域内,减少重复
|
||||
- 页面尽量减少无效说明、冗余统计和不必要的装饰
|
||||
|
||||
### 5.3 模块三:日报录入
|
||||
|
||||
#### 5.3.1 功能目标
|
||||
|
||||
提供每天的录入入口,供用户录入各公众号当天文章链接。
|
||||
|
||||
#### 5.3.2 基本能力
|
||||
|
||||
- 选择录入日期
|
||||
- 按公众号录入文章链接
|
||||
- 支持新增多条链接输入框
|
||||
- 支持删除错误链接
|
||||
- 支持保存
|
||||
- 支持点击“生成日报”
|
||||
|
||||
#### 5.3.3 数据规则
|
||||
|
||||
- 同一公众号同一天可录入多篇文章
|
||||
- 空链接不保存
|
||||
- 重复链接应自动去重
|
||||
- 某公众号当天未录入时,可为空
|
||||
|
||||
## 6. 抓取与分析需求
|
||||
|
||||
### 6.1 文章抓取字段
|
||||
|
||||
对于录入的微信公众号文章,后端至少提取:
|
||||
|
||||
- 公众号名称
|
||||
- 文章标题
|
||||
- 发布时间
|
||||
- 摘要
|
||||
- 正文内容
|
||||
- 原始链接
|
||||
- 最终跳转链接
|
||||
|
||||
### 6.2 内容清洗
|
||||
|
||||
需要对正文做基础清洗,包括:
|
||||
|
||||
- 去掉无关关注提示
|
||||
- 去掉营销尾部文案
|
||||
- 保留正文主要段落
|
||||
|
||||
### 6.3 分析输出
|
||||
|
||||
系统需要对每篇文章输出:
|
||||
|
||||
- 摘要
|
||||
- 文章类型
|
||||
- 涉及板块
|
||||
- 情绪倾向
|
||||
|
||||
### 6.4 板块识别范围
|
||||
|
||||
首期可先支持以下常见板块:
|
||||
|
||||
- AI
|
||||
- 算力
|
||||
- CPO
|
||||
- 存储芯片
|
||||
- 半导体
|
||||
- 券商
|
||||
- 石油天然气
|
||||
- 新能源
|
||||
- 军工
|
||||
- 机器人
|
||||
- 汽车
|
||||
- 医药
|
||||
|
||||
### 6.5 情绪倾向
|
||||
|
||||
首期支持以下三类:
|
||||
|
||||
- 看多
|
||||
- 看空
|
||||
- 中性
|
||||
|
||||
## 7. 前端设计需求
|
||||
|
||||
## 7.1 整体设计方向
|
||||
|
||||
- 网站不是后台管理页风格,而是偏内容型、财经资讯型页面
|
||||
- 视觉上应偏专业、克制、清晰
|
||||
- 以“内容优先”而不是“大量统计卡片优先”
|
||||
|
||||
### 7.2 布局要求
|
||||
|
||||
- 桌面端采用左侧导航 + 右侧内容区的结构
|
||||
- 移动端自动切换为上下布局
|
||||
- 页面尽量避免出现明显滚动条
|
||||
- 即使需要滚动,也尽量隐藏滚动条视觉表现
|
||||
|
||||
### 7.3 信息展示要求
|
||||
|
||||
- 减少无用信息
|
||||
- 弱化不重要的说明文字
|
||||
- 缩小板块信息的占比
|
||||
- 不要重复展示相同摘要
|
||||
- 避免一屏里出现太多层级相近的卡片
|
||||
|
||||
### 7.4 各模块前端表现
|
||||
|
||||
#### 财联社新闻
|
||||
|
||||
- 顶部只保留必要的刷新时间和刷新按钮
|
||||
- 使用一段简短总述说明最近一周情况
|
||||
- 热点板块用小标签展示
|
||||
- 资讯列表直接展示标题、摘要、时间、链接
|
||||
|
||||
#### 大V观点
|
||||
|
||||
- 顶部显示日期 Tab
|
||||
- 当日总结与文章列表整合到同一区域
|
||||
- 板块信息使用小标签
|
||||
- 每篇文章以卡片列表展示,突出标题和摘要
|
||||
|
||||
#### 日报录入
|
||||
|
||||
- 输入页要密集但不拥挤
|
||||
- 一个公众号一张录入卡片
|
||||
- 卡片内部支持多链接输入
|
||||
- 底部保留“保存录入”和“生成日报”两个主操作
|
||||
|
||||
## 8. 后端需求
|
||||
|
||||
### 8.1 服务能力
|
||||
|
||||
后端需要提供以下核心能力:
|
||||
|
||||
- 获取公众号名单
|
||||
- 获取某天的录入内容
|
||||
- 保存某天录入内容
|
||||
- 根据某天录入内容生成日报
|
||||
- 获取某天的大V观点日报
|
||||
- 获取财联社最近一周数据
|
||||
- 手动刷新财联社数据
|
||||
|
||||
### 8.2 调度能力
|
||||
|
||||
- 财联社数据支持定时刷新
|
||||
- 大V日报按需生成
|
||||
- 后续可扩展为自动定时生成日报
|
||||
|
||||
### 8.3 容错要求
|
||||
|
||||
- 某篇文章抓取失败不影响整天日报生成
|
||||
- 失败项要记录错误原因
|
||||
- 已抓取成功的数据正常保留
|
||||
|
||||
## 9. 数据存储要求
|
||||
|
||||
### 9.1 首期存储方式
|
||||
|
||||
首期使用本地文件存储,至少包含:
|
||||
|
||||
- `data/daily_inputs/{date}.json`
|
||||
- `data/reports/{date}.json`
|
||||
- `data/cls_news/weekly.json`
|
||||
|
||||
### 9.2 数据类型
|
||||
|
||||
- 每日录入数据
|
||||
- 每日报告数据
|
||||
- 财联社缓存数据
|
||||
- 抓取错误记录
|
||||
|
||||
### 9.3 后续扩展
|
||||
|
||||
后续可迁移到数据库,支持:
|
||||
|
||||
- 用户体系
|
||||
- 后台管理
|
||||
- 多人协作录入
|
||||
- 更复杂的历史检索
|
||||
|
||||
## 10. 接口建议
|
||||
|
||||
建议后端至少保留以下接口:
|
||||
|
||||
- `GET /api/accounts`
|
||||
- `GET /api/daily-inputs/{date}`
|
||||
- `PUT /api/daily-inputs/{date}`
|
||||
- `POST /api/reports/{date}/generate`
|
||||
- `GET /api/reports`
|
||||
- `GET /api/opinions/{date}`
|
||||
- `GET /api/cls-news`
|
||||
- `POST /api/cls-news/refresh`
|
||||
|
||||
## 11. 非功能需求
|
||||
|
||||
### 11.1 可维护性
|
||||
|
||||
- 数据抓取、分析、展示分层清晰
|
||||
- 公众号名单可配置
|
||||
- 板块词典可扩展
|
||||
|
||||
### 11.2 可部署性
|
||||
|
||||
- 支持部署到服务器
|
||||
- 前后端可独立构建
|
||||
- 支持后续接入 Nginx / Supervisor / Docker
|
||||
|
||||
### 11.3 可扩展性
|
||||
|
||||
- 后续可新增更多公众号
|
||||
- 后续可增加 AI 摘要与分析能力
|
||||
- 后续可增加定时任务和消息通知
|
||||
|
||||
## 12. 当前版本边界
|
||||
|
||||
### 12.1 当前确认纳入
|
||||
|
||||
- 财联社最近一周新闻汇总
|
||||
- 大V观点按天展示
|
||||
- 每天的手动链接录入
|
||||
- 同一公众号同一天多篇文章支持
|
||||
- 财联社 30 分钟刷新
|
||||
|
||||
### 12.2 当前不作为首期刚需
|
||||
|
||||
- 全自动发现所有公众号最新文章
|
||||
- 微信公众号平台登录态自动轮询
|
||||
- 复杂权限系统
|
||||
- 多用户后台
|
||||
|
||||
## 13. MVP 交付范围
|
||||
|
||||
首期必须完成:
|
||||
|
||||
- 一个可访问的网站
|
||||
- 三个核心模块可正常使用
|
||||
- 可录入当天大V文章链接
|
||||
- 可生成并查看当日大V观点日报
|
||||
- 可查看财联社最近一周资讯
|
||||
- 页面具备基础美观度与可读性
|
||||
|
||||
## 14. 验收标准
|
||||
|
||||
### 14.1 财联社模块验收
|
||||
|
||||
- 能展示最近一周财联社资讯
|
||||
- 支持 30 分钟内缓存读取
|
||||
- 支持手动刷新
|
||||
- 页面可看到摘要、链接、板块和更新时间
|
||||
|
||||
### 14.2 大V观点模块验收
|
||||
|
||||
- 可按日期切换日报
|
||||
- 不同日期内容不混合
|
||||
- 每篇文章可看到摘要与链接
|
||||
- 每天有独立总结
|
||||
|
||||
### 14.3 日报录入模块验收
|
||||
|
||||
- 可为某一天录入多个公众号链接
|
||||
- 同一公众号可录入多篇
|
||||
- 可保存后再次编辑
|
||||
- 可点击生成日报
|
||||
|
||||
### 14.4 前端验收
|
||||
|
||||
- 页面没有明显冗余信息
|
||||
- 板块信息占比明显缩小
|
||||
- 大V摘要与文章列表已整合
|
||||
- 桌面端浏览不显得拥挤,滚动条视觉弱化
|
||||
|
||||
## 15. 开发建议
|
||||
|
||||
### 15.1 首期优先级
|
||||
|
||||
1. 先打通日报录入 -> 抓取 -> 生成日报 -> 展示
|
||||
2. 再完善财联社定时刷新和最近一周缓存
|
||||
3. 最后优化页面视觉与部署结构
|
||||
|
||||
### 15.2 推荐开发顺序
|
||||
|
||||
1. 先定义数据结构
|
||||
2. 再完成 FastAPI 接口
|
||||
3. 再开发 Vue 页面
|
||||
4. 最后补调度和部署脚本
|
||||
|
||||
Reference in New Issue
Block a user