diff --git a/langchain/vectorstores/redis.py b/langchain/vectorstores/redis.py index 950dbc6a73d..64b68d83663 100644 --- a/langchain/vectorstores/redis.py +++ b/langchain/vectorstores/redis.py @@ -319,7 +319,7 @@ class Redis(VectorStore): base_query = ( f"{hybrid_fields}=>[KNN {k} @{self.vector_key} $vector AS vector_score]" ) - return_fields = [self.metadata_key, self.content_key, "vector_score"] + return_fields = [self.metadata_key, self.content_key, "vector_score", "id"] return ( Query(base_query) .return_fields(*return_fields) @@ -356,17 +356,12 @@ class Redis(VectorStore): results = self.client.ft(self.index_name).search(redis_query, params_dict) # Prepare document results - docs = [ - ( - Document( - page_content=result.content, metadata=json.loads(result.metadata) - ), - float(result.vector_score), - ) - for result in results.docs - ] - - return docs + docs_and_scores: List[Tuple[Document, float]] = [] + for result in results.docs: + metadata = {**json.loads(result.metadata), "id": result.id} + doc = Document(page_content=result.content, metadata=metadata) + docs_and_scores.append((doc, float(result.vector_score))) + return docs_and_scores @classmethod def from_texts_return_keys(