Class: Phronomy::VectorStore::Embeddings::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/phronomy/vector_store/embeddings/base.rb

Overview

Abstract interface for embedding adapters.

Concrete implementations must override #embed and return a vector as an +Array+.

Direct Known Subclasses

RubyLLMEmbeddings

Instance Method Summary collapse

Instance Method Details

#embed(text, cancellation_token = nil) ⇒ Array<Float>

Embed the given text and return a vector representation.

Parameters:

Returns:

  • (Array<Float>)

    the embedding vector

Raises:

  • (NotImplementedError)


17
18
19
20
# File 'lib/phronomy/vector_store/embeddings/base.rb', line 17

def embed(text, cancellation_token = nil)
  cancellation_token&.raise_if_cancelled!
  raise NotImplementedError, "#{self.class}#embed is not implemented"
end

#embed_async(text, cancellation_token = nil, timeout: nil) ⇒ BlockingAdapterPool::PendingOperation

Submits an #embed call to BlockingAdapterPool and returns a BlockingAdapterPool::PendingOperation.

Parameters:

Returns:

  • (BlockingAdapterPool::PendingOperation)


30
31
32
33
34
35
36
37
# File 'lib/phronomy/vector_store/embeddings/base.rb', line 30

def embed_async(text, cancellation_token = nil, timeout: nil)
  Phronomy::Runtime.instance.blocking_io.submit(
    timeout: timeout,
    cancellation_token: cancellation_token
  ) do
    embed(text, cancellation_token)
  end
end