Class: Turbopuffer::Resources::Namespaces

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

Direct Known Subclasses

Namespace

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Namespaces

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Namespaces.

Parameters:



361
362
363
# File 'lib/turbopuffer/resources/namespaces.rb', line 361

def initialize(client:)
  @client = client
end

Instance Method Details

#delete_all(namespace: nil, request_options: {}) ⇒ Turbopuffer::Models::NamespaceDeleteAllResponse

Delete namespace.

Parameters:

Returns:

See Also:



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/turbopuffer/resources/namespaces.rb', line 17

def delete_all(params = {})
  parsed, options = Turbopuffer::NamespaceDeleteAllParams.dump_request(params)
  namespace =
    parsed.delete(:namespace) do
      @client.default_namespace
    end
  @client.request(
    method: :delete,
    path: ["v2/namespaces/%1$s", namespace],
    model: Turbopuffer::Models::NamespaceDeleteAllResponse,
    options: options
  )
end

#explain_query(namespace: nil, aggregate_by: nil, consistency: nil, distance_metric: nil, exclude_attributes: nil, filters: nil, group_by: nil, include_attributes: nil, rank_by: nil, top_k: nil, vector_encoding: nil, request_options: {}) ⇒ Turbopuffer::Models::NamespaceExplainQueryResponse

Some parameter documentations has been truncated, see Models::NamespaceExplainQueryParams for more details.

Explain a query plan.

