acpotts commited on
Commit
0f89af3
·
verified ·
1 Parent(s): 1c8239b

Upload vectordatabase.py

Browse files
Files changed (1) hide show
  1. aimakerspace/vectordatabase.py +6 -4
aimakerspace/vectordatabase.py CHANGED
@@ -14,9 +14,9 @@ def cosine_similarity(vector_a: np.array, vector_b: np.array) -> float:
14
 
15
 
16
  class VectorDatabase:
17
- def __init__(self, embedding_model: EmbeddingModel = None):
18
  self.vectors = defaultdict(np.array)
19
- self.embedding_model = embedding_model or EmbeddingModel()
20
 
21
  def insert(self, key: str, vector: np.array) -> None:
22
  self.vectors[key] = vector
@@ -40,7 +40,8 @@ class VectorDatabase:
40
  distance_measure: Callable = cosine_similarity,
41
  return_as_text: bool = False,
42
  ) -> List[Tuple[str, float]]:
43
- query_vector = self.embedding_model.get_embedding(query_text)
 
44
  results = self.search(query_vector, k, distance_measure)
45
  return [result[0] for result in results] if return_as_text else results
46
 
@@ -48,7 +49,8 @@ class VectorDatabase:
48
  return self.vectors.get(key, None)
49
 
50
  async def abuild_from_list(self, list_of_text: List[str]) -> "VectorDatabase":
51
- embeddings = await self.embedding_model.async_get_embeddings(list_of_text)
 
52
  for text, embedding in zip(list_of_text, embeddings):
53
  self.insert(text, np.array(embedding))
54
  return self
 
14
 
15
 
16
  class VectorDatabase:
17
+ def __init__(self, embedding_model):
18
  self.vectors = defaultdict(np.array)
19
+ self.embedding_model = embedding_model
20
 
21
  def insert(self, key: str, vector: np.array) -> None:
22
  self.vectors[key] = vector
 
40
  distance_measure: Callable = cosine_similarity,
41
  return_as_text: bool = False,
42
  ) -> List[Tuple[str, float]]:
43
+ # query_vector = self.embedding_model.get_embedding(query_text)
44
+ query_vector = self.embedding_model.embed_query(query_text)
45
  results = self.search(query_vector, k, distance_measure)
46
  return [result[0] for result in results] if return_as_text else results
47
 
 
49
  return self.vectors.get(key, None)
50
 
51
  async def abuild_from_list(self, list_of_text: List[str]) -> "VectorDatabase":
52
+ # embeddings = await self.embedding_model.async_get_embeddings(list_of_text)
53
+ embeddings = await self.embedding_model.aembed_documents(list_of_text)
54
  for text, embedding in zip(list_of_text, embeddings):
55
  self.insert(text, np.array(embedding))
56
  return self