# `Sycophant.EmbeddingParams`

Canonical embedding parameters with Zoi validation.

All fields are optional. Wire protocol adapters translate these into
provider-specific parameter names and value formats.

## Supported Parameters

  * `:dimensions` - Desired output vector dimensionality (positive integer)
  * `:embedding_types` - List of output types (`:float`, `:int8`, `:uint8`, `:binary`, `:ubinary`). Defaults to `[:float]`
  * `:truncate` - Truncation strategy (`:none`, `:left`, `:right`). Defaults to `:none`
  * `:max_tokens` - Maximum tokens to embed per input (positive integer)

# `t`

```elixir
@type t() :: %Sycophant.EmbeddingParams{
  dimensions: nil | integer(),
  embedding_types: [:float | :int8 | :uint8 | :binary | :ubinary],
  max_tokens: nil | integer(),
  truncate: :none | :left | :right
}
```

# `from_map`

```elixir
@spec from_map(map()) :: t()
```

Deserializes embedding params from a plain map.

# `t`

---

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