Class: Ask::RAG::VectorStore
- Inherits:
-
Object
- Object
- Ask::RAG::VectorStore
- Defined in:
- lib/ask/rag/vector_store/base.rb,
lib/ask/rag/vector_store/pgvector.rb,
lib/ask/rag/vector_store/in_memory.rb
Overview
Abstract base class for vector stores.
Vector stores store embedded documents and provide similarity search. Subclasses implement the storage and retrieval logic for specific backends (InMemory, PGVector, Chroma, etc.).
Defined Under Namespace
Instance Method Summary collapse
-
#add(documents, model:, batch_size: 20) ⇒ Array<String>
Add documents to the store.
-
#clear ⇒ Object
Remove all documents from the store.
-
#delete(ids) ⇒ Object
Remove documents by ID.
-
#similarity_search(query, limit: 10, filter: nil, mmr: false, diversity_bonus: 0.3) ⇒ Array<Ask::Document>
Search for documents similar to the given query text.
-
#similarity_search_by_vector(vector, limit: 10, filter: nil) ⇒ Array<Ask::Document>
Search by a raw vector instead of a text query.
-
#size ⇒ Integer
Number of documents in the store.
Instance Method Details
#add(documents, model:, batch_size: 20) ⇒ Array<String>
Add documents to the store. They are embedded using the given model via ask-llm-providers or a custom embedding function.
27 28 29 |
# File 'lib/ask/rag/vector_store/base.rb', line 27 def add(documents, model:, batch_size: 20) raise NotImplementedError end |
#clear ⇒ Object
Remove all documents from the store.
62 63 64 |
# File 'lib/ask/rag/vector_store/base.rb', line 62 def clear raise NotImplementedError end |
#delete(ids) ⇒ Object
Remove documents by ID.
57 58 59 |
# File 'lib/ask/rag/vector_store/base.rb', line 57 def delete(ids) raise NotImplementedError end |
#similarity_search(query, limit: 10, filter: nil, mmr: false, diversity_bonus: 0.3) ⇒ Array<Ask::Document>
Search for documents similar to the given query text.
40 41 42 |
# File 'lib/ask/rag/vector_store/base.rb', line 40 def similarity_search(query, limit: 10, filter: nil, mmr: false, diversity_bonus: 0.3) raise NotImplementedError end |
#similarity_search_by_vector(vector, limit: 10, filter: nil) ⇒ Array<Ask::Document>
Search by a raw vector instead of a text query. Useful when you've already embedded the query externally.
51 52 53 |
# File 'lib/ask/rag/vector_store/base.rb', line 51 def similarity_search_by_vector(vector, limit: 10, filter: nil) raise NotImplementedError end |
#size ⇒ Integer
Returns number of documents in the store.
67 68 69 |
# File 'lib/ask/rag/vector_store/base.rb', line 67 def size raise NotImplementedError end |