Parameters:

  • namespace (String)

    Path param: The name of the namespace.

  • aggregate_by (Hash{Symbol=>Object})

    Body param: Aggregations to compute over all documents in the namespace that mat

  • consistency (Turbopuffer::Models::NamespaceExplainQueryParams::Consistency)

    Body param: The consistency level for a query.

  • distance_metric (Symbol, Turbopuffer::Models::DistanceMetric)

    Body param: A function used to calculate vector similarity.

  • exclude_attributes (Array<String>)

    Body param: List of attribute names to exclude from the response. All other attr

  • filters (Object)

    Body param: Exact filters for attributes to refine search results for. Think of

  • group_by (Array<String>)

    Body param: Groups documents by the specified attributes (the “group key”) befor

  • include_attributes (Boolean, Array<String>)

    Body param: Whether to include attributes in the response.

  • rank_by (Object)

    Body param: How to rank the documents in the namespace.

  • top_k (Integer)

    Body param: The number of results to return.

  • vector_encoding (Symbol, Turbopuffer::Models::VectorEncoding)

    Body param: The encoding to use for vectors in the response.

  • request_options (Turbopuffer::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/turbopuffer/resources/namespaces.rb', line 65

def explain_query(params = {})
  parsed, options = Turbopuffer::NamespaceExplainQueryParams.dump_request(params)
  namespace =
    parsed.delete(:namespace) do
      @client.default_namespace
    end
  @client.request(
    method: :post,
    path: ["v2/namespaces/%1$s/explain_query", namespace],
    body: parsed,
    model: Turbopuffer::Models::NamespaceExplainQueryResponse,
    options: options
  )
end

#hint_cache_warm(namespace: nil, request_options: {}) ⇒ Turbopuffer::Models::NamespaceHintCacheWarmResponse

Warm the cache for a namespace.

Parameters:

Returns:

See Also:



91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/turbopuffer/resources/namespaces.rb', line 91

def hint_cache_warm(params = {})
  parsed, options = Turbopuffer::NamespaceHintCacheWarmParams.dump_request(params)
  namespace =
    parsed.delete(:namespace) do
      @client.default_namespace
    end
  @client.request(
    method: :get,
    path: ["v1/namespaces/%1$s/hint_cache_warm", namespace],
    model: Turbopuffer::Models::NamespaceHintCacheWarmResponse,
    options: options
  )
end

#metadata(namespace: nil, request_options: {}) ⇒ Turbopuffer::Models::NamespaceMetadata

Get metadata about a namespace.

Parameters:

Returns:

See Also:



116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/turbopuffer/resources/namespaces.rb', line 116

def (params = {})
  parsed, options = Turbopuffer::NamespaceMetadataParams.dump_request(params)
  namespace =
    parsed.delete(:namespace) do
      @client.default_namespace
    end
  @client.request(
    method: :get,
    path: ["v1/namespaces/%1$s/metadata", namespace],
    model: Turbopuffer::,
    options: options
  )
end

#multi_query(queries: , namespace: nil, consistency: nil, vector_encoding: nil, request_options: {}) ⇒ Turbopuffer::Models::NamespaceMultiQueryResponse

Issue multiple concurrent queries filter or search documents.

Parameters:

Returns:

See Also:



147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'lib/turbopuffer/resources/namespaces.rb', line 147

def multi_query(params)
  parsed, options = Turbopuffer::NamespaceMultiQueryParams.dump_request(params)
  namespace =
    parsed.delete(:namespace) do
      @client.default_namespace
    end
  @client.request(
    method: :post,
    path: ["v2/namespaces/%1$s/query?stainless_overload=multiQuery", namespace],
    body: parsed,
    model: Turbopuffer::Models::NamespaceMultiQueryResponse,
    options: options
  )
end

#query(namespace: nil, aggregate_by: nil, consistency: nil, distance_metric: nil, exclude_attributes: nil, filters: nil, group_by: nil, include_attributes: nil, rank_by: nil, top_k: nil, vector_encoding: nil, request_options: {}) ⇒ Turbopuffer::Models::NamespaceQueryResponse

Some parameter documentations has been truncated, see Models::NamespaceQueryParams for more details.

Query, filter, full-text search and vector search documents.

Parameters:

  • namespace (String)

    Path param: The name of the namespace.

  • aggregate_by (Hash{Symbol=>Object})

    Body param: Aggregations to compute over all documents in the namespace that mat

  • consistency (Turbopuffer::Models::NamespaceQueryParams::Consistency)

    Body param: The consistency level for a query.

  • distance_metric (Symbol, Turbopuffer::Models::DistanceMetric)

    Body param: A function used to calculate vector similarity.

  • exclude_attributes (Array<String>)

    Body param: List of attribute names to exclude from the response. All other attr

  • filters (Object)

    Body param: Exact filters for attributes to refine search results for. Think of

  • group_by (Array<String>)

    Body param: Groups documents by the specified attributes (the “group key”) befor

  • include_attributes (Boolean, Array<String>)

    Body param: Whether to include attributes in the response.

  • rank_by (Object)

    Body param: How to rank the documents in the namespace.

  • top_k (Integer)

    Body param: The number of results to return.

  • vector_encoding (Symbol, Turbopuffer::Models::VectorEncoding)

    Body param: The encoding to use for vectors in the response.

  • request_options (Turbopuffer::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



196
197
198
199
200
201
202
203
204
205
206
207
208
209
# File 'lib/turbopuffer/resources/namespaces.rb', line 196

def query(params = {})
  parsed, options = Turbopuffer::NamespaceQueryParams.dump_request(params)
  namespace =
    parsed.delete(:namespace) do
      @client.default_namespace
    end
  @client.request(
    method: :post,
    path: ["v2/namespaces/%1$s/query", namespace],
    body: parsed,
    model: Turbopuffer::Models::NamespaceQueryResponse,
    options: options
  )
end

#recall(namespace: nil, filters: nil, include_ground_truth: nil, num: nil, queries: nil, top_k: nil, request_options: {}) ⇒ Turbopuffer::Models::NamespaceRecallResponse

Some parameter documentations has been truncated, see Models::NamespaceRecallParams for more details.

Evaluate recall.

Parameters:

  • namespace (String)

    Path param: The name of the namespace.

  • filters (Object)

    Body param: Filter by attributes. Same syntax as the query endpoint.

  • include_ground_truth (Boolean)

    Body param: Include ground truth data (query vectors and true nearest neighbors)

  • num (Integer)

    Body param: The number of searches to run.

  • queries (Array<Float>)

    Body param: Use specific query vectors for the measurement. If omitted, sampled

  • top_k (Integer)

    Body param: Search for ‘top_k` nearest neighbors.

  • request_options (Turbopuffer::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



235
236
237
238
239
240
241
242
243
244
245
246
247
248
# File 'lib/turbopuffer/resources/namespaces.rb', line 235

def recall(params = {})
  parsed, options = Turbopuffer::NamespaceRecallParams.dump_request(params)
  namespace =
    parsed.delete(:namespace) do
      @client.default_namespace
    end
  @client.request(
    method: :post,
    path: ["v1/namespaces/%1$s/_debug/recall", namespace],
    body: parsed,
    model: Turbopuffer::Models::NamespaceRecallResponse,
    options: options
  )
end

#schema(namespace: nil, request_options: {}) ⇒ Hash{Symbol=>Turbopuffer::Models::AttributeSchemaConfig}

Get namespace schema.

Parameters:

Returns:

See Also:



261
262
263
264
265
266
267
268
269
270
271
272
273
# File 'lib/turbopuffer/resources/namespaces.rb', line 261

def schema(params = {})
  parsed, options = Turbopuffer::NamespaceSchemaParams.dump_request(params)
  namespace =
    parsed.delete(:namespace) do
      @client.default_namespace
    end
  @client.request(
    method: :get,
    path: ["v1/namespaces/%1$s/schema", namespace],
    model: Turbopuffer::Internal::Type::HashOf[Turbopuffer::AttributeSchemaConfig],
    options: options
  )
end

#update_schema(namespace: nil, schema: nil, request_options: {}) ⇒ Hash{Symbol=>Turbopuffer::Models::AttributeSchemaConfig}

Update namespace schema.

Parameters:

Returns:

See Also:



288
289
290
291
292
293
294
295
296
297
298
299
300
301
# File 'lib/turbopuffer/resources/namespaces.rb', line 288

def update_schema(params = {})
  parsed, options = Turbopuffer::NamespaceUpdateSchemaParams.dump_request(params)
  namespace =
    parsed.delete(:namespace) do
      @client.default_namespace
    end
  @client.request(
    method: :post,
    path: ["v1/namespaces/%1$s/schema", namespace],
    body: parsed[:schema],
    model: Turbopuffer::Internal::Type::HashOf[Turbopuffer::AttributeSchemaConfig],
    options: options
  )
end

#write(namespace: nil, copy_from_namespace: nil, delete_by_filter: nil, delete_condition: nil, deletes: nil, distance_metric: nil, encryption: nil, patch_columns: nil, patch_condition: nil, patch_rows: nil, schema: nil, upsert_columns: nil, upsert_condition: nil, upsert_rows: nil, request_options: {}) ⇒ Turbopuffer::Models::NamespaceWriteResponse

Some parameter documentations has been truncated, see Models::NamespaceWriteParams for more details.

Create, update, or delete documents.

Parameters:

  • namespace (String)

    Path param: The name of the namespace.

  • copy_from_namespace (String)

    Body param: The namespace to copy documents from.

  • delete_by_filter (Object)

    Body param: The filter specifying which documents to delete.

  • delete_condition (Object)

    Body param: A condition evaluated against the current value of each document tar

  • deletes (Array<String, Integer>)

    Body param:

  • distance_metric (Symbol, Turbopuffer::Models::DistanceMetric)

    Body param: A function used to calculate vector similarity.

  • encryption (Turbopuffer::Models::NamespaceWriteParams::Encryption)

    Body param: The encryption configuration for a namespace.

  • patch_columns (Turbopuffer::Models::Columns)

    Body param: A list of documents in columnar format. Each key is a column name, m

  • patch_condition (Object)

    Body param: A condition evaluated against the current value of each document tar

  • patch_rows (Array<Turbopuffer::Models::Row>)

    Body param:

  • schema (Hash{Symbol=>String, Turbopuffer::Models::AttributeSchemaConfig})

    Body param: The schema of the attributes attached to the documents.

  • upsert_columns (Turbopuffer::Models::Columns)

    Body param: A list of documents in columnar format. Each key is a column name, m

  • upsert_condition (Object)

    Body param: A condition evaluated against the current value of each document tar

  • upsert_rows (Array<Turbopuffer::Models::Row>)

    Body param:

  • request_options (Turbopuffer::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



343
344
345
346
347
348
349
350
351
352
353
354
355
356
# File 'lib/turbopuffer/resources/namespaces.rb', line 343

def write(params = {})
  parsed, options = Turbopuffer::NamespaceWriteParams.dump_request(params)
  namespace =
    parsed.delete(:namespace) do
      @client.default_namespace
    end
  @client.request(
    method: :post,
    path: ["v2/namespaces/%1$s", namespace],
    body: parsed,
    model: Turbopuffer::Models::NamespaceWriteResponse,
    options: {max_retries: 6, **options}
  )
end