Class: DSPy::Memory::EmbeddingEngine
- Inherits:
-
Object
- Object
- DSPy::Memory::EmbeddingEngine
show all
- Extended by:
- T::Helpers, T::Sig
- Defined in:
- lib/dspy/memory/embedding_engine.rb
Overview
Abstract base class for embedding engines
Instance Method Summary
collapse
Instance Method Details
#cosine_similarity(a, b) ⇒ Object
55
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/dspy/memory/embedding_engine.rb', line 55
def cosine_similarity(a, b)
return 0.0 if a.empty? || b.empty? || a.size != b.size
dot_product = a.zip(b).sum { |x, y| x * y }
magnitude_a = Math.sqrt(a.sum { |x| x * x })
magnitude_b = Math.sqrt(b.sum { |x| x * x })
return 0.0 if magnitude_a == 0.0 || magnitude_b == 0.0
dot_product / (magnitude_a * magnitude_b)
end
|
#embed(text) ⇒ Object
15
|
# File 'lib/dspy/memory/embedding_engine.rb', line 15
def embed(text); end
|
#embed_batch(texts) ⇒ Object
19
|
# File 'lib/dspy/memory/embedding_engine.rb', line 19
def embed_batch(texts); end
|
#embedding_dimension ⇒ Object
23
|
# File 'lib/dspy/memory/embedding_engine.rb', line 23
def embedding_dimension; end
|
#model_name ⇒ Object
27
|
# File 'lib/dspy/memory/embedding_engine.rb', line 27
def model_name; end
|
#normalize_vector(vector) ⇒ Object
47
48
49
50
51
|
# File 'lib/dspy/memory/embedding_engine.rb', line 47
def normalize_vector(vector)
magnitude = Math.sqrt(vector.sum { |x| x * x })
return vector if magnitude == 0.0
vector.map { |x| x / magnitude }
end
|
#ready? ⇒ Boolean
31
32
33
|
# File 'lib/dspy/memory/embedding_engine.rb', line 31
def ready?
true
end
|
#stats ⇒ Object
37
38
39
40
41
42
43
|
# File 'lib/dspy/memory/embedding_engine.rb', line 37
def stats
{
model_name: model_name,
embedding_dimension: embedding_dimension,
ready: ready?
}
end
|