Class: Geminize::Embeddings
- Inherits:
-
Object
- Object
- Geminize::Embeddings
- Defined in:
- lib/geminize/embeddings.rb
Overview
Class for embedding generation functionality
Constant Summary collapse
- DEFAULT_MAX_BATCH_SIZE =
Default maximum batch size
100
Instance Attribute Summary collapse
-
#client ⇒ Geminize::Client
readonly
The client instance.
Instance Method Summary collapse
-
#batch_process_embeddings(texts, model_name, params, batch_size) ⇒ Geminize::Models::EmbeddingResponse
Process multiple texts in batches.
-
#generate(embedding_request) ⇒ Geminize::Models::EmbeddingResponse
Generate embeddings based on an embedding request.
-
#generate_embedding(text, model_name = nil, params = {}) ⇒ Geminize::Models::EmbeddingResponse
Generate embeddings from text with optional parameters.
-
#initialize(client = nil, options = {}) ⇒ Embeddings
constructor
Initialize a new embeddings instance.
Constructor Details
#initialize(client = nil, options = {}) ⇒ Embeddings
Initialize a new embeddings instance
18 19 20 21 |
# File 'lib/geminize/embeddings.rb', line 18 def initialize(client = nil, = {}) @client = client || Client.new() = end |
Instance Attribute Details
#client ⇒ Geminize::Client (readonly)
Returns The client instance.
13 14 15 |
# File 'lib/geminize/embeddings.rb', line 13 def client @client end |
Instance Method Details
#batch_process_embeddings(texts, model_name, params, batch_size) ⇒ Geminize::Models::EmbeddingResponse
Process multiple texts in batches
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/geminize/embeddings.rb', line 72 def (texts, model_name, params, batch_size) batches = texts.each_slice(batch_size).to_a responses = [] batches.each do |batch| request = Models::EmbeddingRequest.new( model_name: model_name, text: batch, task_type: params[:task_type] || Geminize::Models::EmbeddingRequest::RETRIEVAL_DOCUMENT, params: params ) responses << generate(request) end # Combine all responses into a single response object combine_responses(responses) end |
#generate(embedding_request) ⇒ Geminize::Models::EmbeddingResponse
Generate embeddings based on an embedding request
27 28 29 30 31 32 33 |
# File 'lib/geminize/embeddings.rb', line 27 def generate() endpoint = (.model_name, .batch?) payload = .to_hash response_data = @client.post(endpoint, payload) Models::EmbeddingResponse.from_hash(response_data) end |
#generate_embedding(text, model_name = nil, params = {}) ⇒ Geminize::Models::EmbeddingResponse
Generate embeddings from text with optional parameters
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/geminize/embeddings.rb', line 44 def (text, model_name = nil, params = {}) model = model_name || Geminize.configuration. # Check if we need to handle batching if text.is_a?(Array) && text.length > 1 batch_size = params.delete(:batch_size) || DEFAULT_MAX_BATCH_SIZE if text.length > batch_size return (text, model, params, batch_size) end end # Regular processing for a single text or a small batch = Models::EmbeddingRequest.new( model_name: model, text: text, task_type: params[:task_type] || Geminize::Models::EmbeddingRequest::RETRIEVAL_DOCUMENT, params: params ) generate() end |