# 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.EmbeddingPreset do
  @moduledoc """
  Preset configurations for common RAG use cases.

  Each preset combines chunk size, overlap, and embedding model
  to provide an optimized configuration for specific scenarios.

  All string fields are owned `String` for FFI compatibility — instances
  are safe to clone and pass across language boundaries.
  """

  @typedoc "Preset configurations for common RAG use cases."
  @type t :: %__MODULE__{
          name: String.t() | nil,
          chunk_size: non_neg_integer(),
          overlap: non_neg_integer(),
          model_repo: String.t() | nil,
          pooling: String.t() | nil,
          model_file: String.t() | nil,
          dimensions: non_neg_integer(),
          description: String.t() | nil
        }

  defstruct name: nil,
            chunk_size: 0,
            overlap: 0,
            model_repo: nil,
            pooling: nil,
            model_file: nil,
            dimensions: 0,
            description: nil
end
