Spaces:
Runtime error
Runtime error
from typing import List, Tuple, Sequence | |
import numpy as np | |
from vectorizer import Vectorizer | |
from similarity import cosine_similarity | |
class PromptSearchEngine: | |
def __init__(self, prompts: Sequence[str], vectorizer: Vectorizer) -> None: | |
self.prompts = prompts | |
self.vectorizer = vectorizer | |
self.corpus_vectors = vectorizer.transform(prompts) | |
def most_similar(self, query, n = 5) -> List[Tuple[float, str]]: | |
query_vector = self.vectorizer.transform([query])[0] | |
similarities = cosine_similarity(query_vector, self.corpus_vectors) | |
top_indices = similarities.argsort()[-n:][::-1] | |
return [(similarities[i], self.prompts[i]) for i in top_indices] | |