scene-detection / Dockerfile
jslmmfboom-coder
Revert: 回滚ONNX(HF Spaces上反而更慢), 移除可视化文字叠加
27fd084
Raw
History Blame Contribute Delete
1.81 kB
# ============================================
# HF Spaces Dockerfile — 场景一致性检测 (CPU)
# ============================================
FROM python:3.10-slim
# 系统依赖(OpenCV 运行时 + 文件处理)
RUN apt-get update && apt-get install -y --no-install-recommends \
libgl1 \
libglib2.0-0 \
libsm6 \
libxext6 \
libxrender1 \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# 1. 先安装 PyTorch CPU 版(与 paddlepaddle 分开安装避免冲突)
RUN pip install --no-cache-dir torch torchvision --index-url https://download.pytorch.org/whl/cpu
# 2. 安装其余 Python 依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 3. 预下载 DINOv2 reg4 模型权重(约 85MB,构建时下载到镜像中)
RUN python -c "import timm; timm.create_model('vit_small_patch14_reg4_dinov2', pretrained=True)" || echo "DINOv2 pre-download warning"
# 4. 预下载 BGE-small-zh 模型权重(约 100MB)
RUN python -c "from transformers import AutoTokenizer, BertModel; AutoTokenizer.from_pretrained('BAAI/bge-small-zh-v1.5'); BertModel.from_pretrained('BAAI/bge-small-zh-v1.5')" || echo "BGE pre-download warning"
# 5. 预下载 PaddleOCR 模型(约 50MB,通过运行一次 OCR 触发下载)
RUN python -c "from paddleocr import PaddleOCR; from PIL import Image; ocr=PaddleOCR(use_angle_cls=True, lang='ch'); img=Image.new('RGB',(100,100),'white'); img.save('/tmp/d.png'); ocr.ocr('/tmp/d.png', cls=True)" || echo "PaddleOCR pre-download warning"
# 6. 复制应用代码
COPY . .
# 7. 创建运行时目录
RUN mkdir -p /app/History_imgs /app/qdrant_data /app/Logs
# HF Spaces Docker 默认端口 7860
EXPOSE 7860
ENV PORT=7860
# 启动服务
CMD ["python", "-m", "uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]