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

1from collections.abc import Callable 

2 

3from kemi.adapters.base import EmbeddingAdapter 

4 

5 

6class CustomEmbedAdapter(EmbeddingAdapter): 

7 """Custom embedding adapter that delegates to a user-provided function. 

8 

9 Zero external dependencies. 

10 """ 

11 

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 

19 

20 def embed(self, texts: list[str]) -> list[list[float]]: 

21 return self._embed_fn(texts) 

22 

23 def embed_single(self, text: str) -> list[float]: 

24 return self.embed([text])[0] 

25 

26 def dimension(self) -> int: 

27 return self._dim