Skip to content

Commit 576d6c5

Browse files
committed
feat(redis): use RangeQuery when distance_threshold is provided; VectorQuery otherwise (RedisVL expects distance_threshold at query level)
1 parent 24d321d commit 576d6c5

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

agent_memory_server/vectorstore_adapter.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -885,20 +885,13 @@ async def search_memories(
885885
# If server-side recency is requested, attempt RedisVL query first (DB-level path)
886886
if server_side_recency:
887887
try:
888-
from redisvl.query import VectorQuery
888+
from redisvl.query import RangeQuery, VectorQuery
889889

890890
index = getattr(self.vectorstore, "_index", None)
891891
if index is not None:
892892
# Embed the query text to vector
893893
embedding_vector = self.embeddings.embed_query(query)
894894

895-
# Score threshold maps from distance threshold if provided
896-
score_threshold = (
897-
1.0 - float(distance_threshold)
898-
if distance_threshold is not None
899-
else None
900-
)
901-
902895
# Collect fields we need back from Redis
903896
return_fields = [
904897
"id_",
@@ -921,14 +914,23 @@ async def search_memories(
921914
"text",
922915
]
923916

924-
vq = VectorQuery(
925-
vector=embedding_vector,
926-
vector_field_name="vector",
927-
return_fields=return_fields,
928-
filter_expression=redis_filter,
929-
k=limit + offset,
930-
score_threshold=score_threshold,
931-
)
917+
if distance_threshold is not None:
918+
vq = RangeQuery(
919+
vector=embedding_vector,
920+
vector_field_name="vector",
921+
return_fields=return_fields,
922+
filter_expression=redis_filter,
923+
distance_threshold=float(distance_threshold),
924+
k=limit + offset,
925+
)
926+
else:
927+
vq = VectorQuery(
928+
vector=embedding_vector,
929+
vector_field_name="vector",
930+
return_fields=return_fields,
931+
filter_expression=redis_filter,
932+
k=limit + offset,
933+
)
932934

933935
# Execute via AsyncSearchIndex if available
934936
if hasattr(index, "asearch"):

0 commit comments

Comments
 (0)