# Copyright (c) Microsoft. All rights reserved. import sys from numpy import ndarray from semantic_kernel.memory.memory_record import MemoryRecord if sys.version_info >= (3, 13): from warnings import deprecated else: from typing_extensions import deprecated @deprecated("This class will be removed in a future version.") class MemoryQueryResult: """The memory query result.""" is_reference: bool external_source_name: str | None id: str description: str | None text: str | None additional_metadata: str | None relevance: float embedding: ndarray | None def __init__( self, is_reference: bool, external_source_name: str | None, id: str, description: str | None, text: str | None, additional_metadata: str | None, embedding: ndarray | None, relevance: float, ) -> None: """Initialize a new instance of MemoryQueryResult. Args: is_reference (bool): Whether the record is a reference record. external_source_name (Optional[str]): The name of the external source. id (str): A unique for the record. description (Optional[str]): The description of the record. text (Optional[str]): The text of the record. additional_metadata (Optional[str]): Custom metadata for the record. embedding (ndarray): The embedding of the record. relevance (float): The relevance of the record to a known query. Returns: None: None. """ self.is_reference = is_reference self.external_source_name = external_source_name self.id = id self.description = description self.text = text self.additional_metadata = additional_metadata self.relevance = relevance self.embedding = embedding @staticmethod def from_memory_record( record: MemoryRecord, relevance: float, ) -> "MemoryQueryResult": """Create a new instance of MemoryQueryResult from a MemoryRecord. Args: record (MemoryRecord): The MemoryRecord to create the MemoryQueryResult from. relevance (float): The relevance of the record to a known query. Returns: MemoryQueryResult: The created MemoryQueryResult. """ return MemoryQueryResult( is_reference=record._is_reference, external_source_name=record._external_source_name, id=record._id, description=record._description, text=record._text, additional_metadata=record._additional_metadata, embedding=record._embedding, relevance=relevance, )