# 眼镜行业情报分析系统 ## 项目简介 自动从巨潮资讯网获取眼镜行业及相关行业上市公司年报/半年报,提取战略性内容,通过多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" ```