# `AshAi.EmbeddingModel`
[🔗](https://github.com/ash-project/ash_ai/blob/v0.6.1/lib/ash_ai/embedding_model.ex#L5)

A behaviour that defines the dimensions of the vector, and how to generate the embedding

# `opts`

```elixir
@type opts() :: Keyword.t()
```

# `vector`

```elixir
@type vector() :: [float()]
```

# `dimensions`

```elixir
@callback dimensions(opts()) :: pos_integer()
```

The dimensions of generated embeddings

# `generate`

```elixir
@callback generate([String.t()], opts()) :: {:ok, [vector()]} | {:error, term()}
```

Generate embeddings for the given list of strings

---

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