Class: Phronomy::Agent::Context::Knowledge::Embeddings::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/phronomy/agent/context/knowledge/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)


19
20
21
22
# File 'lib/phronomy/agent/context/knowledge/embeddings/base.rb', line 19

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)


32
33
34
35
36
37
38
39
# File 'lib/phronomy/agent/context/knowledge/embeddings/base.rb', line 32

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