Class: Boxcars::VectorStore::Pgvector::Search

Inherits:
Object
  • Object
show all
Includes:
Boxcars::VectorStore
Defined in:
lib/boxcars/vector_store/pgvector/search.rb

Instance Method Summary collapse

Methods included from Boxcars::VectorStore

included

Constructor Details

#initialize(params) ⇒ Search

initialize the vector store with the following parameters:

Parameters:

  • params (Hash)

    A Hash containing the initial configuration.

Options Hash (params):

  • :vector_documents (Hash)

    The vector documents to search.

  • :vector_store (Hash)

    The vector store to search.



15
16
17
18
19
20
21
22
# File 'lib/boxcars/vector_store/pgvector/search.rb', line 15

def initialize(params)
  require_dependencies!
  vector_store = validate_params(params)
  db_url = validate_vector_store(vector_store)
  @db_connection = test_db(db_url)

  @vector_documents = params[:vector_documents]
end

Instance Method Details

#call(query_vector:, count: 1) ⇒ Array

Returns array of hashes with :document and :distance keys.

Parameters:

  • query_vector (Array)

    The query vector to search for.

  • count (Integer) (defaults to: 1)

    The number of results to return.

Returns:

  • (Array)

    array of hashes with :document and :distance keys

Raises:



27
28
29
30
31
# File 'lib/boxcars/vector_store/pgvector/search.rb', line 27

def call(query_vector:, count: 1)
  raise ::Boxcars::ArgumentError, 'query_vector is empty' if query_vector.empty?

  search(query_vector, count)
end