Create an abstract MemoryProviderSingleton class. Pass config instead of instantiating a new one where used.

This commit is contained in:
BillSchumacher
2023-04-06 22:25:17 -05:00
parent 3f106963a8
commit 6819799ebe
7 changed files with 48 additions and 19 deletions

34
scripts/memory/base.py Normal file
View File

@@ -0,0 +1,34 @@
import abc
from config import AbstractSingleton
import openai
def get_ada_embedding(text):
text = text.replace("\n", " ")
return openai.Embedding.create(input=[text], model="text-embedding-ada-002")["data"][0]["embedding"]
def get_text_from_embedding(embedding):
return openai.Embedding.retrieve(embedding, model="text-embedding-ada-002")["data"][0]["text"]
class MemoryProviderSingleton(AbstractSingleton):
@abc.abstractmethod
def add(self, data):
pass
@abc.abstractmethod
def get(self, data):
pass
@abc.abstractmethod
def clear(self):
pass
@abc.abstractmethod
def get_relevant(self, data, num_relevant=5):
pass
@abc.abstractmethod
def get_stats(self):
pass