> ## Documentation Index
> Fetch the complete documentation index at: https://docs.athina.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Dynamic columns let you run prompts, code execution, retrievals, and more on your datasets

Most LLM applications are a lot more complex than just prompts.

For example, a RAG-based chatbot might have the following setup.

* classify user query intent
* (LLM) normalize the query
* (ApiCall) call some APIs based on user query intent
* (Retrieval) retrieve relevant documents from Vector DB
* (LLM) generate a response based on the info in the previous steps

With Athina, you can build and prototype chains like this dynamically in a **spreadsheet-like UI**.

You can also build these pipelines in **Flows**.

### How does it work?

You can add dynamic column to run prompts on an LLM, call an API endpoint, extract structured data, classify values, retrieve documents, etc

You can add as many dynamic columns as you would like to build up a complex data pipeline

Here's a 30 second demo showing you how a dynamic column works.

<video autoplay controls muted loop playsinline className="w-full aspect-video" src="https://info.athina.ai/videos/dynamic-columns-short-summary.mp4" poster="https://info.athina.ai/videos/poster/dynamic-columns-short-summary.png" />

### Why is this useful?

* You can test complex chains (instead of just prompt-response pairs)
* You can prototype and compare different pipelines (in a spreadsheet UI)
* You can create multi-step evaluations

For example: classify user query -> classify response -> check if classification matches

### Types of Dynamic Columns

Currently, we support the following dynamic columns:

<CardGroup cols={2}>
  <Card title="API Call" icon="globe" href="/datasets/dynamic-columns/dynamic-columns-api-call">
    Useful to call external APIs (ex: transcription, get info from DB, etc)
  </Card>

  <Card title="Run Prompt" icon="wand-magic-sparkles" href="/datasets/dynamic-columns/dynamic-columns-run-prompt">
    Generate an LLM response by running a prompt on any model!
  </Card>

  <Card title="Classification" icon="tags" href="/datasets/dynamic-columns/dynamic-columns-classification">
    Classify values from other columns into user-defined labels
  </Card>

  <Card title="Extract Entities" icon="magnifying-glass" href="/datasets/dynamic-columns/dynamic-columns-extract-entities">
    Extract an array of entities from any column
  </Card>

  <Card title="Retrieval" icon="files" href="#">
    Retrieve documents from a vector database
  </Card>

  <Card title="Conditional" icon="split" href="#">
    Conditional execute any dynamic column based on the value of other columns
  </Card>
</CardGroup>

<Tip>
  You can also [Run Evaluations](/datasets/run-eval) in the Datasets UI similar
  to dynamic columns.
</Tip>
