From ebd05dcc85746c910c6068964d3a0e1b0090e55e Mon Sep 17 00:00:00 2001 From: Andy Stark Date: Fri, 11 Apr 2025 11:30:43 +0100 Subject: [PATCH 1/2] DOC-5073 added example of quantization --- doctests/dt_vec_set.py | 49 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/doctests/dt_vec_set.py b/doctests/dt_vec_set.py index 398171a04c..3db8f4a22d 100644 --- a/doctests/dt_vec_set.py +++ b/doctests/dt_vec_set.py @@ -7,11 +7,15 @@ import redis +from redis.commands.vectorset.commands import ( + QuantizationOptions +) + r = redis.Redis(decode_responses=True) # HIDE_END # REMOVE_START -r.delete("points") +r.delete("points", "quantSetQ8", "quantSetNoQ", "quantSetBin") # REMOVE_END # STEP_START vadd @@ -208,3 +212,46 @@ assert res30 == ['pt:C', 'pt:B'] # REMOVE_END + +# STEP_START add_quant +# Import `QuantizationOptions` enum using: +# +# from redis.commands.vectorset.commands import ( +# QuantizationOptions +# ) +res31 = r.vset().vadd( + "quantSetQ8", [1.262185, 1.958231], + "quantElement", + quantization=QuantizationOptions.Q8 +) +print(res31) # >>> 1 + +res32 = r.vset().vemb("quantSetQ8", "quantElement") +print(f"Q8: {res32}") +# >>> Q8: [1.2643694877624512, 1.958230972290039] + +res33 = r.vset().vadd( + "quantSetNoQ", [1.262185, 1.958231], + "quantElement", + quantization=QuantizationOptions.NOQUANT +) +print(res33) # >>> 1 + +res34 = r.vset().vemb("quantSetNoQ", "quantElement") +print(f"NOQUANT: {res34}") +# >>> NOQUANT: [1.262184977531433, 1.958230972290039] + +res35 = r.vset().vadd( + "quantSetBin", [1.262185, 1.958231], + "quantElement", + quantization=QuantizationOptions.BIN +) +print(res35) # >>> 1 + +res36 = r.vset().vemb("quantSetBin", "quantElement") +print(f"BIN: {res36}") +# >>> BIN: [1, 1] +# STEP_END +# REMOVE_START +assert res31 == 1 +# REMOVE_END From c0a9374c4ee52dbf0d57edfb4cb829c9e1555ebf Mon Sep 17 00:00:00 2001 From: Andy Stark Date: Fri, 11 Apr 2025 11:53:45 +0100 Subject: [PATCH 2/2] DOC-5073 added example of reduce option for vadd() --- doctests/dt_vec_set.py | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/doctests/dt_vec_set.py b/doctests/dt_vec_set.py index 3db8f4a22d..687ad90593 100644 --- a/doctests/dt_vec_set.py +++ b/doctests/dt_vec_set.py @@ -15,7 +15,10 @@ # HIDE_END # REMOVE_START -r.delete("points", "quantSetQ8", "quantSetNoQ", "quantSetBin") +r.delete( + "points", "quantSetQ8", "quantSetNoQ", + "quantSetBin", "setNotReduced", "setReduced" +) # REMOVE_END # STEP_START vadd @@ -255,3 +258,29 @@ # REMOVE_START assert res31 == 1 # REMOVE_END + +# STEP_START add_reduce +# Create a list of 300 arbitrary values. +values = [x / 299 for x in range(300)] + +res37 = r.vset().vadd( + "setNotReduced", + values, + "element" +) +print(res37) # >>> 1 + +res38 = r.vset().vdim("setNotReduced") +print(res38) # >>> 300 + +res39 = r.vset().vadd( + "setReduced", + values, + "element", + reduce_dim=100 +) +print(res39) # >>> 1 + +res40 = r.vset().vdim("setReduced") # >>> 100 +print(res40) +# STEP_END