feat(): embedder implementation

This commit is contained in:
gitgernit
2025-11-22 04:33:54 +03:00
parent b96e027cdb
commit 8c76413c3b
5 changed files with 712 additions and 269 deletions
@@ -0,0 +1,15 @@
from typing import cast, override
from sentence_transformers import SentenceTransformer
from template_project.application.common.embedding import Embedder
class MiniLMEmbedder(Embedder):
def __init__(self, model: SentenceTransformer) -> None:
self._model = model
@override
async def encode(self, text: str) -> list[float]:
embedding = self._model.encode(text)
return cast(list[float], embedding.tolist())
@@ -0,0 +1,8 @@
from abc import abstractmethod
from typing import Protocol
class Embedder(Protocol):
@abstractmethod
async def encode(self, text: str) -> list[float]:
raise NotImplementedError