|  | 
| 7 | 7 | 
 | 
| 8 | 8 | import redis | 
| 9 | 9 | 
 | 
|  | 10 | +from redis.commands.vectorset.commands import ( | 
|  | 11 | +    QuantizationOptions | 
|  | 12 | +) | 
|  | 13 | + | 
| 10 | 14 | r = redis.Redis(decode_responses=True) | 
| 11 | 15 | # HIDE_END | 
| 12 | 16 | 
 | 
| 13 | 17 | # REMOVE_START | 
| 14 |  | -r.delete("points") | 
|  | 18 | +r.delete( | 
|  | 19 | +    "points", "quantSetQ8", "quantSetNoQ", | 
|  | 20 | +    "quantSetBin", "setNotReduced", "setReduced" | 
|  | 21 | +) | 
| 15 | 22 | # REMOVE_END | 
| 16 | 23 | 
 | 
| 17 | 24 | # STEP_START vadd | 
|  | 
| 208 | 215 | 
 | 
| 209 | 216 | assert res30 == ['pt:C', 'pt:B'] | 
| 210 | 217 | # 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