Class: SimpleRag::Retrieve

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_rag/retrieve.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Retrieve

Returns a new instance of Retrieve.



4
5
6
7
8
# File 'lib/simple_rag/retrieve.rb', line 4

def initialize(client)
  @client = client
  # @chunks = nil
  @index = nil
end

Instance Attribute Details

#chunksObject

Returns the value of attribute chunks.



3
4
5
# File 'lib/simple_rag/retrieve.rb', line 3

def chunks
  @chunks
end

Instance Method Details

#embed_query(query) ⇒ Object



18
19
20
21
# File 'lib/simple_rag/retrieve.rb', line 18

def embed_query(query)
  query_embedding = SimpleRag::Embed.embed_text(@client, query)
  question_embeddings = Numo::DFloat[query_embedding]
end

#save_chunks(chunks) ⇒ Object



10
11
12
# File 'lib/simple_rag/retrieve.rb', line 10

def save_chunks(chunks)
  @chunks = chunks
end

#save_index(index) ⇒ Object



14
15
16
# File 'lib/simple_rag/retrieve.rb', line 14

def save_index(index)
  @index = index
end

#similarity_search(question_embeddings, k_neighbors_count) ⇒ Object



23
24
25
26
27
# File 'lib/simple_rag/retrieve.rb', line 23

def similarity_search(question_embeddings, k_neighbors_count)
  distances, indices = @index.search(question_embeddings, k_neighbors_count)
  index_array = indices.to_a[0]
  index_array.map { |i| @chunks[i] }
end