rohitg00/ai-engineering-from-scratch · error · ValueError
Unknown metric: {metric}
Error message
Unknown metric: {metric} What it means
Error "Unknown metric: {metric}" thrown in rohitg00/ai-engineering-from-scratch.
Source
Thrown at phases/11-llm-engineering/04-embeddings/code/embeddings.py:121
def add(self, vector, text, meta=None):
self.vectors.append(vector)
self.texts.append(text)
self.metadata.append(meta or {})
def search(self, query_vector, top_k=5, metric="cosine"):
scores = []
for i, vec in enumerate(self.vectors):
if metric == "cosine":
score = cosine_similarity(query_vector, vec)
elif metric == "dot":
score = dot_product(query_vector, vec)
elif metric == "euclidean":
score = -euclidean_distance(query_vector, vec)
elif metric == "hamming":
score = -hamming_distance(binarize(query_vector), binarize(vec))
else:
raise ValueError(f"Unknown metric: {metric}")
scores.append((i, score))
scores.sort(key=lambda x: x[1], reverse=True)
results = []
for idx, score in scores[:top_k]:
results.append({
"text": self.texts[idx],
"score": score,
"metadata": self.metadata[idx],
"index": idx
})
return results
def size(self):
return len(self.vectors)
class SemanticSearchEngine:
def __init__(self, chunk_size=200, overlap=50):View on GitHub (pinned to 39ea8a1c6d)
When it happens
Trigger: Thrown at phases/11-llm-engineering/04-embeddings/code/embeddings.py:121 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of rohitg00/ai-engineering-from-scratch@39ea8a1c6d (2026-08-26).
Data as JSON: /api/errors/2ac57e4b5aea3c58.
Report an issue: GitHub.