# 知识处理系统项目架构 这是一个多模块的知识处理系统,包含内容识别、结构化处理等功能。项目采用模块化设计,每个功能模块都有独立的日志系统和进程管理。 ## 🏗️ 项目结构 ``` knowledge/ ├── content_indentify/ # 内容识别模块 │ ├── multi_thread_scheduler.py # 多线程调度器 │ ├── indentify.py # 内容识别处理器 │ ├── image_identifier.py # 图片识别模块 │ ├── video_identifier.py # 视频识别模块 │ ├── start_scheduler.sh # 启动脚本 │ ├── logging_config.py # 日志配置(向后兼容) │ └── README.md # 模块说明文档 │ ├── structure/ # 结构化处理模块 │ ├── multi_thread_scheduler.py # 多线程调度器 │ ├── structure_processor.py # 结构化处理器 │ ├── start_structure.sh # 启动脚本 │ ├── logging_config.py # 日志配置(向后兼容) │ └── README.md # 模块说明文档 │ ├── utils/ # 公共工具模块 │ ├── logging_config.py # 公共日志配置 │ ├── mysql_db.py # 数据库工具 │ ├── file.py # 文件工具 │ └── container.py # 容器工具 │ ├── prompt/ # 提示词配置 │ ├── handle.md # 处理提示词 │ └── structure.md # 结构化提示词 │ ├── gemini.py # Gemini API处理器 ├── config.py # 配置文件 └── README.md # 项目说明文档 ``` ## 🚀 核心功能模块 ### 1. 内容识别模块 (`content_indentify/`) **功能**: 自动识别和处理内容中的图片和视频 - 多线程并发处理 - 支持图片和视频的AI识别 - 自动更新数据库 - 完整的日志记录 **使用方法**: ```bash cd content_indentify ./start_scheduler.sh start # 启动 ./start_scheduler.sh status # 查看状态 ./start_scheduler.sh stop # 停止 ``` ### 2. 结构化处理模块 (`structure/`) **功能**: 对已识别的内容进行结构化处理 - 支持按条件筛选处理 - 调用Gemini API进行内容结构化 - 多线程并发处理 - 完整的日志记录 **使用方法**: ```bash cd structure ./start_structure.sh start # 启动 ./start_structure.sh status # 查看状态 ./start_structure.sh stop # 停止 ``` ## 🔧 公共基础设施 ### 日志系统 所有模块都使用统一的日志配置 (`utils/logging_config.py`): ```python from utils.logging_config import get_logger logger = get_logger('ModuleName') logger.info("信息日志") logger.error("错误日志") ``` **日志特点**: - 自动按日期分文件 - 同时输出到文件和控制台 - 支持不同日志级别 - 统一的日志格式 ### 进程管理 每个模块都有完整的进程管理功能: ```bash # 启动 ./start_module.sh start # 查看状态 ./start_module.sh status # 停止 ./start_module.sh stop # 重启 ./start_module.sh restart ``` **进程管理特点**: - PID文件管理 - 优雅退出机制 - 信号处理 - 自动清理资源 ## 📊 监控和日志 ### 日志文件位置 ``` logs/ ├── scheduler_YYYYMMDD.log # 调度器日志 ├── content_identifier_YYYYMMDD.log # 内容识别日志 ├── structure_scheduler_YYYYMMDD.log # 结构化调度器日志 ├── StructureProcessor_YYYYMMDD.log # 结构化处理器日志 └── *_stdout.log # 标准输出日志 ``` ### 实时监控 ```bash # 监控所有日志 tail -f logs/*.log # 监控特定模块 tail -f logs/scheduler_*.log tail -f logs/structure_*.log # 监控错误 tail -f logs/*.log | grep ERROR ``` ## 🚀 部署建议 ### 1. 开发环境 ```bash # 直接运行Python脚本 python3 content_indentify/multi_thread_scheduler.py python3 structure/multi_thread_scheduler.py ``` ### 2. 生产环境 #### 使用启动脚本(推荐) ```bash # 内容识别 cd content_indentify ./start_scheduler.sh start # 结构化处理 cd structure ./start_structure.sh start ``` #### 使用systemd服务 ```bash # 创建服务文件 sudo cp content_indentify/content-scheduler.service /etc/systemd/system/ sudo cp structure/structure-scheduler.service /etc/systemd/system/ # 启用服务 sudo systemctl enable content-scheduler sudo systemctl enable structure-scheduler # 启动服务 sudo systemctl start content-scheduler sudo systemctl start structure-scheduler ``` #### 使用screen/tmux ```bash # 创建会话 screen -S content screen -S structure # 在会话中启动 ./start_scheduler.sh start ./start_structure.sh start # 分离会话 # Ctrl+A, D # 重新连接 screen -r content screen -r structure ``` ## 🔍 故障排除 ### 常见问题 1. **权限问题** ```bash chmod +x */start_*.sh ``` 2. **Python依赖** ```bash pip install -r requirements.txt ``` 3. **数据库连接** - 检查环境变量配置 - 确认数据库服务状态 4. **日志查看** ```bash # 查看错误 grep ERROR logs/*.log # 查看进程状态 ps aux | grep python ``` ### 调试模式 ```bash # 前台运行,查看详细输出 python3 -u module_name/multi_thread_scheduler.py # 查看实时日志 tail -f logs/*.log ``` ## 📈 性能优化 ### 线程配置 - **内容识别**: 默认5线程,每2分钟处理一条 - **结构化处理**: 默认5线程,每2分钟处理一条 可根据服务器性能调整: ```python scheduler = MultiThreadScheduler( thread_count=10, # 增加线程数 interval_minutes=1 # 减少处理间隔 ) ``` ### 资源监控 ```bash # 监控CPU和内存 htop top # 监控磁盘空间 df -h du -sh logs/ # 监控进程 ps aux | grep python ``` ## 🤝 贡献指南 ### 添加新模块 1. 创建模块目录 2. 复制基础文件结构 3. 实现核心功能 4. 添加日志记录 5. 创建启动脚本 6. 编写文档 ### 代码规范 - 使用统一的日志配置 - 遵循现有的命名规范 - 添加完整的文档注释 - 实现优雅退出机制