Dataset Versioning
Treat versioned object storage as your dataset's source of truth. Capture complete snapshots-raw assets, embeddings, and cluster assignments-for deterministic reconstruction at any point in time.
"Retrieve training dataset snapshot from October 1st with all embeddings and cluster assignments"
Why This Matters
When datasets stop slipping out from under you, everything downstream gets easier. True reproducibility means rebuilding exact training inputs, not reconstructing from memory.
from mixpeek import Mixpeekclient = Mixpeek(api_key="YOUR_API_KEY", namespace="training-data")# 1. Every object records the dataset version it belongs tobucket = client.buckets.create(bucket_name="training-data",bucket_schema={"properties": {"image": {"type": "image"}}},)client.buckets.upload(bucket["bucket_id"],blobs=[{"property": "image", "type": "image", "data": "s3://your-bucket/training/v2/img-0001.jpg"}],metadata={"version": "v2"},)client.buckets.upload(bucket["bucket_id"],blobs=[{"property": "image", "type": "image", "data": "s3://your-bucket/training/v3/img-0001.jpg"}],metadata={"version": "v3"},)# 2. One collection per version, scoped with a source filter on that metadatav2 = client.collections.create(collection_name="training-v2",source={"type": "bucket", "bucket_ids": [bucket["bucket_id"]], "source_filters": {"filters": {"AND": [{"field": "metadata.version", "operator": "eq", "value": "v2"}]}}},feature_extractor={"feature_extractor_name": "multimodal_extractor","version": "v1",},)# The next version is a clone with a different filter; extractor and settings carry overv3 = client.collections.clone(v2["collection_id"],collection_name="training-v3",source={"type": "bucket","bucket_ids": [bucket["bucket_id"]],"source_filters": {"filters": {"AND": [{"field": "metadata.version", "operator": "eq", "value": "v3"}]}},},)client.collections.trigger(v2["collection_id"])client.collections.trigger(v3["collection_id"])# 3. Query each version on its own and comparefor version in ("training-v2", "training-v3"):retriever = client.retrievers.create(retriever_name="search-" + version,collection_identifiers=[version],input_schema={"query": {"type": "text", "required": True}},stages=[{"stage_name": "search","stage_id": "feature_search","parameters": {"searches": [{"feature_uri": "mixpeek://multimodal_extractor@v1/vertex_multimodal_embedding","query": {"input_mode": "text", "value": "{{INPUT.query}}"},"top_k": 20,},],"final_top_k": 20,},},],)results = client.retrievers.execute(retriever["retriever_id"], inputs={"query": "product demos"})print(version, [doc["document_id"] for doc in results["documents"][:5]])
Feature Extractors
Multimodal Extractor
Unified embeddings for video, audio, image, and text: scene/silence chunking, Whisper transcription, thumbnails, and Gemini vision.
Retriever Stages
feature search
Search and filter documents by vector similarity using feature embeddings
Related Blog Posts
Documentation
Related Recipes & Resources
Explore these related resources to deepen your understanding and discover more powerful features
Multimodal Extractor
Unified embeddings for video, audio, image, and text: scene/silence chunking, Whisper transcription, thumbnails, and Gemini vision.
Clustering & Theme Discovery
Unsupervised clustering that groups content into semantic themes using HDBSCAN. Surfaces hidden patterns, content variants, and outliers without requiring predefined labels.
Semantic Drift Detection
Monitor distribution shifts between baseline and current data using cluster comparison. Detect when new content diverges from training data or when content mix changes unexpectedly.
Processing a Large Media Library
Run extraction over tens of thousands of files without paying for the same object twice. Price the job before you submit it, keep new uploads flowing in on their own, and move cold collections out of the vector store while they stay searchable.
Video Transcription & Indexing Pipeline
Automatically transcribe video content with speaker identification, timestamps, and full-text indexing for downstream search and analytics.
Semantic Multimodal Search
Unified semantic search across all content types. Query by natural language and retrieve relevant video clips, images, audio segments, and documents based on meaning-not keywords or manual tags.