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

# cast

> Cast is a function that uses a language model to analyze the input data and transform it

# `marvin.fns.cast`

Cast is a function that uses a language model to analyze the input data and transform it
into the specified target type, maintaining as much semantic meaning as possible.

## Constants

### `DEFAULT_PROMPT`

```python theme={null}
DEFAULT_PROMPT = "'\nYou are an expert data converter that always maintains as much semantic\nmeaning as possible. You use inference or deduction whenever necessary to\nunderstand and transform the input data. Examine the provided `data`, text,\nor information and transform it into a single entity of the requested type.\n\n- When providing integers, do not write out any decimals at all\n- Use deduction where appropriate e.g. "3 dollars fifty cents" should be\n    converted to 3.5 when casting to a float\n- Preserve as much of the original meaning and structure as possible while\n    conforming to the target type\n- When providing a string response, do not return JSON or a quoted string\n    unless they provided instructions requiring it. If you do return JSON, it\n    must be valid and parseable including double quotes.\n- When converting to bool, treat "truthy" values as true'"
```

### `PROMPT`

```python theme={null}
PROMPT = DEFAULT_PROMPT
```

### `T`

```python theme={null}
T = TypeVar('T')
```

## Functions

### `cast`

```python theme={null}
def cast(data: Any, target: TargetType[T] | None = None, instructions: str | None = None, agent: Agent | None = None, thread: Thread | str | None = None, context: dict[str, Any] | None = None, handlers: list[Handler | AsyncHandler] | None = None, prompt: str | None = None) -> T
```

Transforms input data into a specific type using a language model.

This function uses a language model to analyze the input data and transform it
into the specified target type, maintaining as much semantic meaning as possible.

Args:
data: The input data to transform. Can be any type.
target: The type to transform the data into. Defaults to str.
instructions: Optional additional instructions to guide the transformation.
Used to provide specific guidance about how to interpret or transform
the data.
agent: Optional custom agent to use for transformation. If not provided,
the default agent will be used.
thread: Optional thread for maintaining conversation context. Can be
either a Thread object or a string thread ID.
context: Optional dictionary of additional context to include in the task.
handlers: Optional list of handlers to use for the task.
prompt: Optional prompt to use for the task. If not provided, the default
prompt will be used.
Returns:
The transformed data of type T.

Examples:

```python theme={null}
from marvin import cast
cast(123, str) # '123'

cast("three point five", float, instructions="Convert words to numbers") # 3.5

cast("yes", bool) # True
```

### `cast_async`

```python theme={null}
def cast_async(data: Any, target: TargetType[T] | None = None, instructions: str | None = None, agent: Agent | None = None, thread: Thread | str | None = None, context: dict[str, Any] | None = None, handlers: list[Handler | AsyncHandler] | None = None, prompt: str | None = None) -> T
```

Asynchronously transforms input data into a specific type using a language model.

This function uses a language model to analyze the input data and transform it
into the specified target type, maintaining as much semantic meaning as possible.

Args:
data: The input data to transform. Can be any type.
target: The type to transform the data into. Defaults to str.
instructions: Optional additional instructions to guide the transformation.
Used to provide specific guidance about how to interpret or transform
the data.
agent: Optional custom agent to use for transformation. If not provided,
the default agent will be used.
thread: Optional thread for maintaining conversation context. Can be
either a Thread object or a string thread ID.
context: Optional dictionary of additional context to include in the task.
handlers: Optional list of handlers to use for the task.
prompt: Optional prompt to use for the task. If not provided, the default
prompt will be used.
Returns:
The transformed data of type T.

Examples:

```python theme={null}
from marvin import cast_async
await cast_async("whats the answer to it all?, int) # 42

await cast_async("three point five", float, instructions="Convert words to numbers") # 3.5

await cast_async("yes", bool) # True
```

***

**Parent Module:** [`fns`](marvin-fns)
