Module: RubyLLM::Providers::Gemini::Embeddings

Included in:
RubyLLM::Providers::Gemini
Defined in:
lib/ruby_llm/providers/gemini/embeddings.rb

Overview

Embeddings methods for the Gemini API integration

Class Method Summary collapse

Class Method Details

.embedding_url(model:) ⇒ Object



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

def embedding_url(model:)
  "models/#{model}:batchEmbedContents"
end

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



18
19
20
21
22
23
# File 'lib/ruby_llm/providers/gemini/embeddings.rb', line 18

def parse_embedding_response(response, model:, text:)
  vectors = response.body['embeddings']&.map { |e| e['values'] }
  vectors = vectors.first if vectors&.length == 1 && !text.is_a?(Array)

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

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



14
15
16
# File 'lib/ruby_llm/providers/gemini/embeddings.rb', line 14

def render_embedding_payload(text, model:, dimensions:)
  { requests: [text].flatten.map { |t| single_embedding_payload(t, model:, dimensions:) } }
end