Class: SemanticTextChunker::Embedders::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/semantic_text_chunker/embedders/base.rb

Direct Known Subclasses

Cohere, Null, OpenAI, OpenRouter

Instance Method Summary collapse

Instance Method Details

#cosine_similarity(a, b) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/semantic_text_chunker/embedders/base.rb', line 8

def cosine_similarity(a, b)
  dot   = a.zip(b).sum { |x, y| x * y }
  mag_a = Math.sqrt(a.sum { |x| x**2 })
  mag_b = Math.sqrt(b.sum { |x| x**2 })
  return 0.0 if mag_a.zero? || mag_b.zero?
  dot / (mag_a * mag_b)
end

#embed(texts) ⇒ Object

Raises:

  • (NotImplementedError)


4
5
6
# File 'lib/semantic_text_chunker/embedders/base.rb', line 4

def embed(texts)
  raise NotImplementedError, "#{self.class} must implement #embed"
end