Skip to main content

Module embeddings

Module embeddings 

Source
Expand description

向量嵌入模块:提供文本嵌入生成和向量相似度计算功能。

§Embeddings Module

This module provides comprehensive embedding support for AI models, enabling semantic similarity comparisons and vector-based operations.

§Overview

Embeddings are numerical vector representations of text that capture semantic meaning, enabling:

  • Semantic search and similarity matching
  • Document clustering and classification
  • Recommendation systems
  • Duplicate detection

§Key Features

FeatureDescription
Embedding generationGenerate embeddings via AI providers
Vector similarityCosine, Euclidean, Manhattan, Dot product metrics
Vector operationsNormalize, average, add, subtract, scale vectors
Similarity searchFind most similar vectors in a collection

§Components

ComponentDescription
EmbeddingClientClient for generating embeddings from AI providers
cosine_similarityCosine similarity between vectors (-1 to 1)
euclidean_distanceEuclidean (L2) distance between vectors
find_most_similarFind top-k most similar vectors
normalize_vectorNormalize vector to unit length

§Example

use ai_lib_rust::embeddings::{cosine_similarity, find_most_similar, SimilarityMetric};

// Calculate similarity between two vectors
let vec_a: Vec<f32> = vec![0.1, 0.2, 0.3];
let vec_b: Vec<f32> = vec![0.15, 0.25, 0.35];
let similarity = cosine_similarity(&vec_a, &vec_b).unwrap();
println!("Similarity: {:.4}", similarity);

// Find most similar vectors in a collection
let query: Vec<f32> = vec![0.5, 0.5, 0.0];
let candidates: Vec<Vec<f32>> = vec![
    vec![0.5, 0.5, 0.0],
    vec![0.0, 0.0, 1.0],
];
let results = find_most_similar(&query, &candidates, 1, SimilarityMetric::Cosine).unwrap();

§Metrics Comparison

MetricRangeBest For
Cosine-1 to 1Semantic similarity (direction)
Euclidean0 to ∞Absolute positioning
Dot Product-∞ to ∞Magnitude-sensitive comparison
Manhattan0 to ∞Sparse vectors, grid distances

Structs§

Embedding
A single embedding vector with metadata.
EmbeddingClient
EmbeddingClientBuilder
EmbeddingModel
EmbeddingRequest
Request for generating embeddings.
EmbeddingResponse
EmbeddingUsage
SimilarityResult

Enums§

EmbeddingInput
SimilarityMetric

Functions§

add_vectors
average_vectors
cosine_similarity
dot_product
euclidean_distance
find_most_similar
magnitude
manhattan_distance
normalize_vector
scale_vector
subtract_vectors
weighted_average_vectors

Type Aliases§

Vector