module RubyLLM::Providers::VertexAI::Embeddings
Embeddings methods for the Vertex AI implementation
Public Instance Methods
Source
# File lib/ruby_llm/providers/vertexai/embeddings.rb, line 10 def embedding_url(model:) "projects/#{@config.vertexai_project_id}/locations/#{@config.vertexai_location}/publishers/google/models/#{model}:predict" # rubocop:disable Layout/LineLength end
# File lib/ruby_llm/providers/vertexai/embeddings.rb, line 22 def parse_embedding_response(response, model:, text:) predictions = response.body['predictions'] vectors = predictions&.map { |p| p.dig('embeddings', 'values') } vectors = vectors.first if vectors&.length == 1 && !text.is_a?(Array) Embedding.new(vectors:, model:, input_tokens: 0) end
# File lib/ruby_llm/providers/vertexai/embeddings.rb, line 14 def render_embedding_payload(text, model:, dimensions:) # rubocop:disable Lint/UnusedMethodArgument { instances: [text].flatten.map { |t| { content: t.to_s } } }.tap do |payload| payload[:parameters] = { outputDimensionality: dimensions } if dimensions end end