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

# Resources

> The four customer-facing resources, shared by Tazo and AsyncTazo.

The four customer-facing resources, shared by Tazo and AsyncTazo.

### Decisions

```python theme={null}
class tazo.resources.Decisions
```

Uploaded and streaming audio decisions.

* Parameters:

  **http** (*HTTPClient*)

#### create()

```python theme={null}
create(*, audio, state, questions, model='tazo-large', idempotency_key=None, filename=None, content_type=None)
```

Upload audio and wait for a typed decision.

* Parameters:

  * **audio** (*str*  *|**PathLike**\[**str**]* *|* *bytes*  \*|\**BinaryIO*) – Path, bytes, or a binary stream. Streams are read from their current position; seekable streams are restored and never closed.

  * **state** (*str*  *|**dict**\[**str**,* *Any*\*]\* *|* *list*\*\[**str**]\*) – Shared context as a string, object, or list of strings.

  * **questions** (*Mapping*\*\[**str**,\* [*ChoiceQuestion*](<> "tazo.types.ChoiceQuestion")  *|*[*NoulQuestion*](<> "tazo.types.NoulQuestion")  *|*[*ChoiceQuestionParam*](<> "tazo.types.ChoiceQuestionParam")  *|*[*NoulQuestionParam*](<> "tazo.types.NoulQuestionParam")*]*) – Question-ID map of choice/noul dictionaries or typed models.

  * **model** (*str*) – Public model ID. Defaults to tazo-large.

  * **idempotency\_key** (*str*  \*|\**None*) – Retained operation key, or None to generate a new one. Every automatic retry reuses the same key and upload snapshot.

  * **filename** (*str*  \*|\**None*) – Optional name for bytes or file objects.

  * **content\_type** (*str*  \*|\**None*) – Optional MIME type; otherwise inferred from filename.

* Returns:

  Typed result, including request\_id and idempotency\_key SDK metadata.

* Raises:

  * [**DecisionPendingError**](<> "tazo.errors.DecisionPendingError") – Work continues after the retry budget is exhausted.

  * [**TazoError**](<> "tazo.errors.TazoError") – Authentication, validation, transport, or service failure.

* Return type:

  [*DecisionResponse*](<> "tazo.types.DecisionResponse")

#### stream()

```python theme={null}
stream(*, state, questions, model='tazo-large', audio_scope='chunk', evaluation_interval_ms=None, event_timeout=65)
```

Create a context-managed session for one question and multiple turns.

* Parameters:

  * **state** (*str*  *|**dict**\[**str**,* *Any*\*]\* *|* *list*\*\[**str**]\*) – Context for the decision.

  * **questions** (*Mapping*\*\[**str**,\* [*ChoiceQuestion*](<> "tazo.types.ChoiceQuestion")  *|*[*NoulQuestion*](<> "tazo.types.NoulQuestion")  *|*[*ChoiceQuestionParam*](<> "tazo.types.ChoiceQuestionParam")  *|*[*NoulQuestionParam*](<> "tazo.types.NoulQuestionParam")*]*) – Exactly one choice or noul question.

  * **model** (*str*) – Public model ID; the model’s advertised capabilities apply.

  * **audio\_scope** (*Literal*\*\[**'turn'**,\* *'chunk'\*\*]*) – chunk (default) evaluates new audio; turn evaluates cumulative audio.

  * **evaluation\_interval\_ms** (*int*  \*|\**None*) – Integer from 250 to 30000, or server default.

  * **event\_timeout** (*float*) – Maximum seconds waiting for each server event.

* Returns:

  A StreamingSession; entering it authenticates and waits for readiness.

* Return type:

  [*StreamingSession*](<> "tazo.streaming.StreamingSession")

### AsyncDecisions

```python theme={null}
class tazo.resources.AsyncDecisions
```

Native asynchronous upload and WebSocket decisions.

* Parameters:

  **http** (*AsyncHTTPClient*)

#### create()

