Class: Engram::Adapters::NullEmbedder
- Inherits:
-
Object
- Object
- Engram::Adapters::NullEmbedder
- Includes:
- Ports::Embedder
- Defined in:
- lib/engram/adapters/null_embedder.rb
Overview
Deterministic, network-free embedder for tests and the zero-config default. NOT semantic — equal text yields equal vectors, but unrelated text is not meaningfully close. Good enough to exercise the pipeline; useless for quality.
Instance Attribute Summary collapse
-
#dimensions ⇒ Object
readonly
Returns the value of attribute dimensions.
Instance Method Summary collapse
- #embed(text) ⇒ Object
-
#initialize(dimensions: 16) ⇒ NullEmbedder
constructor
A new instance of NullEmbedder.
Constructor Details
#initialize(dimensions: 16) ⇒ NullEmbedder
Returns a new instance of NullEmbedder.
13 14 15 |
# File 'lib/engram/adapters/null_embedder.rb', line 13 def initialize(dimensions: 16) @dimensions = dimensions end |
Instance Attribute Details
#dimensions ⇒ Object (readonly)
Returns the value of attribute dimensions.
17 18 19 |
# File 'lib/engram/adapters/null_embedder.rb', line 17 def dimensions @dimensions end |
Instance Method Details
#embed(text) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/engram/adapters/null_embedder.rb', line 19 def (text) seed = Digest::SHA256.hexdigest(text.to_s) Array.new(@dimensions) do |i| byte = seed[(i * 2) % seed.length, 2].to_i(16) (byte / 255.0) * 2 - 1 # map 0..255 -> -1.0..1.0 end end |