Sin descripción

jihuaqiang ed95a9e2c6 上传失败状态判断 hace 10 meses
content_indentify ed95a9e2c6 上传失败状态判断 hace 10 meses
coze dfad1ed4a1 内容理解脚本 hace 10 meses
evaluate 81e2eac3c6 init hace 10 meses
prompt f5142e05c8 init hace 10 meses
protos 3717cf998c grpc版本升级到最新 hace 10 meses
query_key f45dad4b93 抖音搜索词录入 hace 10 meses
structure cb8d942887 Merge branch 'main' of https://git.yishihui.com/ai/knowledge hace 10 meses
utils 4bd4ded140 多线程版本改造 hace 10 meses
.env dfad1ed4a1 内容理解脚本 hace 10 meses
.gitignore 81e2eac3c6 init hace 10 meses
.python-version cbfddea54b 新增飞书操作类 hace 10 meses
1_fetch.py fa373c2f73 init hace 10 meses
2_identify.py e851187620 init hace 10 meses
README.md 4bd4ded140 多线程版本改造 hace 10 meses
config.py 81e2eac3c6 init hace 10 meses
gemini.py 01b0aa1015 init hace 10 meses
pyproject.toml 3717cf998c grpc版本升级到最新 hace 10 meses
requirements.txt bbbd76a97c db utils hace 10 meses
uv.lock 3717cf998c grpc版本升级到最新 hace 10 meses

README.md

知识处理系统项目架构

这是一个多模块的知识处理系统,包含内容识别、结构化处理等功能。项目采用模块化设计,每个功能模块都有独立的日志系统和进程管理。

🏗️ 项目结构

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识别
  • 自动更新数据库
  • 完整的日志记录

使用方法:

cd content_indentify
./start_scheduler.sh start    # 启动
./start_scheduler.sh status   # 查看状态
./start_scheduler.sh stop     # 停止

2. 结构化处理模块 (structure/)

功能: 对已识别的内容进行结构化处理

  • 支持按条件筛选处理
  • 调用Gemini API进行内容结构化
  • 多线程并发处理
  • 完整的日志记录

使用方法:

cd structure
./start_structure.sh start    # 启动
./start_structure.sh status   # 查看状态
./start_structure.sh stop     # 停止

🔧 公共基础设施

日志系统

所有模块都使用统一的日志配置 (utils/logging_config.py):

from utils.logging_config import get_logger

logger = get_logger('ModuleName')
logger.info("信息日志")
logger.error("错误日志")

日志特点:

  • 自动按日期分文件
  • 同时输出到文件和控制台
  • 支持不同日志级别
  • 统一的日志格式

进程管理

每个模块都有完整的进程管理功能:

# 启动
./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                     # 标准输出日志

实时监控

# 监控所有日志
tail -f logs/*.log

# 监控特定模块
tail -f logs/scheduler_*.log
tail -f logs/structure_*.log

# 监控错误
tail -f logs/*.log | grep ERROR

🚀 部署建议

1. 开发环境

# 直接运行Python脚本
python3 content_indentify/multi_thread_scheduler.py
python3 structure/multi_thread_scheduler.py

2. 生产环境

使用启动脚本(推荐)

# 内容识别
cd content_indentify
./start_scheduler.sh start

# 结构化处理
cd structure
./start_structure.sh start

使用systemd服务

# 创建服务文件
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

# 创建会话
screen -S content
screen -S structure

# 在会话中启动
./start_scheduler.sh start
./start_structure.sh start

# 分离会话
# Ctrl+A, D

# 重新连接
screen -r content
screen -r structure

🔍 故障排除

常见问题

  1. 权限问题

    chmod +x */start_*.sh
    
    1. Python依赖 bash pip install -r requirements.txt
  2. 数据库连接

    • 检查环境变量配置
    • 确认数据库服务状态
  3. 日志查看 ```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分钟处理一条

可根据服务器性能调整:

scheduler = MultiThreadScheduler(
    thread_count=10,        # 增加线程数
    interval_minutes=1       # 减少处理间隔
)

资源监控

# 监控CPU和内存
htop
top

# 监控磁盘空间
df -h
du -sh logs/

# 监控进程
ps aux | grep python

🤝 贡献指南

添加新模块

  1. 创建模块目录
  2. 复制基础文件结构
  3. 实现核心功能
  4. 添加日志记录
  5. 创建启动脚本
  6. 编写文档

代码规范

  • 使用统一的日志配置
  • 遵循现有的命名规范
  • 添加完整的文档注释
  • 实现优雅退出机制