
Gemini Embedding 2 या Qwen3-VL का उपयोग करके वीडियो पर सिमैंटिक खोज।
वीडियो फुटेज पर सिमेंटिक सर्च। जो आप खोज रहे हैं उसे टाइप करें, एक ट्रिम किया हुआ क्लिप वापस पाएं।
[!IMPORTANT] आधिकारिक स्रोत: github.com/ssrajadh/sentrysearch ही SentrySearch का एकमात्र आधिकारिक ठिकाना है। इस प्रोजेक्ट को पुनःप्रकाशित या मिरर करने वाली अन्य साइटें मेंटेनर से संबद्ध या समर्थित नहीं हैं, हमेशा इसी रिपॉज़िटरी से डाउनलोड करें।
भाषाएँ: English · 简体中文
नया: Apple Silicon के लिए MLX बैकएंड: लोकल 2B मॉडल को आधी मेमोरी में दोगुनी तेज़ी से चलाता है, उसी सटीकता के साथ
SentrySearch आपके वीडियो को ओवरलैपिंग चंक्स में विभाजित करता है, प्रत्येक चंक को Google के Gemini Embedding API, Alibaba DashScope (qwen-cloud), या एक लोकल Qwen3-VL मॉडल का उपयोग करके वीडियो के रूप में एम्बेड करता है, और वेक्टर को एक लोकल ChromaDB डेटाबेस में संग्रहीत करता है। जब आप खोजते हैं, आपकी टेक्स्ट क्वेरी (या छवि, देखें छवि द्वारा खोजें) को उसी वेक्टर स्पेस में एम्बेड किया जाता है और संग्रहीत वीडियो एम्बेडिंग्स के विरुद्ध मिलान किया जाता है। शीर्ष मिलान को मूल फ़ाइल से स्वचालित रूप से ट्रिम करके एक क्लिप के रूप में सहेजा जाता है।
macOS/Linux:```bash curl -LsSf https://astral.sh/uv/install.sh | sh
**Windows:**```powershell
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
> **Python 3.11 या 3.12 आवश्यक है** (PyTorch wheels अभी तक 3.13+ का समर्थन नहीं करते)। यदि आपका डिफ़ॉल्ट Python नया है, तो एक managed 3.12 इंस्टॉल करें और टूल इंस्टॉल को pin करें:
> ```bash
> uv python install 3.12
> uv tool install --python 3.12 .
> ```
3. अपनी API key सेट करें (या [इसके बजाय एक local model का उपयोग करें](#local-backend-no-api-key-needed)) — **केवल डिफ़ॉल्ट Gemini backend के लिए आवश्यक**; यदि आप `--backend local`, `--backend mlx`, या `.env` में `DASHSCOPE_API_KEY` के साथ `--backend qwen-cloud` का उपयोग करते हैं तो इसे छोड़ दें।```bash
sentrysearch init
यह आपकी Gemini API key के लिए प्रॉम्प्ट करता है, इसे .env में लिखता है, और एक परीक्षण embedding के साथ इसे मान्य करता है।
5. खोजें:```bash
sentrysearch search "red truck running a stop sign"
वीडियो चंकिंग और ट्रिमिंग के लिए ffmpeg आवश्यक है। यदि आपके पास यह सिस्टम-वाइड नहीं है, तो बंडल किया गया imageio-ffmpeg स्वचालित रूप से उपयोग किया जाता है।
मैनुअल सेटअप: यदि आप
sentrysearch initका उपयोग नहीं करना चाहते हैं, तो आप.env.exampleको.envमें कॉपी कर सकते हैं और aistudio.google.com/apikey से अपनी कुंजी मैन्युअल रूप से जोड़ सकते हैं।
$ sentrysearch init
Enter your Gemini API key (get one at https://aistudio.google.com/apikey): ****
Validating API key...
Setup complete. You're ready to go — run sentrysearch index <directory> to get started.
यदि कोई key पहले से configured है, तो आपसे पूछा जाएगा कि क्या उसे overwrite करना है।
> **Tip:** आकस्मिक overspending से बचने के लिए [aistudio.google.com/billing](https://aistudio.google.com/billing) पर spending limit सेट करें।
### Index footage```bash
$ sentrysearch index /path/to/video/footage
Indexing file 1/3: front_2024-01-15_14-30.mp4 [chunk 1/4]
Indexing file 1/3: front_2024-01-15_14-30.mp4 [chunk 2/4]
...
Indexed 12 new chunks from 3 files. Total: 12 chunks from 3 files.
विकल्प:
--chunk-duration 30 — प्रति चंक सेकंड--overlap 5 — चंक्स के बीच ओवरलैप--no-preprocess — डाउनस्केलिंग/फ्रेम रेट कमी छोड़ें (कच्चे चंक्स भेजें)--target-resolution 480 — प्रीप्रोसेसिंग के लिए पिक्सेल में लक्ष्य ऊँचाई--target-fps 5 — प्रीप्रोसेसिंग के लिए लक्ष्य फ्रेम रेट--no-skip-still — सभी चंक्स एम्बेड करें, यहाँ तक कि वे भी जिनमें कोई दृश्य परिवर्तन नहीं है--rpm 10 — क्लाउड API के लिए प्रति मिनट अनुरोधों की सीमा (नीचे विवरण)--backend local — Gemini के बजाय स्थानीय मॉडल का उपयोग करें (नीचे विवरण)--backend mlx — Apple Silicon पर MLX के माध्यम से स्थानीय मॉडल का उपयोग करें, local से तेज़ और हल्का (नीचे विवरण)$ sentrysearch search "red truck running a stop sign" #1 [0.87] front_2024-01-15_14-30.mp4 @ 02:15-02:45 #2 [0.74] left_2024-01-15_14-30.mp4 @ 02:10-02:40 #3 [0.61] front_2024-01-20_09-15.mp4 @ 00:30-01:00
Saved clip: ./match_front_2024-01-15_14-30_02m15s-02m45s.mp4
यदि सर्वोत्तम परिणाम का समानता स्कोर विश्वास सीमा (डिफ़ॉल्ट 0.41, या `--backend mlx` पर 0.35) से नीचे है, तो ट्रिम करने से पहले आपसे पुष्टि मांगी जाएगी:```
No confident match found (best score: 0.28). Show results anyway? [y/N]:
--no-trim के साथ, कम-विश्वास वाले परिणामों को प्रॉम्प्ट के बजाय एक नोट के साथ दिखाया जाता है।
विकल्प: --results N, --output-dir DIR, ऑटो-ट्रिमिंग छोड़ने के लिए --no-trim, कॉन्फिडेंस कटऑफ समायोजित करने के लिए --threshold 0.5, केवल सर्वश्रेष्ठ मैच के बजाय शीर्ष N क्लिप सहेजने के लिए --save-top N, यह निर्धारित करने के लिए --dedupe कि कोई परिणाम उच्च-रैंक वाले चयन के समान कितना हो सकता है इससे पहले कि उसे हटा दिया जाए (डिफ़ॉल्ट रूप से चालू, ताकि एक ही क्षण के ओवरलैपिंग चंक्स सूची को न भरें), और ट्रिमिंग से पहले लौटाए गए उम्मीदवारों को पुनः रैंक करने के लिए VLM से कहने हेतु --rerank। बैकएंड और मॉडल इंडेक्स से स्वतः पहचाने जाते हैं — ओवरराइड करने के लिए केवल --backend या --model पास करें।```bash
sentrysearch search "red truck" --save-top 5 --dedupe 0.95
sentrysearch search "pedestrian crossing behind the car" --rerank --results 10
`--dedupe` मान एक cosine similarity सीमा (0–1) है। कोई भी परिणाम जिसकी पहले से रखे गए उच्च-रैंक वाले परिणाम के साथ similarity इस मान से अधिक होती है, हटा दिया जाता है। कम मान अधिक सख्त होते हैं: `0.8` के लिए परिणामों का बहुत भिन्न होना आवश्यक है, `0.95` केवल लगभग-समान chunks को हटाता है। डिफ़ॉल्ट `0.9` है; हर परिणाम रखने के लिए `--dedupe 1` पास करें। deduping के दौरान search अतिरिक्त candidates प्राप्त करता है, इसलिए आपको अभी भी उतने ही परिणाम मिलते हैं जितने आपने मांगे थे।