123 lines
3.5 KiB
Markdown
123 lines
3.5 KiB
Markdown
|
|
# 眼镜行业情报分析系统
|
|||
|
|
|
|||
|
|
## 项目简介
|
|||
|
|
|
|||
|
|
自动从巨潮资讯网获取眼镜行业及相关行业上市公司年报/半年报,提取战略性内容,通过多AI分层总结生成行业洞察报告。
|
|||
|
|
|
|||
|
|
## 核心功能
|
|||
|
|
|
|||
|
|
### 1. 上市公司管理
|
|||
|
|
- 预置眼镜行业核心上市公司
|
|||
|
|
- 支持手动添加/删除公司
|
|||
|
|
- 公司信息包括:股票代码、公司名称、所属行业
|
|||
|
|
|
|||
|
|
### 2. 定时报告获取
|
|||
|
|
- 自动从巨潮资讯网检测年报/半年报更新
|
|||
|
|
- 支持配置定时任务频率
|
|||
|
|
- 自动下载并解析PDF报告
|
|||
|
|
|
|||
|
|
### 3. 战略内容提取
|
|||
|
|
- 从年报中提取"投资方案"相关内容
|
|||
|
|
- 从年报中提取"未来发展规划"相关内容
|
|||
|
|
- 从年报中提取"经营计划"相关内容
|
|||
|
|
- 从年报中提取"发展战略"相关内容
|
|||
|
|
|
|||
|
|
### 4. 多AI分层分析
|
|||
|
|
- 第一层:多个AI并行分析单份报告的不同章节
|
|||
|
|
- 第二层:汇总AI整合各AI分析结果,生成最终洞察
|
|||
|
|
|
|||
|
|
## 技术栈
|
|||
|
|
|
|||
|
|
- **后端**: Python + FastAPI
|
|||
|
|
- **前端**: HTML + JavaScript + CSS
|
|||
|
|
- **数据库**: SQLite (本地测试) / PostgreSQL (生产环境)
|
|||
|
|
- **定时任务**: APScheduler
|
|||
|
|
- **PDF解析**: PyMuPDF (fitz)
|
|||
|
|
- **AI接口**: Gemini API
|
|||
|
|
|
|||
|
|
## 目录结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
qingbao/
|
|||
|
|
├── backend/
|
|||
|
|
│ ├── app/
|
|||
|
|
│ │ ├── __init__.py
|
|||
|
|
│ │ ├── main.py # FastAPI 入口
|
|||
|
|
│ │ ├── config.py # 配置文件
|
|||
|
|
│ │ ├── database.py # 数据库连接
|
|||
|
|
│ │ ├── models.py # 数据模型
|
|||
|
|
│ │ ├── schemas.py # Pydantic 模式
|
|||
|
|
│ │ ├── routers/
|
|||
|
|
│ │ │ ├── __init__.py
|
|||
|
|
│ │ │ ├── companies.py # 公司管理API
|
|||
|
|
│ │ │ ├── reports.py # 报告管理API
|
|||
|
|
│ │ │ ├── analysis.py # AI分析API
|
|||
|
|
│ │ │ └── scheduler.py # 定时任务API
|
|||
|
|
│ │ ├── services/
|
|||
|
|
│ │ │ ├── __init__.py
|
|||
|
|
│ │ │ ├── cninfo_crawler.py # 巨潮爬虫
|
|||
|
|
│ │ │ ├── pdf_extractor.py # PDF内容提取
|
|||
|
|
│ │ │ ├── ai_analyzer.py # AI分析服务
|
|||
|
|
│ │ │ └── scheduler_service.py # 定时任务服务
|
|||
|
|
│ │ └── utils/
|
|||
|
|
│ │ ├── __init__.py
|
|||
|
|
│ │ └── logger.py # 日志工具
|
|||
|
|
│ ├── data/ # 下载的PDF存放目录
|
|||
|
|
│ ├── requirements.txt
|
|||
|
|
│ └── run.py
|
|||
|
|
├── frontend/
|
|||
|
|
│ ├── index.html
|
|||
|
|
│ ├── css/
|
|||
|
|
│ │ └── style.css
|
|||
|
|
│ └── js/
|
|||
|
|
│ └── app.js
|
|||
|
|
└── README.md
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
### 1. 安装依赖
|
|||
|
|
```bash
|
|||
|
|
cd backend
|
|||
|
|
pip install -r requirements.txt
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 启动后端
|
|||
|
|
```bash
|
|||
|
|
python run.py
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 访问前端
|
|||
|
|
打开浏览器访问 http://localhost:8000
|
|||
|
|
|
|||
|
|
## 预置公司列表
|
|||
|
|
|
|||
|
|
| 股票代码 | 公司名称 | 行业分类 |
|
|||
|
|
|---------|---------|---------|
|
|||
|
|
| 300622 | 博士眼镜 | 眼镜零售 |
|
|||
|
|
| 603069 | 海汽集团 | 眼镜制造 |
|
|||
|
|
| 300871 | 回盛生物 | 医疗器械 |
|
|||
|
|
| 002867 | 周大生 | 珠宝眼镜 |
|
|||
|
|
| 603839 | 安正时尚 | 时尚配饰 |
|
|||
|
|
|
|||
|
|
## API文档
|
|||
|
|
|
|||
|
|
启动服务后访问 http://localhost:8000/docs 查看完整API文档
|
|||
|
|
|
|||
|
|
## 配置说明
|
|||
|
|
|
|||
|
|
配置文件位于 `backend/app/config.py`
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
# AI API配置
|
|||
|
|
AI_API_KEY = "sk-xxx"
|
|||
|
|
AI_API_URL = "https://ai.comfly.chat/v1/chat/completions"
|
|||
|
|
AI_MODEL = "gemini-3-pro-preview-thinking-*"
|
|||
|
|
|
|||
|
|
# 定时任务配置
|
|||
|
|
SCHEDULER_INTERVAL_HOURS = 24 # 每24小时检查一次
|
|||
|
|
|
|||
|
|
# 数据库配置
|
|||
|
|
DATABASE_URL = "sqlite:///./qingbao.db"
|
|||
|
|
```
|