in skills/text_to_sql/evaluation/vectordb.py [0:0]
def search(self, query, k=5, similarity_threshold=0.3):
if query not in self.query_cache:
self.query_cache[query] = self.client.embed([query], model="voyage-2").embeddings[0]
self.save_db()
similarities = np.dot(self.embeddings, self.query_cache[query])
top_indices = np.argsort(similarities)[::-1]
return [{"metadata": self.metadata[i], "similarity": similarities[i]}
for i in top_indices if similarities[i] >= similarity_threshold][:k]