Nincs leírás

jihuaqiang cb8d942887 Merge branch 'main' of https://git.yishihui.com/ai/knowledge 2 órája
content_indentify 55831e0df7 处理无类别的记录 4 napja
coze dfad1ed4a1 内容理解脚本 1 hete
evaluate 81e2eac3c6 init 2 napja
prompt f5142e05c8 init 4 napja
protos 3717cf998c grpc版本升级到最新 1 hete
query_key 55831e0df7 处理无类别的记录 4 napja
structure cb8d942887 Merge branch 'main' of https://git.yishihui.com/ai/knowledge 2 órája
utils 4bd4ded140 多线程版本改造 5 napja
.env dfad1ed4a1 内容理解脚本 1 hete
.gitignore 81e2eac3c6 init 2 napja
.python-version cbfddea54b 新增飞书操作类 1 hete
1_fetch.py fa373c2f73 init 1 hete
2_identify.py e851187620 init 1 hete
README.md 4bd4ded140 多线程版本改造 5 napja
config.py 81e2eac3c6 init 2 napja
gemini.py 01b0aa1015 init 1 hete
pyproject.toml 3717cf998c grpc版本升级到最新 1 hete
requirements.txt bbbd76a97c db utils 1 hete
uv.lock 3717cf998c grpc版本升级到最新 1 hete

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. 编写文档

代码规范

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