| .agent/workflows | ||
| .shared/ui-ux-pro-max | ||
| .vscode | ||
| backend | ||
| frontend | ||
| logs | ||
| qingbao.db | ||
| README.md | ||
| start.bat | ||
| stop.bat | ||
眼镜行业情报分析系统
项目简介
自动从巨潮资讯网获取眼镜行业及相关行业上市公司年报/半年报,提取战略性内容,通过多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. 安装依赖
cd backend
pip install -r requirements.txt
2. 启动后端
python run.py
3. 访问前端
打开浏览器访问 http://localhost:8000
预置公司列表
| 股票代码 | 公司名称 | 行业分类 |
|---|---|---|
| 300622 | 博士眼镜 | 眼镜零售 |
| 603069 | 海汽集团 | 眼镜制造 |
| 300871 | 回盛生物 | 医疗器械 |
| 002867 | 周大生 | 珠宝眼镜 |
| 603839 | 安正时尚 | 时尚配饰 |
API文档
启动服务后访问 http://localhost:8000/docs 查看完整API文档
配置说明
配置文件位于 backend/app/config.py
# 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"