Module: RubyLLM::Providers::OpenAI::Embeddings

Included in:
RubyLLM::Providers::OpenAI
Defined in:
lib/ruby_llm/providers/openai/embeddings.rb

Overview

Embeddings methods of the OpenAI API integration

Class Method Summary collapse

Class Method Details

.embedding_urlObject



10
11
12
# File 'lib/ruby_llm/providers/openai/embeddings.rb', line 10

def embedding_url(...)
  'embeddings'
end

.parse_embedding_response(response, model:, text:) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/ruby_llm/providers/openai/embeddings.rb', line 22

def parse_embedding_response(response, model:, text:)
  data = response.body
  input_tokens = data.dig('usage', 'prompt_tokens') || 0
  vectors = data['data'].map { |d| d['embedding'] }
  vectors = vectors.first if vectors.length == 1 && !text.is_a?(Array)

  Embedding.new(vectors:, model:, input_tokens:)
end

.render_embedding_payload(text, model:, dimensions:) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/ruby_llm/providers/openai/embeddings.rb', line 14

def render_embedding_payload(text, model:, dimensions:)
  {
    model: model,
    input: text,
    dimensions: dimensions
  }.compact
end