Visual Product Search
Enable camera-based product discovery for e-commerce. Customers snap a photo of a product they like, and the pipeline returns visually similar items from your catalog along with pricing, availability, and product metadata.
from mixpeek import Mixpeekclient = Mixpeek(api_key="YOUR_API_KEY", namespace="product-search")# 1. A bucket for product photos with their catalog fields as object metadata, and a collection that embeds each photobucket = client.buckets.create(bucket_name="products",bucket_schema={"properties": {"photo": {"type": "image",},},},)collection = client.collections.create(collection_name="product_catalog",source={"type": "bucket", "bucket_ids": [bucket["bucket_id"]]},feature_extractor={"feature_extractor_name": "multimodal_extractor","version": "v1",},)# 2. Upload and processclient.buckets.upload(bucket["bucket_id"],blobs=[{"property": "photo", "type": "image", "data": "s3://your-bucket/product-images/trail-runner.jpg"}],metadata={"name": "Trail runner","price": 89,"in_stock": True,},)client.collections.trigger(collection["collection_id"])# 3. A customer photo searched against the product embeddingsretriever = client.retrievers.create(retriever_name="product-search",collection_identifiers=["product_catalog"],input_schema={"photo": {"type": "image","required": True,},},stages=[{"stage_name": "search","stage_id": "feature_search","parameters": {"searches": [{"feature_uri": "mixpeek://multimodal_extractor@v1/vertex_multimodal_embedding","query": {"input_mode": "content","value": "{{INPUT.photo}}",},"top_k": 50,},],"final_top_k": 20,},},],)# 4. Searchresults = client.retrievers.execute(retriever["retriever_id"],inputs={"photo": "https://example.com/customer-photo.jpg",},)for doc in results["documents"]:print(doc["document_id"], doc["score"])
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
Frequently asked questions
How do I handle product variants like color and size?
Store variants as metadata on each document. Use attribute filters to narrow results to specific colors or sizes after the visual similarity search.
Can I combine text and image queries?
Yes. Send both a text description and an image to search for visually similar products that also match text criteria, like "red leather" with a shoe photo.
What latency should I expect for production queries?
Typical query latency is 50-150ms for collections up to 10 million products. The retriever handles embedding extraction and search in a single API call.
Related Recipes & Resources
Explore these related resources to deepen your understanding and discover more powerful features
AI-Powered Catalog Search
Replace keyword-based catalog search with AI-powered semantic and visual search. Understands natural language queries like "lightweight summer dress under $50" and combines text understanding with visual similarity for comprehensive product discovery.
Multimodal Extractor
Unified embeddings for video, audio, image, and text: scene/silence chunking, Whisper transcription, thumbnails, and Gemini vision.
Reverse Image Search
Build a reverse image search engine that accepts an image as input and returns visually similar results from your indexed collection. Uses multimodal embeddings to match visual features like color, shape, composition, and semantic content.
E-commerce Catalog Enrichment
Automatically enrich product listings with visual attributes, descriptions, and tags extracted from product images. Fill in missing catalog data at scale.
Face Search Pipeline
Detect, align, and embed faces across your image and video library, then search by face identity. Uses SCRFD for detection and ArcFace for 512-dimensional identity embeddings, enabling large-scale face recognition and matching.
Visual Similarity Search
Unified visual similarity search across both images and video frames. Query with a photo, screenshot, or frame to discover visually related content regardless of format, with MMR diversification to ensure variety in results.