Home / Function/ cosine_similarity() — langchain Function Reference

cosine_similarity() — langchain Function Reference

Architecture documentation for the cosine_similarity() function in _utils.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  44a9c158_f806_06f9_68ca_428cf2587404["cosine_similarity()"]
  9778091a_f21e_e4e8_4db2_952e2e1cc2bc["_utils.py"]
  44a9c158_f806_06f9_68ca_428cf2587404 -->|defined in| 9778091a_f21e_e4e8_4db2_952e2e1cc2bc
  4297cc75_c880_749f_f3c8_4244b5565373["maximal_marginal_relevance()"]
  4297cc75_c880_749f_f3c8_4244b5565373 -->|calls| 44a9c158_f806_06f9_68ca_428cf2587404
  style 44a9c158_f806_06f9_68ca_428cf2587404 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/partners/qdrant/langchain_qdrant/_utils.py lines 42–68

def cosine_similarity(X: Matrix, Y: Matrix) -> np.ndarray:  # noqa: N803
    """Row-wise cosine similarity between two equal-width matrices."""
    if len(X) == 0 or len(Y) == 0:
        return np.array([])

    x: np.ndarray = np.array(X)
    y: np.ndarray = np.array(Y)
    if x.shape[1] != y.shape[1]:
        msg = (
            f"Number of columns in X and Y must be the same. X has shape {x.shape} "
            f"and Y has shape {y.shape}."
        )
        raise ValueError(msg)
    try:
        import simsimd as simd  # noqa: PLC0415

        x = np.array(x, dtype=np.float32)
        y = np.array(y, dtype=np.float32)
        return 1 - np.array(simd.cdist(x, y, metric="cosine"))
    except ImportError:
        x_norm = np.linalg.norm(x, axis=1)
        y_norm = np.linalg.norm(y, axis=1)
        # Ignore divide by zero errors run time warnings as those are handled below.
        with np.errstate(divide="ignore", invalid="ignore"):
            similarity = np.dot(x, y.T) / np.outer(x_norm, y_norm)
        similarity[np.isnan(similarity) | np.isinf(similarity)] = 0.0
        return similarity

Subdomains

Frequently Asked Questions

What does cosine_similarity() do?
cosine_similarity() is a function in the langchain codebase, defined in libs/partners/qdrant/langchain_qdrant/_utils.py.
Where is cosine_similarity() defined?
cosine_similarity() is defined in libs/partners/qdrant/langchain_qdrant/_utils.py at line 42.
What calls cosine_similarity()?
cosine_similarity() is called by 1 function(s): maximal_marginal_relevance.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free