Sobre el proyecto

SentrySearch es una herramienta de línea de comandos para búsqueda semántica de video. Procesa archivos de video dividiéndolos en fragmentos superpuestos (por defecto 30 segundos con 5 segundos de superposición), genera embeddings para cada fragmento usando la API de Gemini Embedding de Google, Qwen3-VL-Embedding de Alibaba DashScope (qwen-cloud), o un modelo local Qwen3-VL, y almacena los vectores en una base de datos local ChromaDB. Los usuarios pueden buscar con consultas en lenguaje natural o imágenes de referencia para recuperar segmentos de video coincidentes, que se recortan automáticamente de los archivos originales y se guardan como clips. Las características clave incluyen: - Búsqueda semántica sobre video basada en texto e imágenes - Múltiples backends de embeddings: API de Gemini (predeterminado), Qwen Cloud (DashScope) y Qwen3-VL local (variantes 8B o 2B con cuantización opcional de 4 bits) - Detección automática de hardware para selección de modelo local (qwen8b para GPUs NVIDIA con 18GB+ VRAM o Apple Silicon con 24GB+ RAM; qwen2b para configuraciones más pequeñas) - Pipeline de preprocesamiento que reduce fragmentos a 480p a 5fps mediante ffmpeg antes del embedding, reduciendo el tamaño del payload y el tiempo de inferencia - Omisión de fotogramas estáticos para evitar incrustar fragmentos visualmente estáticos - Umbral de confianza con reranking opcional basado en VLM (Gemini 2.5 Flash para backends en la nube, Qwen3-VL Instruct local para local) - Deduplicación de resultados casi duplicados mediante límite de similitud coseno - Modo de destacados para mostrar clips estadísticamente anómalos (métodos knn, centroide o LOF) - Superposición de metadatos de dashcam Tesla (velocidad, GPS, geocodificación inversa) en clips recortados - Integración con SentryMerge para costura de eventos multicámara y SentryBlur para redacción de rostros/placas/prompts - Cola de mensajes fallidos para fragmentos con capacidad de reintento - Comandos de gestión de índice (estadísticas, eliminar, restablecer) La instalación usa uv (requiere Python 3.11/3.12). El backend local requiere ffmpeg en macOS y PyTorch con CUDA en NVIDIA. Los embeddings de diferentes backends/modelos se aíslan en índices separados. El costo del backend Gemini es aproximadamente $2.84 por hora de metraje indexado (configuración predeterminada). DashScope factura por cada 1k tokens de entrada según modalidad. El backend local funciona completamente sin conexión sin costos de API. La herramienta está diseñada para flujos de trabajo de dashcam/metraje de seguridad pero funciona con cualquier archivo de video. Produce clips MP4 estándar reproducibles en cualquier lugar.