Coverage for src / kemi / adapters / embedding / custom.py: 100%
12 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-06-05 15:47 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-06-05 15:47 +0000
1from collections.abc import Callable
3from kemi.adapters.base import EmbeddingAdapter
6class CustomEmbedAdapter(EmbeddingAdapter):
7 """Custom embedding adapter that delegates to a user-provided function.
9 Zero external dependencies.
10 """
12 def __init__(
13 self,
14 embed_fn: Callable[[list[str]], list[list[float]]],
15 dim: int,
16 ):
17 self._embed_fn = embed_fn
18 self._dim = dim
20 def embed(self, texts: list[str]) -> list[list[float]]:
21 return self._embed_fn(texts)
23 def embed_single(self, text: str) -> list[float]:
24 return self.embed([text])[0]
26 def dimension(self) -> int:
27 return self._dim