Class: RubyLLM::Embedding

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_llm/embedding.rb

Overview

Core embedding interface.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(vectors:, model:, input_tokens: 0) ⇒ Embedding

Returns a new instance of Embedding.



8
9
10
11
12
# File 'lib/ruby_llm/embedding.rb', line 8

def initialize(vectors:, model:, input_tokens: 0)
  @vectors = vectors
  @model = model
  @input_tokens = input_tokens
end

Instance Attribute Details

#input_tokensObject (readonly)

Returns the value of attribute input_tokens.



6
7
8
# File 'lib/ruby_llm/embedding.rb', line 6

def input_tokens
  @input_tokens
end

#modelObject (readonly)

Returns the value of attribute model.



6
7
8
# File 'lib/ruby_llm/embedding.rb', line 6

def model
  @model
end

#vectorsObject (readonly)

Returns the value of attribute vectors.



6
7
8
# File 'lib/ruby_llm/embedding.rb', line 6

def vectors
  @vectors
end

Class Method Details

.embed(text, model: nil, provider: nil, assume_model_exists: false, context: nil, dimensions: nil) ⇒ Object

rubocop:disable Metrics/ParameterLists



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/ruby_llm/embedding.rb', line 14

def self.embed(text, # rubocop:disable Metrics/ParameterLists
               model: nil,
               provider: nil,
               assume_model_exists: false,
               context: nil,
               dimensions: nil)
  config = context&.config || RubyLLM.config
  model ||= config.default_embedding_model
  model, provider_instance = Models.resolve(model, provider: provider, assume_exists: assume_model_exists,
                                                   config: config)
  model_id = model.id

  provider_instance.embed(text, model: model_id, dimensions:)
end