# algorithm **Repository Path**: Uni-Create-Link/algorithm ## Basic Information - **Project Name**: algorithm - **Description**: 算法组 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-20 - **Last Updated**: 2026-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SynSight Algorithm Runtime 面向高校场景的多模态内容风险分析算法运行时工程。 本仓库为 SynSight 的 Python 推理侧工程,服务于大创项目展示与网络信息安全类竞赛场景,负责消费分析任务、执行多模态推理、生成结构化结果并回传后端。 ## 项目定位 `algorithm/` 是平台的 **算法运行时仓库**,主要负责: - RabbitMQ 任务消费 - 本地视频准备 - 场景识别、音频事件分析、语音转写 - 多模态融合分析 - 证据生成与结果装配 - 将进度与最终结果回传 Java 后端 本仓库不是前端仓库,也不是 Java 业务主服务仓库。 它与 `../backend` 通过 RabbitMQ 协同工作。 ## 适用场景 本仓库面向: - 大创项目中的算法支撑层 - 网络信息安全类比赛中的多模态分析引擎展示 - 高校内容风险识别、舆情样本分析与离线演示 ## 当前真实边界 当前仓库是 **推理运行时**,不是完整训练总仓。 当前主链中: - `consumer.py` 负责消息监听与子进程生命周期管理 - `task_runner.py` 负责单任务推理执行 - Java 后端派发任务 - Python 回传四类消息: - `progress` - `final_result` - `error` - `abort` ## 当前模型链路 当前稳定组合为: - 场景识别(scene) - 融合分析(fusion) - 语音转写(whisper) - 音频事件分析(audio_events) 这也是当前 README、答辩材料和运行逻辑应保持一致的实际情况。 ## 技术栈 | 类别 | 技术 | | --- | --- | | 语言 | Python | | 队列通信 | pika / RabbitMQ | | 视频处理 | ffmpeg-python | | 深度学习框架 | PyTorch | | 转写 | Whisper / faster-whisper | | 参数适配 | PEFT | | 文本处理 | jieba、SnowNLP、regex、ftfy | | 音频分析 | librosa、soundfile、panns-inference、torchlibrosa | | 视觉分析 | OpenCV、ultralytics | | 配置加载 | python-dotenv | ## 主要文件 | 文件 | 说明 | | --- | --- | | `consumer.py` | RabbitMQ 主进程 Consumer | | `task_runner.py` | 单任务 Worker | | `config.py` | 配置与环境变量入口 | | `run_local_inference.py` | 离线本地推理入口 | | `analysis_builders.py` | 分析结果构建逻辑 | | `result_artifact_builder.py` | 结果装配逻辑 | | `final_json_builder.py` | 最终结构化输出构建 | | `scene_inference.py` | 场景识别运行时 | | `audio_event_inference.py` | 音频事件运行时 | | `whisper_lora_inference.py` | 语音转写运行时 | | `fusion_inference.py` | 融合推理运行时 | ## 在线运行链路 1. `consumer.py` 监听 `algorithm.task.queue` 2. 每个任务对应一个独立子进程 3. `task_runner.py` 依次完成: - 视频准备 - 场景分析 - 音频事件分析 - 语音转写 - 融合分析 - 证据生成 - 最终结果装配 4. 子进程通过 RabbitMQ 回传: - 进度消息 - 最终结果 - 错误消息 - 中止消息 ## 离线调试能力 仓库提供离线推理入口: - `run_local_inference.py` 可用于: - 样例视频调试 - 竞赛答辩演示样本准备 - 结果结构验证 - 推理链路自测 典型输出包括: - `raw_model_outputs.json` - `normalized_algorithm_result.json` - `analysis_result.json` - `frontend_response.json` ## 环境依赖 运行本仓库至少需要: - Python 3.8 - RabbitMQ - FFmpeg - 可访问的视频源 / MinIO 地址 - 对应模型文件与 checkpoint ## 安装依赖 ```powershell cd algorithm pip install -r requirements.txt ``` 建议使用本仓库独立虚拟环境。 ## 初始化虚拟环境 ```powershell cd algorithm powershell -ExecutionPolicy Bypass -File .\setup_venv.ps1 ``` ## 在线启动 ```powershell cd algorithm .\.venv\Scripts\Activate.ps1 $env:NO_PROXY="*" python consumer.py ``` ## 离线推理示例 ```powershell cd algorithm .\.venv\Scripts\Activate.ps1 python run_local_inference.py --video demo.mp4 --output-dir .\outputs ``` ## 配置说明 主要配置入口: - `.env` - `config.py` 当前关键配置覆盖: - RabbitMQ - MinIO 内外网地址 - 大模型接口参数 - 训练工作区根目录 - 模型与 checkpoint 路径 详细说明请参考 `配置说明.md`。 ## 测试 执行测试: ```powershell cd algorithm pytest ``` 当前测试覆盖方向包括: - 配置加载 - attempt 传播 - 时间粒度 - 本地推理 smoke 测试 - 结果字段契约验证 ## 与后端 / 前端的协同关系 ### 与后端 - 从 RabbitMQ 获取分析任务 - 通过 RabbitMQ 回传进度与最终结果 ### 与前端 - 不直接通信 - 所有分析结果统一先进入 Java 后端,再由后端提供给前端 ## 项目特点 - 多模态推理流程清晰 - 主进程与子进程职责分离 - 结果装配结构化、可复用 - 适合在大创与网安类比赛中作为算法引擎展示 ## 版权说明 Copyright (c) 2026 Liu Minghao. All rights reserved.