requirement
This commit is contained in:
-120
@@ -1,120 +0,0 @@
|
||||
## 情报收集系统设计
|
||||
|
||||
### 参考文档
|
||||
https://alidocs.dingtalk.com/i/nodes/NZQYprEoWoexdo1ohPdxXvDbJ1waOeDk?utm_scene=team_space
|
||||
|
||||
### 程序框架
|
||||
```angular2html
|
||||
intelligence_system/
|
||||
├── config/ # 系统配置中心
|
||||
│ ├── __init__.py # 配置包初始化
|
||||
│ ├── settings.py # 主配置文件(数据库连接、API密钥等)
|
||||
│ └── scheduler_rules.yaml # 任务调度规则
|
||||
|
||||
├── data_collection/ # 数据采集层
|
||||
│ ├── spiders/ # 网络爬虫子系统
|
||||
│ │ ├── weibo_spider.py # 黑猫爬虫
|
||||
│ │
|
||||
│ ├── api_integration/ # API接口子系统
|
||||
│ │ ├── news_api.py # 新闻接口
|
||||
│ │
|
||||
│ └── internal/ # 内部数据收集
|
||||
│ ├── jian_dao_cloud.py # 简道云表单收集器
|
||||
|
||||
├── data_processing/ # 数据处理层
|
||||
│ ├── structured/ # 结构化数据处理
|
||||
│ │ ├── data_cleaner.py # 数据清洗(去重/标准化)
|
||||
│ │ └── schema_mapper.py # 数据结构转换器
|
||||
│ │
|
||||
│ ├── unstructured/ # 非结构化数据处理
|
||||
│ │ ├── text_parser.py # 文本解析(PDF/HTML等)
|
||||
│ │ ├── image_analyzer.py # 图像识别(OpenCV集成)
|
||||
│ │ └── video_processor.py # 音视频分离分析
|
||||
│ │
|
||||
│ └── ai_engine/ # AI分析核心
|
||||
│ ├── nlp_processor.py # 自然语言处理引擎
|
||||
│ ├── sentiment_analyzer.py # 情感分析模型
|
||||
│ └── topic_modeler.py # LDA主题建模工具
|
||||
|
||||
├── storage/ # 数据存储层
|
||||
│ ├── mysql_agent.py # MySQL读写管理器
|
||||
│ └── query_builder.py # SQL动态构建器
|
||||
|
||||
├── services/ # 应用服务层
|
||||
│ ├── monitoring/ # 舆情监控
|
||||
│ │ ├── opinion_monitor.py # 实时舆情追踪
|
||||
│ │ └── brand_reputation.py # 品牌口碑分析
|
||||
│ │
|
||||
│ ├── analysis/ # 竞品分析
|
||||
│ │ ├── competitor_tracker.py # 竞品动态监控
|
||||
│ │ └── swot_generator.py # SWOT分析报告
|
||||
│ │
|
||||
│ ├── reporting/ # 报告服务
|
||||
│ │ ├── daily_reporter.py # 自动化日报生成
|
||||
│ │ └── weekly_digest.py # 周报汇编系统
|
||||
│ │
|
||||
│ └── alert/ # 预警服务
|
||||
│ ├── alert_trigger.py # 动态阈值告警
|
||||
│ └── notification_center.py # 邮件/短信通知
|
||||
|
||||
├── system_management/ # 系统管理层
|
||||
│ ├── scheduler/ # 任务调度
|
||||
│ │ └── task_scheduler.py # 任务调度器
|
||||
│ │
|
||||
│ └── monitor/ # 系统监控
|
||||
│ ├── health_monitor.py # 服务健康检测
|
||||
│ └── performance_watcher.py # 资源占用监控
|
||||
|
||||
├── utils/ # 工具库
|
||||
│ ├── file_handler.py # 通用文件操作
|
||||
│ ├── logger.py # 日志系统
|
||||
│ └── datetime_parser.py # 时间格式处理
|
||||
|
||||
└── main.py # 系统入口(启动所有服务)
|
||||
```
|
||||
### 程序设计原则
|
||||
1. 所有程序尽可能在py文件中运行,尽量避免使用命令行执行
|
||||
2. 配置需要在配置类中定义
|
||||
3. 密钥等信息直接放在配置类中
|
||||
|
||||
### 主程序设计
|
||||
主程序需要一次启动,一直运行,启动时运行一次(在代码中可取消),之后每天定时生成一次报告
|
||||
|
||||
主程序包含爬虫/api调度器。该调度器通过查询mysql中任务调度情况按需执行,db文件中应包含任务名称、
|
||||
任务路径、任务执行频率(支持按天、按周,按分钟)、上次执行时间、下次执行时间等信息
|
||||
|
||||
主程序应包含数据处理调度器,根据数据类别分别处理,如文本数据处理调度器、图片数据处理调度器等,
|
||||
每天定时拉取db获取到的原始数据,分别进行处理,处理完成后将结果保存到mysql中
|
||||
|
||||
主程序应包含日报、周报等生成,根据时间定时生成报告,报告需要存储
|
||||
|
||||
### 日志设计
|
||||
日志系统应兼容多个平台,如win、mac和linux,日志需要保存为log文件,并且在日志大于20mb时自动压缩
|
||||
|
||||
### 数据库链接设计
|
||||
数据存储放在数据库中,数据库类型为mysql,数据库名称为intelligence_system
|
||||
|
||||
数据库表的命名规则与目录一致,数据采集类以collector_为开头,数据处理类以processor_为开
|
||||
头,数据存储类以storage_为开头,应用层类以application_为开头
|
||||
依次类推。
|
||||
|
||||
数据库链接为通用配置,要求数据采集或处理类等,可以直接调用封装好的数据库
|
||||
链接,不必每次都重新写,
|
||||
该链接包含表的增删改查功能,以及执行sql语句功能
|
||||
|
||||
数据库结构:
|
||||
1. collector_news_api:新闻api数据表
|
||||
2. collector_complaint_spider:投诉数据表
|
||||
3. processor_text_processor:文本处理数据表
|
||||
4. processor_image_processor:图片处理数据表
|
||||
5. main_task 任务调度表
|
||||
6. application_reporter_daily:日报数据表
|
||||
7. application_reporter_monthly:周报数据表
|
||||
|
||||
### 数据采集设计
|
||||
每一个数据采集均为独立python文件,里面执行主程序均为main,以方便调度
|
||||
每一个数据采集均会根据规则创建数据库表,数据处理类以processor_为开头,(或者统一维护到一个表中,按来源去区分)
|
||||
|
||||
### 数据处理
|
||||
从多个数据库库表中获取数据,对数据进行处理,处理完成后将结果保存到数据库中,处理结果可能存储在多个表中
|
||||
数据处理数据库表以processor_为开头
|
||||
Reference in New Issue
Block a user