# This file is auto-generated by alef — DO NOT EDIT.
# alef:hash:4e15143f4af1ae8bafbdb1506ef057da924484c66a19483966333558ad437e75
# To regenerate: alef generate
# To verify freshness: alef verify --exit-code
# Issues & docs: https://github.com/kreuzberg-dev/alef
defmodule Kreuzberg.EmbeddingModelType do
  @moduledoc "Embedding model types supported by Kreuzberg."

  @typedoc "Embedding model types supported by Kreuzberg."
  @type t :: term()

  @typedoc "Use a preset model configuration (recommended)"
  @type preset :: %{type: :preset, name: String.t()}
  @typedoc "Use a custom ONNX model from HuggingFace"
  @type custom :: %{type: :custom, model_id: String.t(), dimensions: non_neg_integer()}
  @typedoc "Provider-hosted embedding model via liter-llm."
  @type llm :: %{type: :llm, llm: Kreuzberg.LlmConfig.t()}
  @typedoc "In-process embedding backend registered via the plugin system."
  @type plugin :: %{type: :plugin, name: String.t()}
end
