Class: Engram::Adapters::RubyLLMEmbedder

Inherits:
Object
  • Object
show all
Includes:
Ports::Embedder
Defined in:
lib/engram/adapters/ruby_llm_embedder.rb

Overview

Embedder backed by RubyLLM. Requires the host app to add the ‘ruby_llm` gem and configure its credentials. Referenced only at call time, so engram loads without it.

Constant Summary collapse

DEFAULT_MODEL =
"text-embedding-3-small"
DEFAULT_DIMENSIONS =
1536

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model: DEFAULT_MODEL, dimensions: DEFAULT_DIMENSIONS) ⇒ RubyLLMEmbedder

Returns a new instance of RubyLLMEmbedder.



13
14
15
16
# File 'lib/engram/adapters/ruby_llm_embedder.rb', line 13

def initialize(model: DEFAULT_MODEL, dimensions: DEFAULT_DIMENSIONS)
  @model = model
  @dimensions = dimensions
end

Instance Attribute Details

#dimensionsObject (readonly)

Returns the value of attribute dimensions.



18
19
20
# File 'lib/engram/adapters/ruby_llm_embedder.rb', line 18

def dimensions
  @dimensions
end

Instance Method Details

#embed(text) ⇒ Object



20
21
22
23
# File 'lib/engram/adapters/ruby_llm_embedder.rb', line 20

def embed(text)
  ensure_ruby_llm!
  RubyLLM.embed(text, model: @model).vectors
end