from sentence_transformers import SentenceTransformer, util

# Load once globally
model = SentenceTransformer('./all-MiniLM-L6-v2')
def evaluate_descriptive_answer(user_answer, correct_answer, threshold=0.7):
    """
    Returns similarity score between 0 and 1.
    threshold of 0.7 means 70% similar answers are considered correct.
    """
    if not user_answer or not correct_answer:
        return 0.0

    embeddings = model.encode([user_answer, correct_answer], convert_to_tensor=True)
    similarity_score = util.cos_sim(embeddings[0], embeddings[1]).item()
    print(similarity_score)
    return similarity_score
