Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,9 @@ def _process_result(
memory_items = []
for read_item_i in read_items[0]:
read_item_i.memory = (
f"Title: {title}\nNewsTime: {publish_time}\nSummary: {summary}\n"
f"[Outer internet view] Title: {title}\nNewsTime:"
f" {publish_time}\nSummary:"
f" {summary}\n"
f"Content: {read_item_i.memory}"
)
read_item_i.metadata.source = "web"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ def _vector_recall(
query_embedding: list[list[float]],
memory_scope: str,
top_k: int = 20,
max_num: int = 5,
max_num: int = 3,
cube_name: str | None = None,
) -> list[TextualMemoryItem]:
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,12 @@ def search(
self._update_usage_history(final_results, info)

logger.info(f"[SEARCH] Done. Total {len(final_results)} results.")
res_results = ""
for _num_i, result in enumerate(final_results):
res_results += "\n" + (
result.id + "|" + result.metadata.memory_type + "|" + result.memory
)
logger.info(f"[SEARCH] Results. {res_results}")
return final_results

@timed
Expand All @@ -108,9 +114,10 @@ def _parse_task(self, query, info, mode, top_k=5):
context = list({node["memory"] for node in related_nodes})

# optional: supplement context with internet knowledge
if self.internet_retriever:
"""if self.internet_retriever:
extra = self.internet_retriever.retrieve_from_internet(query=query, top_k=3)
context.extend(item.memory.partition("\nContent: ")[-1] for item in extra)
"""

# parse goal using LLM
parsed_goal = self.task_goal_parser.parse(
Expand Down
10 changes: 6 additions & 4 deletions src/memos/memories/textual/tree_text_memory/retrieve/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,20 @@
5. Need for internet search: If the user's task instruction only involves objective facts or can be completed without introducing external knowledge, set "internet_search" to False. Otherwise, set it to True.
6. Memories: Provide 2–5 short semantic expansions or rephrasings of the rephrased/original user task instruction. These are used for improved embedding search coverage. Each should be clear, concise, and meaningful for retrieval.

Task description:
\"\"\"$task\"\"\"

Former conversation (if any):
\"\"\"
$conversation
\"\"\"

Task description(User Question):
\"\"\"$task\"\"\"

Context (if any):
\"\"\"$context\"\"\"

Return strictly in this JSON format:
Return strictly in this JSON format, note that the
keys/tags/rephrased_instruction/memories should use the same language as the
input query:
{
"keys": [...],
"tags": [...],
Expand Down
9 changes: 8 additions & 1 deletion src/memos/reranker/http_bge.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# memos/reranker/http_bge.py
from __future__ import annotations

import re

from typing import TYPE_CHECKING

import requests
Expand All @@ -11,6 +13,8 @@
if TYPE_CHECKING:
from memos.memories.textual.item import TextualMemoryItem

_TAG1 = re.compile(r"^\s*\[[^\]]*\]\s*")


class HTTPBGEReranker(BaseReranker):
"""
Expand Down Expand Up @@ -43,7 +47,10 @@ def rerank(
if not graph_results:
return []

documents = [getattr(item, "memory", None) for item in graph_results]
documents = [
(_TAG1.sub("", m) if isinstance((m := getattr(item, "memory", None)), str) else m)
for item in graph_results
]
documents = [d for d in documents if isinstance(d, str) and d]
if not documents:
return []
Expand Down
Loading