หน้านี้แปลด้วยเครื่อง พบข้อผิดพลาดใช่ไหมช่วยกันปรับปรุง
Skip to content

Docker Image ​

SnapOtter เผยแพร่เป็น Docker image เพียงตัวเดียว รันมันเดี่ยว ๆ แล้วมันจะเริ่ม PostgreSQL 17 และ Redis แบบฝังตัวบนอินเทอร์เฟซ loopback (โหมดฝังตัว) สำหรับการใช้งานจริง ให้รันควบคู่ไปกับคอนเทนเนอร์ PostgreSQL 17 และ Redis 8 แยกต่างหากด้วย Compose แอป image นี้ทำงานได้บนทุกแพลตฟอร์ม

เริ่มต้นอย่างรวดเร็ว ​

bash
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest

เมื่อไม่ได้ตั้งค่า DATABASE_URL ตัวนี้จะรันในโหมดฝังตัว: PostgreSQL และ Redis จะเริ่มทำงานภายในคอนเทนเนอร์บน loopback โดยเก็บข้อมูลทั้งหมดไว้ใต้ volume SnapOtter-data ตั้งค่า DATABASE_URL และ REDIS_URL (อย่างที่สแตก Compose ทำ) เพื่อใช้บริการภายนอกแทน ดู การกำหนดค่า

การเร่งความเร็วด้วย NVIDIA CUDA ​

image นี้มีการรองรับ NVIDIA CUDA บน amd64 หากคุณมี NVIDIA GPU พร้อมติดตั้ง NVIDIA Container Toolkit แล้ว ให้เพิ่ม --gpus all:

bash
docker run -d --name SnapOtter --gpus all -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest

image จะตรวจจับ CUDA โดยอัตโนมัติในขณะรัน หากไม่มี --gpus all หรือเมื่อ CUDA ไม่พร้อมใช้งาน เครื่องมือ AI จะรันบน CPU ใช้ image เดียวกันได้ทั้งสองแบบ

การเร่งความเร็วด้วย iGPU ของ Intel/AMD ผ่าน VA-API, Quick Sync หรือ OpenCL ยังไม่รองรับสำหรับการอนุมาน AI ของ SnapOtter ในปัจจุบัน การแมป /dev/dri เข้าไปในคอนเทนเนอร์อาจเปิดเผยอุปกรณ์ render ได้ แต่รันไทม์ AI จะยังคงใช้ CPU เว้นแต่จะมี CUDA พร้อมใช้งาน

การเปรียบเทียบประสิทธิภาพ ​

ทดสอบบน NVIDIA RTX 4070 (VRAM 12 GB) ด้วยภาพบุคคล JPEG ขนาด 572x1024

ประสิทธิภาพแบบ warm ​

เครื่องมือCPUGPUเร็วขึ้น
การลบพื้นหลัง (u2net)2,415ms879ms2.7x
การลบพื้นหลัง (isnet)2,457ms1,137ms2.2x
ขยายภาพ 2x350ms309ms1.1x
ขยายภาพ 4x910ms310ms2.9x
เบลอใบหน้า139ms122ms1.1x

Cold start (คำขอแรกหลังเริ่มคอนเทนเนอร์) ​

เครื่องมือCPUGPUเร็วขึ้น
การลบพื้นหลัง22,286ms4,792ms4.7x
ขยายภาพ 2x3,957ms2,318ms1.7x

OCR ไม่รวมอยู่ในการเปรียบเทียบ CUDA ทั้งเทียร์ Tesseract ในตัวและเทียร์ RapidOCR/ONNX เสริมใช้ CPU รวมถึงเมื่อคอนเทนเนอร์มีสิทธิ์เข้าถึง NVIDIA GPU

การตรวจสอบสถานะ CUDA ​

หลังจากคำขอ AI ครั้งแรก endpoint สำหรับตรวจสอบสถานะของผู้ดูแลระบบจะรายงานสถานะ CUDA GPU:

GET /api/v1/admin/health
{"ai": {"gpu": true}}

Docker Compose ​

สแตก Compose แบบเต็มประกอบด้วยแอป, PostgreSQL 17 และ Redis 8 ดู การนำไปใช้งาน สำหรับ docker-compose.yml ฉบับสมบูรณ์ ตัวอย่างขั้นต่ำ:

yaml
services:
  SnapOtter:
    image: snapotter/snapotter:latest
    ports:
      - "1349:1349"
    volumes:
      - SnapOtter-data:/data
      - SnapOtter-workspace:/tmp/workspace
    environment:
      - DATABASE_URL=postgres://snapotter:snapotter@postgres:5432/snapotter
      - REDIS_URL=redis://redis:6379
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy
    restart: unless-stopped
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

  postgres:
    image: postgres:17-alpine
    environment:
      POSTGRES_USER: snapotter
      POSTGRES_PASSWORD: snapotter     # เปลี่ยนสิ่งนี้สำหรับการปรับใช้ที่ไม่ใช่ภายในเครื่อง
      POSTGRES_DB: snapotter
    volumes:
      - SnapOtter-pgdata:/var/lib/postgresql/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U snapotter -d snapotter"]
      interval: 10s
      timeout: 5s
      retries: 12

  redis:
    image: redis:8-alpine
    command: ["redis-server", "--maxmemory-policy", "noeviction", "--appendonly", "yes"]
    volumes:
      - SnapOtter-redisdata:/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 12

volumes:
  SnapOtter-data:
  SnapOtter-workspace:
  SnapOtter-pgdata:
  SnapOtter-redisdata:

สำหรับการเร่งความเร็วด้วย NVIDIA CUDA ผ่าน Docker Compose ให้เพิ่มส่วน deploy เข้าไปในบริการ SnapOtter:

yaml
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

การล็อกเวอร์ชัน ​

แท็กคำอธิบาย
latestรุ่นล่าสุด
2.2.0เวอร์ชันที่ระบุแน่นอน
2.2patch ล่าสุดใน 2.2.x
2minor ล่าสุดใน 2.x

แพลตฟอร์ม ​

สถาปัตยกรรมการรองรับ GPUหมายเหตุ
linux/amd64NVIDIA CUDAการเร่งความเร็ว CUDA เต็มรูปแบบสำหรับเครื่องมือ AI
linux/arm64CPU เท่านั้นRaspberry Pi 4/5, Apple Silicon ผ่าน Docker Desktop

การย้ายจากแท็กก่อนหน้า ​

หากคุณเคยใช้แท็ก :cuda ให้เปลี่ยนไปใช้ :latest และคง --gpus all ไว้ การรองรับ GPU เหมือนเดิม เป็น image ที่รวมเป็นหนึ่งเดียว

ข้อมูลและการตั้งค่าของคุณจะถูกเก็บรักษาไว้ใน volume