How augustine-umeh/mefid works
Mefid is a personal multimodal video-search product: users upload media, the system derives visual and speech signals, indexes embeddings, and returns timestamped searchable moments. The graph shows the documented text-search calls and the service boundaries suggested by the tree; upload-route orchestration and several service internals were not sampled, so those links are not asserted. Image, video, and combined-modality search are explicitly placeholders in the sampled search route.
Main entry points: upload_route.py Upload route · search_route.py Search route · embedder_client.py Embedder client · indexer_client.py Indexer client
Components 20
API and workflows
- Upload route
services/api/src/routes/upload_route.py - Search route
services/api/src/routes/search_route.py - Media client
services/api/src/service_clients/media_processor_client.py - Caption client
services/api/src/service_clients/caption_client.py - Transcribe client
services/api/src/service_clients/transcribe_client.py - Embedder client
services/api/src/service_clients/embedder_client.py - Indexer client
services/api/src/service_clients/indexer_client.py - Moment fusion
services/exports/src/exports/fusion/pipeline.py
Media understanding
- Frame extraction
services/media_processor/src/routes/extract.py - Hybrid sampling
services/media_processor/src/sampling/hybrid_sampler.py - Scene captioning
services/caption/src/caption_service.py - Caption generation
services/caption/src/pipeline/caption_generation.py - Speech transcription
services/transcribe/src/whisper_service.py
Embeddings and index
- CLIP embeddings
services/embedder/src/clip_service.py - Vector ingestion
services/indexer/src/routes/add.py - Vector retrieval
services/indexer/src/routes/search.py - FAISS indexes
services/exports/src/exports/faiss_store.py
Metadata and vectors
- Media metadata
services/exports/src/exports/db_clients/supabaseDB.py - Media object store
services/exports/src/exports/db_clients/minioDB.py
Other components
- Media user
Connections 23
- Media user → Upload route: uploads media
- Media user → Search route: queries moments
- Search route → Embedder client: embeds query
- Search route → Indexer client: requests candidates
- Search route → Media metadata: hydrates metadata
- Search route → Moment fusion: ranks moments
- Embedder client → CLIP embeddings: requests vectors
- Indexer client → Vector retrieval: searches vectors
- Vector retrieval → FAISS indexes: reads indexes
- Vector ingestion → FAISS indexes: writes vectors
- Vector ingestion → Media metadata: persists mappings
- Upload route → Media client: requests extraction
- Media client → Frame extraction: calls extraction
- Frame extraction → Hybrid sampling: samples frames
- Upload route → Caption client: requests captions
- Caption client → Scene captioning: calls captioning
- Scene captioning → Caption generation: generates captions
- Upload route → Transcribe client: requests transcription
- Transcribe client → Speech transcription: calls transcription
- Upload route → Embedder client: requests embeddings
- Upload route → Indexer client: submits vectors
- Upload route → Media metadata: stores media data
- Upload route → Media object store: stores media files