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

# Quickstart

> Install Curator and send your first prompts to an LLM.

## Install Curator

Curator needs Python 3.10 or later.

```bash theme={null}
pip install bespokelabs-curator
```

## Set an API key

This example uses an OpenAI model, so set your OpenAI key.

```bash theme={null}
export OPENAI_API_KEY=<your-api-key>
```

## Send a prompt

Create an `LLM` object with a model name, then call it with a prompt.

```python theme={null}
from bespokelabs import curator

llm = curator.LLM(model_name="gpt-4o-mini")
poem = llm("Write a poem about the importance of data in AI.")
print(poem.dataset.to_pandas())
# Output:
#                                             response
# 0  In the realm where silence once held sway,  \n...
```

The call returns a `CuratorResponse`. Its `dataset` attribute holds the results as a Hugging Face `Dataset`, so you can call `to_pandas()` on it.

To get several responses, pass a list of prompts. Curator sends them in parallel.

```python theme={null}
from bespokelabs import curator

llm = curator.LLM(model_name="gpt-4o-mini")
poems = llm([
    "Write a poem about the importance of data in AI.",
    "Write a haiku about the importance of data in AI.",
])
print(poems.dataset.to_pandas())
# Output:
#                                             response
# 0  In the realm where silence once held sway,  \n...
# 1  Silent streams of truth,  \nData shapes the le...
```

<Note>
  Curator caches every response. If you run the same code again, Curator reads the responses from the cache and does not call the model. See [Caching and recovery](/curator/caching).
</Note>

## Next steps

* Read [Key concepts](/curator/key-concepts) to learn how to write your own `prompt` and `parse` methods.
* Read [Structured output](/curator/structured-output) to get typed results from the model.
* Turn on the [Curator Viewer](/curator/viewer) to watch responses while Curator generates them.
