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
- .embedding_url(model:) ⇒ Object
- .parse_embedding_response(response, model:, text:) ⇒ Object
- .render_embedding_payload(text, model:, dimensions:) ⇒ Object
Class Method Details
.embedding_url(model:) ⇒ Object
10 11 12 |
# File 'lib/ruby_llm/providers/gemini/embeddings.rb', line 10 def (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 (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 (text, model:, dimensions:) { requests: [text].flatten.map { |t| (t, model:, dimensions:) } } end |