yangdx
commited on
Commit
·
cd1776d
1
Parent(s):
a0a4ecf
Fix linting
Browse files- lightrag/utils.py +13 -7
lightrag/utils.py
CHANGED
@@ -576,21 +576,27 @@ async def get_best_cached_response(
|
|
576 |
# Check if cache data is valid
|
577 |
if cache_data["embedding"] is None:
|
578 |
continue
|
579 |
-
|
580 |
try:
|
581 |
# Safely convert cached embedding
|
582 |
cached_quantized = np.frombuffer(
|
583 |
bytes.fromhex(cache_data["embedding"]), dtype=np.uint8
|
584 |
).reshape(cache_data["embedding_shape"])
|
585 |
-
|
586 |
# Ensure min_val and max_val are valid float values
|
587 |
embedding_min = cache_data.get("embedding_min")
|
588 |
embedding_max = cache_data.get("embedding_max")
|
589 |
-
|
590 |
-
if
|
591 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
592 |
continue
|
593 |
-
|
594 |
cached_embedding = dequantize_embedding(
|
595 |
cached_quantized,
|
596 |
embedding_min,
|
@@ -701,7 +707,7 @@ def dequantize_embedding(
|
|
701 |
if min_val == max_val:
|
702 |
# handle constant vector
|
703 |
return np.full_like(quantized, min_val, dtype=np.float32)
|
704 |
-
|
705 |
scale = (max_val - min_val) / (2**bits - 1)
|
706 |
return (quantized * scale + min_val).astype(np.float32)
|
707 |
|
|
|
576 |
# Check if cache data is valid
|
577 |
if cache_data["embedding"] is None:
|
578 |
continue
|
579 |
+
|
580 |
try:
|
581 |
# Safely convert cached embedding
|
582 |
cached_quantized = np.frombuffer(
|
583 |
bytes.fromhex(cache_data["embedding"]), dtype=np.uint8
|
584 |
).reshape(cache_data["embedding_shape"])
|
585 |
+
|
586 |
# Ensure min_val and max_val are valid float values
|
587 |
embedding_min = cache_data.get("embedding_min")
|
588 |
embedding_max = cache_data.get("embedding_max")
|
589 |
+
|
590 |
+
if (
|
591 |
+
embedding_min is None
|
592 |
+
or embedding_max is None
|
593 |
+
or embedding_min >= embedding_max
|
594 |
+
):
|
595 |
+
logger.warning(
|
596 |
+
f"Invalid embedding min/max values: min={embedding_min}, max={embedding_max}"
|
597 |
+
)
|
598 |
continue
|
599 |
+
|
600 |
cached_embedding = dequantize_embedding(
|
601 |
cached_quantized,
|
602 |
embedding_min,
|
|
|
707 |
if min_val == max_val:
|
708 |
# handle constant vector
|
709 |
return np.full_like(quantized, min_val, dtype=np.float32)
|
710 |
+
|
711 |
scale = (max_val - min_val) / (2**bits - 1)
|
712 |
return (quantized * scale + min_val).astype(np.float32)
|
713 |
|