Class: Phronomy::VectorStore::Base
- Inherits:
-
Object
- Object
- Phronomy::VectorStore::Base
- Includes:
- AsyncBackend
- Defined in:
- lib/phronomy/vector_store/base.rb
Overview
Abstract interface for vector stores.
Implementations manage a collection of (embedding, metadata) pairs and support similarity search.
Async methods (search_async, add_async, remove_async, clear_async)
are provided by the AsyncBackend mixin which defaults to routing calls
through BlockingAdapterPool. Backends with native async drivers may
override individual async methods without touching the pool at all.
Direct Known Subclasses
Instance Method Summary collapse
-
#add(id:, embedding:, metadata: {}, cancellation_token: nil) ⇒ Object
Add a document with its vector embedding.
-
#clear ⇒ Object
Remove all documents.
-
#remove(id:) ⇒ Object
Remove a single document by id.
-
#search(query_embedding:, k: 5, cancellation_token: nil) ⇒ Array<Hash>
Return the k most similar documents to the query embedding.
-
#size ⇒ Integer
Return the number of documents stored.
Methods included from AsyncBackend
#add_async, #clear_async, #remove_async, #search_async
Instance Method Details
#add(id:, embedding:, metadata: {}, cancellation_token: nil) ⇒ Object
Add a document with its vector embedding.
24 25 26 27 |
# File 'lib/phronomy/vector_store/base.rb', line 24 def add(id:, embedding:, metadata: {}, cancellation_token: nil) cancellation_token&.raise_if_cancelled! raise NotImplementedError, "#{self.class}#add is not implemented" end |
#clear ⇒ Object
Remove all documents.
50 51 52 |
# File 'lib/phronomy/vector_store/base.rb', line 50 def clear raise NotImplementedError, "#{self.class}#clear is not implemented" end |
#remove(id:) ⇒ Object
Remove a single document by id.
45 46 47 |
# File 'lib/phronomy/vector_store/base.rb', line 45 def remove(id:) raise NotImplementedError, "#{self.class}#remove is not implemented" end |
#search(query_embedding:, k: 5, cancellation_token: nil) ⇒ Array<Hash>
Return the k most similar documents to the query embedding.
36 37 38 39 |
# File 'lib/phronomy/vector_store/base.rb', line 36 def search(query_embedding:, k: 5, cancellation_token: nil) cancellation_token&.raise_if_cancelled! raise NotImplementedError, "#{self.class}#search is not implemented" end |
#size ⇒ Integer
Return the number of documents stored.
58 59 60 |
# File 'lib/phronomy/vector_store/base.rb', line 58 def size raise NotImplementedError, "#{self.class}#size is not implemented" end |