---
title: extract
---

# `marvin.fns.extract`

## Constants

### `DEFAULT_PROMPT`
```python
DEFAULT_PROMPT = "'\nYou are an expert entity extractor that always maintains as much semantic\nmeaning as possible. You use inference or deduction whenever necessary to\nsupply missing or omitted data. Examine the provided `data`, text, or\ninformation and generate a list of any entities or objects that match the\nrequested format.\n\n- When providing integers, do not write out any decimals at all\n- Use deduction where appropriate e.g. "3 dollars fifty cents" is a single\n    value [3.5] not two values [3, 50] unless the user specifically asks for\n    each part.'"
```

### `PROMPT`
```python
PROMPT = DEFAULT_PROMPT
```

### `T`
```python
T = TypeVar('T')
```

## Functions

### `extract`
```python
def extract(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) -> list[T]
```
Extracts entities of a specific type from the provided data.

This function uses a language model to identify and extract entities of the
specified type from the input data. The extracted entities are returned as a
list.

Args:
    data: The input data to extract entities from. Can be any type.
    target: The type of entities to extract. Defaults to str.
    instructions: Optional additional instructions to guide the extraction.
        Used to provide specific guidance about what to extract or how to
        process the data. Required when target is str.
    agent: Optional custom agent to use for extraction. 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:
    A list of extracted entities of type T.

Raises:
    ValueError: If target is str and no instructions are provided.

### `extract_async`
```python
def extract_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) -> list[T]
```
Extracts entities of a specific type from the provided data.

This function uses a language model to identify and extract entities of the
specified type from the input data. The extracted entities are returned as a
list.

Args:
    data: The input data to extract entities from. Can be any type.
    target: The type of entities to extract. Defaults to str.
    instructions: Optional additional instructions to guide the extraction.
        Used to provide specific guidance about what to extract or how to
        process the data. Required when target is str.
    agent: Optional custom agent to use for extraction. 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:
    A list of extracted entities of type T.

Raises:
    ValueError: If target is str and no instructions are provided.

---

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