Spaces:
Runtime error
Runtime error
from loguru import logger | |
from pydantic import ConfigDict | |
from typing import Self, Sequence | |
from ctp_slack_bot.core import ApplicationComponentBase, Settings | |
from ctp_slack_bot.models import Chunk, VectorizedChunk | |
from .embeddings_model_service import EmbeddingsModelService | |
class VectorizationService(ApplicationComponentBase): | |
""" | |
Service for vectorizing chunks of text data. | |
""" | |
model_config = ConfigDict(frozen=True) | |
settings: Settings | |
embeddings_model_service: EmbeddingsModelService | |
async def vectorize(self: Self, chunks: Sequence[Chunk]) -> Sequence[VectorizedChunk]: | |
embeddings = await self.embeddings_model_service.get_embeddings([chunk.text for chunk in chunks]) | |
return tuple(VectorizedChunk( | |
text=chunk.text, | |
parent_id=chunk.parent_id, | |
chunk_id=chunk.chunk_id, | |
metadata=chunk.metadata, | |
embedding=embedding | |
) | |
for chunk, embedding | |
in zip(chunks, embeddings)) | |
def name(self: Self) -> str: | |
return "vectorization_service" | |