Embedding recipes
EmbeddingService
Purpose: Text-to-vector conversion and similarity search.
Use cases
- Semantic translation memory (textdb).
- Content similarity.
- Duplicate detection.
- Semantic search.
Key features
- Aggressive caching (deterministic).
- Batch processing.
- Cosine similarity calculations.
- Top-K similarity search.
Example
Example: Using EmbeddingService
use Netresearch\NrLlm\Service\Feature\EmbeddingService;
// Generate embedding
$vector = $embeddingService->embed('Search query text');
// Find similar
$similar = $embeddingService->findMostSimilar(
queryVector: $vector,
candidateVectors: $allVectors,
topK: 5
);
Copied!
Methods
EmbeddingService methods
// Generate embedding (cached automatically)
$vector = $embeddingService->embed('Some text');
// Full response with metadata
$response = $embeddingService->embedFull('Some text');
// Batch embedding
$vectors = $embeddingService->embedBatch(['Text 1', 'Text 2']);
// Calculate cosine similarity
$similarity = $embeddingService->cosineSimilarity($vectorA, $vectorB);
// Find most similar vectors
$results = $embeddingService->findMostSimilar(
$queryVector,
$candidateVectors,
topK: 5
);
// Normalize a vector
$normalized = $embeddingService->normalize($vector);
Copied!