# Overview<no value>

Chat, embeddings, chunking, and the text and markdown sources are the package `ETLBox.AI`. HTML reading is `ETLBox.AI.Html`. PDF reading is `ETLBox.AI.Pdf`.

| Component | Package | What it does |
|-----------|---------|--------------|
| [Text Document](../text-document/) | `ETLBox.AI` | Reads a whole file, web response, or blob as one row. A folder is one row per file. |
| [Markdown](../markdown/) | `ETLBox.AI` | Reads one markdown resource as one parsed document and keeps the headings. |
| [HTML](../html/) | `ETLBox.AI.Html` | Converts HTML to markdown and emits one parsed document. Script and style elements are left out. |
| [PDF](../pdf/) | `ETLBox.AI.Pdf` | Reads one PDF as one parsed document. Each page stays a section. |
| [Chunk](../chunk/) | `ETLBox.AI` | Splits each row into smaller text pieces and keeps the source row on every piece. |
| [Chat](../chat/) | `ETLBox.AI` | Sends each row to a chat client and writes the returned object downstream. |
| [Embedding](../embedding/) | `ETLBox.AI` | Creates one vector per row and stores it on the same object. |
| [Chat Batch](../chat-batch/) | `ETLBox.AI` | Sends a batch of rows to a chat client as one request. |
| [Embedding Batch](../embedding-batch/) | `ETLBox.AI` | Creates embeddings for a batch of rows in one generator call. |
| [Vector Store](../vector/) | `ETLBox.AI` | Reads a similarity search or a filtered collection, and upserts records. The destination does not create embeddings. |

Copyable setups for each component are in the recipes, starting with [Text Document Source](/recipes/ai/text-document/).
