inputs.
Stage shape. Every stage is
{ "stage_name", "stage_type", "config": { "stage_id", "parameters" } }. stage_name is your label; stage_id is the implementation (feature_search, rerank, attribute_filter, …); stage_type is the category (filter, sort, reduce, group, enrich, apply). See Retrievers and Stages.Create + execute (every recipe uses this)
Multimodal RAG
Retrieve context for an LLM across a video’s visual content and transcript, fuse with RRF, rerank, and format into a single prompt-ready context block.Hybrid Search (dense + keyword/BM25)
Fuse semantic recall (dense vectors) with exact-keyword precision (BM25) under RRF — so brand names, SKUs, and prices like$9.99 still match. Requires a text payload index (see Text Indexes).
rrf here — it ranks by position, immune to the cosine-vs-BM25 score-scale mismatch.
Search Across Languages (cross-lingual)
Mixpeek’s text and multimodal embeddings are multilingual (E5-Large / Gemini, 100+ languages) and every language lands in the same vector space. So a query in one language retrieves semantically matching content in any language — no translation step, no per-language index, no language parameter. Query in English, match Farsi, Mandarin, or Spanish transcripts and captions."discussion of sanctions" returns segments whose transcript or caption is in another language — ranked by meaning, not keywords. For audio/video collections, transcription is produced in the source language (universal / audio extractors; Whisper covers 99 languages) and the multilingual embedding is what makes it retrievable cross-lingually — just point feature_uri at that extractor’s transcript embedding, e.g. mixpeek://multimodal_extractor@v1/multilingual_e5_large_instruct_v1.
Mixpeek retrieves across languages; it does not translate. There is no translation output field — matched text comes back in its original language. If you need it rendered in the reader’s language (e.g. original + English side by side), append an Each result then carries both
llm_enrich stage that translates each result into a new field:content (original) and translation (English) for side-by-side display. This is the recommended path — reach for a custom extractor only if you need translation baked in at ingest time.Video Moment Localization
Search a video and collapse matching segments into a handful of seekable moments with start/end timestamps.Face Search (1:N identification)
Find every clip a person appears in by passing a reference face image as acontent query against the face embedding.
Reverse Image Search + Dedup
Find visually similar items from other sources, deduplicated.Search OCR Text from Scanned PDFs
Scanned and archival PDFs are OCR’d — and VLM-corrected for low-confidence blocks — by the document graph extractor, which embeds each text block. So OCR’d text is searchable exactly like any other text: no separate OCR index or step. Optionally keep only high-confidence blocks, or target a layout type (e.g. onlytable blocks).
page_number, bbox, object_type), limited to high-confidence OCR. Drop the high_confidence stage to include fair/poor blocks, or filter object_type to table/form to target structured regions.
Search + Classify
Search, then attach an LLM/taxonomy label to each result in one pipeline.label. For NSFW/safety classification use the classify stage; for taxonomy-backed labeling see Taxonomies.
Scan a batch of inputs
Any retriever can run many queries at once — ideal for moderating an upload queue or scanning a catalog:Composing recipes
Stages are independent — add, remove, or reorder them. Common extensions: append arerank for precision, an attribute_filter for metadata scoping (the optimizer pushes it down for you), or a rag_prepare to format for an LLM.
