diff --git a/src/memos/memories/textual/tree_text_memory/retrieve/bochasearch.py b/src/memos/memories/textual/tree_text_memory/retrieve/bochasearch.py index b11b75ed..31b91477 100644 --- a/src/memos/memories/textual/tree_text_memory/retrieve/bochasearch.py +++ b/src/memos/memories/textual/tree_text_memory/retrieve/bochasearch.py @@ -12,7 +12,7 @@ from memos.embedders.factory import OllamaEmbedder from memos.log import get_logger from memos.mem_reader.base import BaseMemReader -from memos.memories.textual.item import TextualMemoryItem +from memos.memories.textual.item import SourceMessage, TextualMemoryItem logger = get_logger(__name__) @@ -227,7 +227,7 @@ def _process_result( ) read_item_i.metadata.source = "web" read_item_i.metadata.memory_type = "OuterMemory" - read_item_i.metadata.sources = [url] if url else [] + read_item_i.metadata.sources = [SourceMessage(type="web", url=url)] if url else [] read_item_i.metadata.visibility = "public" memory_items.append(read_item_i) return memory_items diff --git a/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py b/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py index 7ec235fb..819b4e36 100644 --- a/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py +++ b/src/memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py @@ -7,7 +7,11 @@ import requests from memos.embedders.factory import OllamaEmbedder -from memos.memories.textual.item import TextualMemoryItem, TreeNodeTextualMemoryMetadata +from memos.memories.textual.item import ( + SourceMessage, + TextualMemoryItem, + TreeNodeTextualMemoryMetadata, +) class GoogleCustomSearchAPI: @@ -172,7 +176,7 @@ def retrieve_from_internet( visibility="public", memory_type="LongTermMemory", # Internet search results as working memory key=title, - sources=[link] if link else [], + sources=[SourceMessage(type="web", url=link)] if link else [], embedding=self.embedder.embed([memory_content])[0], # Can add embedding later created_at=datetime.now().isoformat(), usage=[], diff --git a/src/memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py b/src/memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py index e36777f3..e5acd00f 100644 --- a/src/memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py +++ b/src/memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py @@ -12,7 +12,7 @@ from memos.embedders.factory import OllamaEmbedder from memos.log import get_logger from memos.mem_reader.base import BaseMemReader -from memos.memories.textual.item import TextualMemoryItem +from memos.memories.textual.item import SourceMessage, TextualMemoryItem logger = get_logger(__name__) @@ -333,7 +333,7 @@ def _process_result( ) read_item_i.metadata.source = "web" read_item_i.metadata.memory_type = "OuterMemory" - read_item_i.metadata.sources = [url] if url else [] + read_item_i.metadata.sources = [SourceMessage(type="web", url=url)] if url else [] read_item_i.metadata.visibility = "public" memory_items.append(read_item_i) diff --git a/src/memos/reranker/http_bge.py b/src/memos/reranker/http_bge.py index 98d922fc..f0f5d17a 100644 --- a/src/memos/reranker/http_bge.py +++ b/src/memos/reranker/http_bge.py @@ -213,6 +213,7 @@ def rerank( for item, raw_score in zip(graph_results, score_list, strict=False): score = self._apply_boost_generic(item, raw_score, search_filter) scored_items.append((item, score)) + scored_items.sort(key=lambda x: x[1], reverse=True) return scored_items[: min(top_k, len(scored_items))]