Module: RubyLLM::Providers::Perplexity::Embeddings
- Included in:
- ChatCompletions
- Defined in:
- lib/ruby_llm/providers/perplexity/embeddings.rb
Overview
Embeddings methods of the Perplexity API integration
Class Method Summary collapse
- .decode_embedding(embedding) ⇒ Object
- .embedding_url ⇒ Object
-
.parse_embedding_response(response, model:, text:) ⇒ Object
Perplexity serves base64-encoded signed int8 vectors.
Class Method Details
.decode_embedding(embedding) ⇒ Object
24 25 26 27 28 |
# File 'lib/ruby_llm/providers/perplexity/embeddings.rb', line 24 def () return unless .is_a?(String) Base64.decode64().unpack('c*') end |
.embedding_url ⇒ Object
10 11 12 |
# File 'lib/ruby_llm/providers/perplexity/embeddings.rb', line 10 def (...) 'v1/embeddings' end |
.parse_embedding_response(response, model:, text:) ⇒ Object
Perplexity serves base64-encoded signed int8 vectors.
15 16 17 18 19 20 21 22 |
# File 'lib/ruby_llm/providers/perplexity/embeddings.rb', line 15 def (response, model:, text:) data = response.body input_tokens = data.dig('usage', 'prompt_tokens') vectors = Array(data['data']).map { |vector| (vector['embedding']) } vectors = vectors.first if vectors.length == 1 && !text.is_a?(Array) Embedding.new(vectors:, model:, input_tokens:) end |