Spaces:
Sleeping
Sleeping
from abc import ABC, abstractmethod | |
from typing import List | |
from ...base import BotBase | |
from ...utils.general import chunks | |
class EncoderBase(BotBase, ABC): | |
endpoint: str | |
dim: int # Dimension of the vector | |
batch_size: int = 20 | |
def _infer(self, data: List[str], **kwargs) -> List[List[float]]: | |
"""Encoding""" | |
async def _ainfer(self, data: List[str], **kwargs) -> List[List[float]]: | |
"""Async encoding""" | |
raise NotImplementedError("Async generation not implemented for this Encoder.") | |
def infer(self, data: List[str], **kwargs) -> List[List[float]]: | |
res = [] | |
for chunk in chunks(data, self.batch_size, self.batch_size): | |
res += self._infer(chunk, **kwargs) | |
return res | |
async def ainfer(self, data: List[str], **kwargs) -> List[List[float]]: | |
res = [] | |
for chunk in chunks(data, self.batch_size, self.batch_size): | |
res += await self._ainfer(chunk, **kwargs) | |
return res | |