Class: Turbopuffer::Namespace
- Inherits:
-
Object
- Object
- Turbopuffer::Namespace
- Defined in:
- lib/turbopuffer/namespace.rb
Instance Method Summary collapse
- #delete(ids:) ⇒ Object
- #delete_all ⇒ Object
-
#initialize(name, connection) ⇒ Namespace
constructor
A new instance of Namespace.
- #query(vector:, top_k: 10, distance_metric: "cosine_distance", filters: nil, include_attributes: false, include_vectors: false) ⇒ Object
- #upsert(ids:, vectors:, attributes: nil, distance_metric: "cosine_distance") ⇒ Object
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_all ⇒ Object
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 |