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

# Uploaded decisions

> File inputs, typed questions, model capabilities, and operation recovery.

`decisions.create` builds the multipart upload automatically. Pass `audio`,
`state`, and `questions` as keyword arguments. `model` defaults to `tazo-large`.

| Audio input | Behavior |
| - | - |
| String or `Path` | SDK opens and closes the file. |
| Bytes | Pass `filename` and `content_type` when known. |
| Binary file object | Read from its current position; never closed by the SDK. |

Seekable streams are restored to their original position. Nonseekable streams
are consumed once. The SDK buffers one immutable upload of at most **16 MiB**
so every retry uses identical audio, JSON, and MIME type. Model duration limits
still apply. The SDK imposes no playground word-count restrictions.

Questions can be dictionaries, as in the [quickstart](https://docs.tazolabs.com/sdk/python/quickstart.md),
or typed models:

```python theme={null}
from tazo import ChoiceQuestion, NoulQuestion

choice = ChoiceQuestion(
    instructions="Which action should be taken?",
    criteria={"get_weather": "Get weather.", "NO_TOOL": "No tool needed."},
)
yes_no = NoulQuestion(instructions="Is the speaker asking for help?")
```

Tazo Large supports one `choice` or `noul`. Tazo Small is unavailable through
the API; contact [support@tazolabs.com](mailto:support@tazolabs.com) for assistance.
Check `client.models.list()` for current capabilities. This SDK
does not expose score questions.

Each create call generates a new operation key. Supply `idempotency_key` to
resume an earlier operation with its original input. The SDK does not expose a
job-status API. Read [retries and pending work](https://docs.tazolabs.com/sdk/python/errors.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.