```python theme={null}
async create(*, audio, state, questions, model='tazo-large', idempotency_key=None, filename=None, content_type=None)
```

Async counterpart of Decisions.create, with identical input and retry policy.

File reads run in a worker thread; HTTP uses native asynchronous I/O. Cancellation does not imply cancellation of accepted server-side work. Retain a caller-supplied key when cancellation recovery is required.

* Parameters:

  * **audio** (*str*  *|**PathLike**\[**str**]* *|* *bytes*  \*|\**BinaryIO*)

  * **state** (*str*  *|**dict**\[**str**,* *Any*\*]\* *|* *list*\*\[**str**]\*)

  * **questions** (*Mapping*\*\[**str**,\* [*ChoiceQuestion*](<> "tazo.types.ChoiceQuestion")  *|*[*NoulQuestion*](<> "tazo.types.NoulQuestion")  *|*[*ChoiceQuestionParam*](<> "tazo.types.ChoiceQuestionParam")  *|*[*NoulQuestionParam*](<> "tazo.types.NoulQuestionParam")*]*)

  * **model** (*str*)

  * **idempotency\_key** (*str*  \*|\**None*)

  * **filename** (*str*  \*|\**None*)

  * **content\_type** (*str*  \*|\**None*)

* Return type:

  [*DecisionResponse*](<> "tazo.types.DecisionResponse")

#### stream()

```python theme={null}
stream(*, state, questions, model='tazo-large', audio_scope='chunk', evaluation_interval_ms=None, event_timeout=65)
```

Create an async context manager; use async for to receive typed events.

Parameters match Decisions.stream. This method isn’t awaited; use `async with client.decisions.stream(...) as session`.

* Parameters:

  * **state** (*str*  *|**dict**\[**str**,* *Any*\*]\* *|* *list*\*\[**str**]\*)

  * **questions** (*Mapping*\*\[**str**,\* [*ChoiceQuestion*](<> "tazo.types.ChoiceQuestion")  *|*[*NoulQuestion*](<> "tazo.types.NoulQuestion")  *|*[*ChoiceQuestionParam*](<> "tazo.types.ChoiceQuestionParam")  *|*[*NoulQuestionParam*](<> "tazo.types.NoulQuestionParam")*]*)

  * **model** (*str*)

  * **audio\_scope** (*Literal*\*\[**'turn'**,\* *'chunk'\*\*]*)

  * **evaluation\_interval\_ms** (*int*  \*|\**None*)

  * **event\_timeout** (*float*)

* Return type:

  [*AsyncStreamingSession*](<> "tazo.streaming.AsyncStreamingSession")

### Models

```python theme={null}
class tazo.resources.Models
```

Discover public models and their capabilities.

* Parameters:

  **http** (*HTTPClient*)

#### list()

```python theme={null}
list()
```

Return current models, capabilities, and readiness.

* Return type:

  [*ModelList*](<> "tazo.types.ModelList")

### AsyncModels

```python theme={null}
class tazo.resources.AsyncModels
```

Asynchronous model discovery.

* Parameters:

  **http** (*AsyncHTTPClient*)

#### list()

```python theme={null}
async list()
```

Return current models, capabilities, and readiness.

* Return type:

  [*ModelList*](<> "tazo.types.ModelList")

### Health

```python theme={null}
class tazo.resources.Health
```

Public, unauthenticated model readiness.

* Parameters:

  **http** (*HTTPClient*)

#### check()

```python theme={null}
check()
```

Return ok or unavailable; the documented HTTP 503 is a health result.

* Return type:

  [*HealthStatus*](<> "tazo.types.HealthStatus")

### AsyncHealth

```python theme={null}
class tazo.resources.AsyncHealth
```

Asynchronous, unauthenticated readiness.

* Parameters:

  **http** (*AsyncHTTPClient*)

#### check()

```python theme={null}
async check()
```

Return ok or unavailable, without sending a bearer credential.

* Return type:

  [*HealthStatus*](<> "tazo.types.HealthStatus")


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