turbopuffer 2.0.0.pre.alpha.1 → 2.0.0.pre.alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6fde3b29deac3a828174a6a5f6255d81bde5182f8c4b4cb83f702e16c69a2c6c
4
- data.tar.gz: 90aabb5c4ce6118046e6a93063f0ead79498511fc1a61f0d61f1da0b961ac51d
3
+ metadata.gz: ec352d339fe92ac66fb6632df2bed51b81559d640f3b4a2140e1ded77218f282
4
+ data.tar.gz: ce362c309ffab91afb01bf3d057f66200b166cc8087bc7055d95f26492cfb941
5
5
  SHA512:
6
- metadata.gz: a3c9579b604aee56e05f0617558f582c41591c7570d577a739404916c07dc4aaf5c77988823c3d630720157aaa262ac50d6ae20e4c4a906b2582293688196b81
7
- data.tar.gz: a7da8ab2ba206e0282f8db9b7d55a096d3248db24456ec3674c87b64f8db8222a869a42b346a329eaab390ecfdfcdb90f45648f7ef076af6409b7779b42a9735
6
+ metadata.gz: '0854bb51b122e2db1f0df2c44e2625e6486c964489615e730b97dd6a541cdb1dff537c41b3e93b967fc5b04a501068cab9342e787a8d186051d0b5a91096588a'
7
+ data.tar.gz: 00514217b637eb9f7d8a6dab848489334267aa8ff5b1ae1c3956fb3e1779cab7c6da22db534e57eb349dee4d9f176e872eae52780a90a234b7342bb01b13e52b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.0-alpha.2 (2026-04-29)
4
+
5
+ Full Changelog: [v2.0.0-alpha.1...v2.0.0-alpha.2](https://github.com/turbopuffer/turbopuffer-ruby/compare/v2.0.0-alpha.1...v2.0.0-alpha.2)
6
+
7
+ ### Features
8
+
9
+ * Spec: Add sparse_distance_metric to the list of models. ([81f2998](https://github.com/turbopuffer/turbopuffer-ruby/commit/81f29982fb72e5f90923a35975841633b40aacc5))
10
+
3
11
  ## 2.0.0-alpha.1 (2026-04-29)
4
12
 
5
13
  Full Changelog: [v1.19.0...v2.0.0-alpha.1](https://github.com/turbopuffer/turbopuffer-ruby/compare/v1.19.0...v2.0.0-alpha.1)
data/README.md CHANGED
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "turbopuffer", "~> 2.0.0.pre.alpha.1"
29
+ gem "turbopuffer", "~> 2.0.0.pre.alpha.2"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -113,14 +113,14 @@ module Turbopuffer
113
113
  # @!attribute distance_metric
114
114
  # A function used to calculate sparse vector similarity.
115
115
  #
116
- # @return [Symbol, :dot_product]
117
- required :distance_metric, const: :dot_product
116
+ # @return [Symbol, Turbopuffer::Models::SparseDistanceMetric]
117
+ required :distance_metric, enum: -> { Turbopuffer::SparseDistanceMetric }
118
118
 
119
- # @!method initialize(distance_metric: :dot_product)
119
+ # @!method initialize(distance_metric:)
120
120
  # Whether to create a sparse kNN index for the attribute. Requires the `{}f16`
121
121
  # type.
122
122
  #
123
- # @param distance_metric [Symbol, :dot_product] A function used to calculate sparse vector similarity.
123
+ # @param distance_metric [Symbol, Turbopuffer::Models::SparseDistanceMetric] A function used to calculate sparse vector similarity.
124
124
  end
125
125
  end
126
126
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ # A function used to calculate sparse vector similarity.
6
+ module SparseDistanceMetric
7
+ extend Turbopuffer::Internal::Type::Enum
8
+
9
+ DOT_PRODUCT = :dot_product
10
+
11
+ # @!method self.values
12
+ # @return [Array<Symbol>]
13
+ end
14
+ end
15
+ end
@@ -122,6 +122,8 @@ module Turbopuffer
122
122
 
123
123
  SaturateParams = Turbopuffer::Models::SaturateParams
124
124
 
125
+ SparseDistanceMetric = Turbopuffer::Models::SparseDistanceMetric
126
+
125
127
  Tokenizer = Turbopuffer::Models::Tokenizer
126
128
 
127
129
  Vector = Turbopuffer::Models::Vector
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Turbopuffer
4
- VERSION = "2.0.0.pre.alpha.1"
4
+ VERSION = "2.0.0.pre.alpha.2"
5
5
  end
data/lib/turbopuffer.rb CHANGED
@@ -105,6 +105,7 @@ require_relative "turbopuffer/models/query_billing"
105
105
  require_relative "turbopuffer/models/query_performance"
106
106
  require_relative "turbopuffer/models/row"
107
107
  require_relative "turbopuffer/models/saturate_params"
108
+ require_relative "turbopuffer/models/sparse_distance_metric"
108
109
  require_relative "turbopuffer/models/tokenizer"
109
110
  require_relative "turbopuffer/models/vector"
110
111
  require_relative "turbopuffer/models/vector_encoding"
@@ -235,19 +235,27 @@ module Turbopuffer
235
235
  end
236
236
 
237
237
  # A function used to calculate sparse vector similarity.
238
- sig { returns(Symbol) }
238
+ sig { returns(Turbopuffer::SparseDistanceMetric::OrSymbol) }
239
239
  attr_accessor :distance_metric
240
240
 
241
241
  # Whether to create a sparse kNN index for the attribute. Requires the `{}f16`
242
242
  # type.
243
- sig { params(distance_metric: Symbol).returns(T.attached_class) }
243
+ sig do
244
+ params(
245
+ distance_metric: Turbopuffer::SparseDistanceMetric::OrSymbol
246
+ ).returns(T.attached_class)
247
+ end
244
248
  def self.new(
245
249
  # A function used to calculate sparse vector similarity.
246
- distance_metric: :dot_product
250
+ distance_metric:
247
251
  )
248
252
  end
249
253
 
250
- sig { override.returns({ distance_metric: Symbol }) }
254
+ sig do
255
+ override.returns(
256
+ { distance_metric: Turbopuffer::SparseDistanceMetric::OrSymbol }
257
+ )
258
+ end
251
259
  def to_hash
252
260
  end
253
261
  end
@@ -0,0 +1,25 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ # A function used to calculate sparse vector similarity.
6
+ module SparseDistanceMetric
7
+ extend Turbopuffer::Internal::Type::Enum
8
+
9
+ TaggedSymbol =
10
+ T.type_alias { T.all(Symbol, Turbopuffer::SparseDistanceMetric) }
11
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
12
+
13
+ DOT_PRODUCT =
14
+ T.let(:dot_product, Turbopuffer::SparseDistanceMetric::TaggedSymbol)
15
+
16
+ sig do
17
+ override.returns(
18
+ T::Array[Turbopuffer::SparseDistanceMetric::TaggedSymbol]
19
+ )
20
+ end
21
+ def self.values
22
+ end
23
+ end
24
+ end
25
+ end
@@ -91,6 +91,8 @@ module Turbopuffer
91
91
 
92
92
  SaturateParams = Turbopuffer::Models::SaturateParams
93
93
 
94
+ SparseDistanceMetric = Turbopuffer::Models::SparseDistanceMetric
95
+
94
96
  Tokenizer = Turbopuffer::Models::Tokenizer
95
97
 
96
98
  Vector = Turbopuffer::Models::Vector
@@ -98,14 +98,19 @@ module Turbopuffer
98
98
  def self?.variants: -> ::Array[Turbopuffer::Models::AttributeSchemaConfig::ann]
99
99
  end
100
100
 
101
- type sparse_knn = { distance_metric: :dot_product }
101
+ type sparse_knn =
102
+ { distance_metric: Turbopuffer::Models::sparse_distance_metric }
102
103
 
103
104
  class SparseKnn < Turbopuffer::Internal::Type::BaseModel
104
- attr_accessor distance_metric: :dot_product
105
+ attr_accessor distance_metric: Turbopuffer::Models::sparse_distance_metric
105
106
 
106
- def initialize: (?distance_metric: :dot_product) -> void
107
+ def initialize: (
108
+ distance_metric: Turbopuffer::Models::sparse_distance_metric
109
+ ) -> void
107
110
 
108
- def to_hash: -> { distance_metric: :dot_product }
111
+ def to_hash: -> {
112
+ distance_metric: Turbopuffer::Models::sparse_distance_metric
113
+ }
109
114
  end
110
115
  end
111
116
  end
@@ -0,0 +1,13 @@
1
+ module Turbopuffer
2
+ module Models
3
+ type sparse_distance_metric = :dot_product
4
+
5
+ module SparseDistanceMetric
6
+ extend Turbopuffer::Internal::Type::Enum
7
+
8
+ DOT_PRODUCT: :dot_product
9
+
10
+ def self?.values: -> ::Array[Turbopuffer::Models::sparse_distance_metric]
11
+ end
12
+ end
13
+ end
@@ -81,6 +81,8 @@ module Turbopuffer
81
81
 
82
82
  class SaturateParams = Turbopuffer::Models::SaturateParams
83
83
 
84
+ module SparseDistanceMetric = Turbopuffer::Models::SparseDistanceMetric
85
+
84
86
  module Tokenizer = Turbopuffer::Models::Tokenizer
85
87
 
86
88
  module Vector = Turbopuffer::Models::Vector
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbopuffer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre.alpha.1
4
+ version: 2.0.0.pre.alpha.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Turbopuffer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-04-29 00:00:00.000000000 Z
11
+ date: 2026-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi
@@ -122,6 +122,7 @@ files:
122
122
  - lib/turbopuffer/models/query_performance.rb
123
123
  - lib/turbopuffer/models/row.rb
124
124
  - lib/turbopuffer/models/saturate_params.rb
125
+ - lib/turbopuffer/models/sparse_distance_metric.rb
125
126
  - lib/turbopuffer/models/tokenizer.rb
126
127
  - lib/turbopuffer/models/vector.rb
127
128
  - lib/turbopuffer/models/vector_encoding.rb
@@ -204,6 +205,7 @@ files:
204
205
  - rbi/turbopuffer/models/query_performance.rbi
205
206
  - rbi/turbopuffer/models/row.rbi
206
207
  - rbi/turbopuffer/models/saturate_params.rbi
208
+ - rbi/turbopuffer/models/sparse_distance_metric.rbi
207
209
  - rbi/turbopuffer/models/tokenizer.rbi
208
210
  - rbi/turbopuffer/models/vector.rbi
209
211
  - rbi/turbopuffer/models/vector_encoding.rbi
@@ -285,6 +287,7 @@ files:
285
287
  - sig/turbopuffer/models/query_performance.rbs
286
288
  - sig/turbopuffer/models/row.rbs
287
289
  - sig/turbopuffer/models/saturate_params.rbs
290
+ - sig/turbopuffer/models/sparse_distance_metric.rbs
288
291
  - sig/turbopuffer/models/tokenizer.rbs
289
292
  - sig/turbopuffer/models/vector.rbs
290
293
  - sig/turbopuffer/models/vector_encoding.rbs