Class: Turbopuffer::Namespace

Inherits:
Object
  • Object
show all
Defined in:
lib/turbopuffer/namespace.rb

Instance Method Summary collapse

Constructor Details

#initialize(name, connection) ⇒ Namespace

Returns a new instance of Namespace.



5
6
7
8
# File 'lib/turbopuffer/namespace.rb', line 5

def initialize(name, connection)
  @name = name
  @connection = connection
end

Instance Method Details

#delete(ids:) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/turbopuffer/namespace.rb', line 10

def delete(ids:)
  payload = {
    ids: ids,
    vectors: [nil] * ids.length
  }
  response = @connection.delete("/v1/namespaces/#{@name}", payload)
  handle_response(response)
end

#delete_allObject



19
20
21
22
# File 'lib/turbopuffer/namespace.rb', line 19

def delete_all
  response = @connection.delete("/v1/namespaces/#{@name}")
  handle_response(response)
end

#query(vector:, top_k: 10, distance_metric: "cosine_distance", filters: nil, include_attributes: false, include_vectors: false) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/turbopuffer/namespace.rb', line 24

def query(vector:, top_k: 10, distance_metric: "cosine_distance", filters: nil, include_attributes: false, include_vectors: false)
  payload = {
    vector: vector,
    top_k: top_k,
    distance_metric: distance_metric,
    filters: filters,
    include_attributes: include_attributes,
    include_vectors: include_vectors
  }
  response = @connection.post("/v1/namespaces/#{@name}/query", payload)
  handle_response(response)
end

#upsert(ids:, vectors:, attributes: nil, distance_metric: "cosine_distance") ⇒ Object



37
38
39
40
41
42
43
44
45
46
# File 'lib/turbopuffer/namespace.rb', line 37

def upsert(ids:, vectors:, attributes: nil, distance_metric: "cosine_distance")
  payload = {
    ids: ids,
    vectors: vectors,
    attributes: attributes,
    distance_metric: distance_metric
  }
  response = @connection.post("/v1/namespaces/#{@name}", payload)
  handle_response(response)
end