aac-chatbot / backend /evals /relevance.py
shwetangisingh's picture
bug fixes
0e19ba2
def compute_relevance(response: str, query: str) -> dict:
"""BGE cosine similarity between query and response embeddings.
NLI entailment is the wrong abstraction here (a question rarely entails
its answer), so we use the same embedding space the retriever uses.
"""
if not response.strip() or not query.strip():
return {"relevance": 0.0}
from backend.retrieval.vector_store import embed_texts
vecs = embed_texts([query, response])
return {"relevance": round(max(0.0, float(vecs[0] @ vecs[1])), 4)}