# `Vllm.Config.MultiModalConfig`
[🔗](https://github.com/nshkrdotcom/vllm/blob/v0.3.0/lib/snakebridge_generated/vllm/config/multi_modal_config.ex#L7)

Controls the behavior of multimodal models.

# `t`

```elixir
@opaque t()
```

# `_validate_limit_per_prompt`

```elixir
@spec _validate_limit_per_prompt(
  SnakeBridge.Ref.t(),
  %{optional(String.t()) =&gt; term()},
  keyword()
) :: {:ok, %{optional(String.t()) =&gt; term()}} | {:error, Snakepit.Error.t()}
```

Python method `MultiModalConfig._validate_limit_per_prompt`.

## Parameters

- `value` (%{optional(String.t()) => term()})

## Returns

- `%{optional(String.t()) => term()}`

# `_validate_mm_encoder_attn_backend`

```elixir
@spec _validate_mm_encoder_attn_backend(SnakeBridge.Ref.t(), term(), keyword()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

Python method `MultiModalConfig._validate_mm_encoder_attn_backend`.

## Parameters

- `value` (term())

## Returns

- `term()`

# `_validate_multimodal_config`

```elixir
@spec _validate_multimodal_config(
  SnakeBridge.Ref.t(),
  keyword()
) :: {:ok, term()} | {:error, Snakepit.Error.t()}
```

Python method `MultiModalConfig._validate_multimodal_config`.

## Returns

- `term()`

# `compute_hash`

```elixir
@spec compute_hash(
  SnakeBridge.Ref.t(),
  keyword()
) :: {:ok, String.t()} | {:error, Snakepit.Error.t()}
```

WARNING: Whenever a new field is added to this config,

ensure that it is included in the factors list if
it affects the computation graph.

Provide a hash that uniquely identifies all the configs
that affect the structure of the computation
graph from input ids/embeddings to the final hidden states,
excluding anything before input ids/embeddings and after
the final hidden states.

## Returns

- `String.t()`

# `enable_mm_embeds`

```elixir
@spec enable_mm_embeds(SnakeBridge.Ref.t()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

# `get_dummy_options`

```elixir
@spec get_dummy_options(SnakeBridge.Ref.t(), String.t(), keyword()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

Get the configurable dummy data options for a modality.

Returns None if no options are configured for this modality.

## Parameters

- `modality` (String.t())

## Returns

- `term()`

# `get_limit_per_prompt`

```elixir
@spec get_limit_per_prompt(SnakeBridge.Ref.t(), String.t(), keyword()) ::
  {:ok, integer()} | {:error, Snakepit.Error.t()}
```

Get the maximum number of input items allowed per prompt

for the given modality (backward compatible).

## Parameters

- `modality` (String.t())

## Returns

- `integer()`

# `interleave_mm_strings`

```elixir
@spec interleave_mm_strings(SnakeBridge.Ref.t()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

# `is_multimodal_pruning_enabled`

```elixir
@spec is_multimodal_pruning_enabled(
  SnakeBridge.Ref.t(),
  keyword()
) :: {:ok, term()} | {:error, Snakepit.Error.t()}
```

Python method `MultiModalConfig.is_multimodal_pruning_enabled`.

## Returns

- `term()`

# `limit_per_prompt`

```elixir
@spec limit_per_prompt(SnakeBridge.Ref.t()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

# `media_io_kwargs`

```elixir
@spec media_io_kwargs(SnakeBridge.Ref.t()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

# `merge_mm_processor_kwargs`

```elixir
@spec merge_mm_processor_kwargs(SnakeBridge.Ref.t(), term(), keyword()) ::
  {:ok, %{optional(String.t()) =&gt; term()}} | {:error, Snakepit.Error.t()}
```

Get the keyword arguments to pass to the multi-modal processor

according to the extra arguments passed during inference.

## Parameters

- `inference_kwargs` (term())

## Returns

- `%{optional(String.t()) => term()}`

# `mm_encoder_attn_backend`

```elixir
@spec mm_encoder_attn_backend(SnakeBridge.Ref.t()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

# `mm_encoder_tp_mode`

```elixir
@spec mm_encoder_tp_mode(SnakeBridge.Ref.t()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

# `mm_processor_cache_gb`

```elixir
@spec mm_processor_cache_gb(SnakeBridge.Ref.t()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

# `mm_processor_cache_type`

```elixir
@spec mm_processor_cache_type(SnakeBridge.Ref.t()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

# `mm_processor_kwargs`

```elixir
@spec mm_processor_kwargs(SnakeBridge.Ref.t()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

# `mm_shm_cache_max_object_size_mb`

```elixir
@spec mm_shm_cache_max_object_size_mb(SnakeBridge.Ref.t()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

# `new`

```elixir
@spec new(term(), term(), term(), keyword()) ::
  {:ok, SnakeBridge.Ref.t()} | {:error, Snakepit.Error.t()}
```

Constructs `MultiModalConfig`.

## Parameters

- `dataclass_self__` (term())
- `args` (term())
- `kwargs` (term())

# `skip_mm_profiling`

```elixir
@spec skip_mm_profiling(SnakeBridge.Ref.t()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

# `video_pruning_rate`

```elixir
@spec video_pruning_rate(SnakeBridge.Ref.t()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
