Skip to content

Commit 4e59d24

Browse files
authoredApr 14, 2025
DOC-5073 vector set quantization and dimension reduction examples (#3597)
* DOC-5073 added example of quantization * DOC-5073 added example of reduce option for vadd()
1 parent 04589d4 commit 4e59d24

File tree

1 file changed

+77
-1
lines changed

1 file changed

+77
-1
lines changed
 

‎doctests/dt_vec_set.py

+77-1
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,18 @@
77

88
import redis
99

10+
from redis.commands.vectorset.commands import (
11+
QuantizationOptions
12+
)
13+
1014
r = redis.Redis(decode_responses=True)
1115
# HIDE_END
1216

1317
# REMOVE_START
14-
r.delete("points")
18+
r.delete(
19+
"points", "quantSetQ8", "quantSetNoQ",
20+
"quantSetBin", "setNotReduced", "setReduced"
21+
)
1522
# REMOVE_END
1623

1724
# STEP_START vadd
@@ -208,3 +215,72 @@
208215

209216
assert res30 == ['pt:C', 'pt:B']
210217
# REMOVE_END
218+
219+
# STEP_START add_quant
220+
# Import `QuantizationOptions` enum using:
221+
#
222+
# from redis.commands.vectorset.commands import (
223+
# QuantizationOptions
224+
# )
225+
res31 = r.vset().vadd(
226+
"quantSetQ8", [1.262185, 1.958231],
227+
"quantElement",
228+
quantization=QuantizationOptions.Q8
229+
)
230+
print(res31) # >>> 1
231+
232+
res32 = r.vset().vemb("quantSetQ8", "quantElement")
233+
print(f"Q8: {res32}")
234+
# >>> Q8: [1.2643694877624512, 1.958230972290039]
235+
236+
res33 = r.vset().vadd(
237+
"quantSetNoQ", [1.262185, 1.958231],
238+
"quantElement",
239+
quantization=QuantizationOptions.NOQUANT
240+
)
241+
print(res33) # >>> 1
242+
243+
res34 = r.vset().vemb("quantSetNoQ", "quantElement")
244+
print(f"NOQUANT: {res34}")
245+
# >>> NOQUANT: [1.262184977531433, 1.958230972290039]
246+
247+
res35 = r.vset().vadd(
248+
"quantSetBin", [1.262185, 1.958231],
249+
"quantElement",
250+
quantization=QuantizationOptions.BIN
251+
)
252+
print(res35) # >>> 1
253+
254+
res36 = r.vset().vemb("quantSetBin", "quantElement")
255+
print(f"BIN: {res36}")
256+
# >>> BIN: [1, 1]
257+
# STEP_END
258+
# REMOVE_START
259+
assert res31 == 1
260+
# REMOVE_END
261+
262+
# STEP_START add_reduce
263+
# Create a list of 300 arbitrary values.
264+
values = [x / 299 for x in range(300)]
265+
266+
res37 = r.vset().vadd(
267+
"setNotReduced",
268+
values,
269+
"element"
270+
)
271+
print(res37) # >>> 1
272+
273+
res38 = r.vset().vdim("setNotReduced")
274+
print(res38) # >>> 300
275+
276+
res39 = r.vset().vadd(
277+
"setReduced",
278+
values,
279+
"element",
280+
reduce_dim=100
281+
)
282+
print(res39) # >>> 1
283+
284+
res40 = r.vset().vdim("setReduced") # >>> 100
285+
print(res40)
286+
# STEP_END

0 commit comments

Comments
 (0)