Source code for gptcache.manager.vector_data.base

from abc import ABC, abstractmethod
from dataclasses import dataclass
from typing import List, Optional, Union

import numpy as np


[docs]@dataclass class VectorData: id: int data: np.ndarray
[docs]class VectorBase(ABC): """VectorBase: base vector store interface"""
[docs] @abstractmethod def mul_add(self, datas: List[VectorData]): pass
[docs] @abstractmethod def search(self, data: np.ndarray, top_k: int): pass
[docs] @abstractmethod def rebuild(self, ids=None) -> bool: pass
[docs] @abstractmethod def delete(self, ids) -> bool: pass
[docs] def flush(self): pass
[docs] def close(self): pass
[docs] def get_embeddings(self, data_id: Union[int, str]) -> Optional[np.ndarray]: raise NotImplementedError
[docs] def update_embeddings(self, data_id: Union[int, str], emb: np.ndarray): pass