# 微信公众号财经分析网站需求文档

## 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. 最后补调度和部署脚本

