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.