---
title: "How do I ... in Python?"
description: "How-to guides in Python for a unified multimodal AI backend: extract frames, chunk PDFs, embed images, search, and run RAG from one package."
url: "https://www.pixeltable.com/learn/how-to"
---

# 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.

Part of [Learn](https://www.pixeltable.com/learn).

- [How do I extract keyframes from video in Python?](https://www.pixeltable.com/learn/how-to/extract-keyframes-from-video) — 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?](https://www.pixeltable.com/learn/how-to/build-video-rag) — 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?](https://www.pixeltable.com/learn/how-to/build-a-video-processing-pipeline) — 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?](https://www.pixeltable.com/learn/how-to/build-a-multimodal-rag-pipeline) — 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?](https://www.pixeltable.com/learn/how-to/chunk-pdfs-for-rag) — 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?](https://www.pixeltable.com/learn/how-to/embed-images-for-search) — 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?](https://www.pixeltable.com/learn/how-to/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?](https://www.pixeltable.com/learn/how-to/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?](https://www.pixeltable.com/learn/how-to/build-an-ai-data-pipeline) — 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?](https://www.pixeltable.com/learn/how-to/add-computed-columns-with-llm-calls) — 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.
