How do I ... in Python?
A unified multimodal AI backend stores media, runs models, and serves queries from one Python package. These guides start from that category — frames, RAG, search, pipelines — then show the schema that implements it. Install with pip install pixeltable[serve]. Not a vertical SaaS app.
How do I extract keyframes from video in Python?
Keyframe extraction pulls representative stills from a compressed video so later models run on pictures instead of every encoded frame. You choose I-frames, a fixed frames-per-second rate, or a fixed count. Each still keeps a timestamp on the source clip, which is what a video frame timestamp in Python actually is: a moment, not a filename.
How do I build video RAG in Python?
Video RAG retrieves a moment in a clip — a frame, timestamp, or transcript line — and gives that evidence to a language model. It is not captioning one file inside a chat window, and it is not a vector of titles. GitHub examples are a table, a frame view, an index, and a query that returns the time.
How do I build a video processing pipeline in Python?
A video processing pipeline turns clips into frames, detections, transcripts, and searchable moments. Video analysis AI is those models attached to the stills and the soundtrack, not a folder of JPEGs with lost timestamps. The pipeline is incremental: a new file recomputes that row; unchanged clips stay cached.
How do I build a multimodal RAG pipeline in Python?
A multimodal RAG pipeline retrieves pages, frames, or images — not only text chunks — and passes those pieces to a language model at question time. Vision RAG is the image half of that job: embed stills, rank them, and ground the answer in the retrieved picture. The index is one part of the pipeline, not a second database.
How do I chunk PDFs for RAG in Python?
Chunking a PDF for RAG splits the file into retrieval units small enough to embed and cite: sentences, pages, or token windows. A sentence window does not store a page number. A page split stores a 0-based page index on the parent file. Chunking strategies trade recall against context size; the splitter is the strategy.
How do I embed images for search in Python?
Image embeddings map pictures into a vector space so similar stills can be ranked. CLIP embeddings put text and images in one space, which is how a sentence retrieves a photo. Indexing images for RAG means those vectors live on the rows that hold the files, so a new picture is searchable when it is inserted.
How do I do semantic search in Python?
Semantic search in Python ranks rows by meaning: embed the query and the stored text with the same model, then return nearest neighbors. A vector database in Python is one way to store those vectors. The other is an index on the table that already holds the passages, so insert updates search without a second copy.
How do I do hybrid search in Python?
Hybrid search combines more than one signal. The usual pair is dense similarity plus a structured filter so a semantic hit still respects the row metadata. BM25-plus-dense fusion is a different product: a dedicated search engine that mixes lexical and vector scores. You need an index; you need that engine only when fusion is the contract.
How do I build an AI data pipeline in Python?
An AI data pipeline ingests files, runs models, and writes derived columns that later steps can query. How to build an AI pipeline is a schema question: typed inputs, transforms that run on insert, and indexes that stay current. AI pipeline tools and a data ingestion pipeline are the same job when storage, orchestration, and serving share one Python package.
How do I add computed columns with LLM calls in Python?
A computed column is a value produced by an expression or an LLM call when the row or its dependencies change, then cached. A declarative data pipeline is that schema: you name the columns, and the engine decides which rows run. Adding an LLM call is an assignment on the class, not a job you schedule around a table.