Skip to content

Commit 5cf0282

Browse files
whipser030黑布林CaralHsifridayL
authored
fix: add feedback change to preference (#771)
* update reader and search strategy * set strategy reader and search config * fix install problem * fix * fix test * turn off graph recall * turn off graph recall * turn off graph recall * fix Searcher input bug * fix Searcher * fix Search * fix bug * adjust strategy reader * adjust strategy reader * adjust search config input * reformat code * re pr * format repair * fix time issue * develop feedback process * feedback handler configuration * upgrade feedback using * add threshold * update prompt * update prompt * fix handler * add feedback scheduler * add handler change node update * add handler change node update * add handler change node update * add handler change node update * fix interface input * add chunk and ratio filter * update stopwords * fix messages queue * add seach_by_keywords_LIKE * add doc filter * add retrieve query * add retrieve queies * patch info filter * add log and make embedding safety net * add log and make embedding safety net * deduplicate add objects * use _add_memories_parallel * delete Special characters * delete Special characters * delete Special characters * delete Special characters * add source_doc_id * add source_doc_id * add reranker in init com.. * fix circle import * add feedback judgement * add feedback judgement * add pref feedback * add pref feedback --------- Co-authored-by: 黑布林 <[email protected]> Co-authored-by: CaralHsi <[email protected]> Co-authored-by: chunyu li <[email protected]>
1 parent 1ee536a commit 5cf0282

File tree

7 files changed

+135
-38
lines changed

7 files changed

+135
-38
lines changed

src/memos/api/handlers/component_init.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,7 @@ def init_server() -> dict[str, Any]:
308308
mem_reader=mem_reader,
309309
searcher=searcher,
310310
reranker=feedback_reranker,
311+
pref_mem=pref_mem,
311312
)
312313

313314
# Initialize Scheduler

src/memos/mem_feedback/feedback.py

Lines changed: 120 additions & 37 deletions
Large diffs are not rendered by default.

src/memos/mem_feedback/simple_feedback.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from memos.llms.factory import AzureLLM, OllamaLLM, OpenAILLM
55
from memos.mem_feedback.feedback import MemFeedback
66
from memos.mem_reader.simple_struct import SimpleStructMemReader
7+
from memos.memories.textual.simple_preference import SimplePreferenceTextMemory
78
from memos.memories.textual.tree_text_memory.organize.manager import MemoryManager
89
from memos.memories.textual.tree_text_memory.retrieve.retrieve_utils import StopwordManager
910
from memos.memories.textual.tree_text_memory.retrieve.searcher import Searcher
@@ -23,6 +24,7 @@ def __init__(
2324
mem_reader: SimpleStructMemReader,
2425
searcher: Searcher,
2526
reranker: BaseReranker,
27+
pref_mem: SimplePreferenceTextMemory,
2628
):
2729
self.llm = llm
2830
self.embedder = embedder
@@ -31,5 +33,6 @@ def __init__(
3133
self.mem_reader = mem_reader
3234
self.searcher = searcher
3335
self.stopword_manager = StopwordManager
36+
self.pref_mem = pref_mem
3437
self.reranker = reranker
3538
self.DB_IDX_READY = False

src/memos/mem_feedback/utils.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,11 @@ def calculate_similarity(text1: str, text2: str) -> float:
4848
similarity = calculate_similarity(old_text, new_text)
4949
change_ratio = 1 - similarity
5050

51+
if change_ratio == float(0):
52+
return False
53+
5154
if old_len < 200:
52-
return change_ratio < 0.5
55+
return change_ratio < 0.7
5356
else:
5457
return change_ratio < 0.2
5558

src/memos/mem_scheduler/general_modules/init_components_for_scheduler.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,7 @@ def init_components() -> dict[str, Any]:
418418
mem_reader=mem_reader,
419419
searcher=searcher,
420420
reranker=feedback_reranker,
421+
pref_mem=pref_mem,
421422
)
422423
# Return all components as a dictionary for easy access and extension
423424
return {"naive_mem_cube": naive_mem_cube, "feedback_server": feedback_server}

src/memos/memories/textual/preference.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ def search(
8787
Returns:
8888
list[TextualMemoryItem]: List of matching memories.
8989
"""
90+
if not isinstance(search_filter, dict):
91+
search_filter = {}
92+
search_filter.update({"status": "activated"})
9093
logger.info(f"search_filter for preference memory: {search_filter}")
9194
return self.retriever.retrieve(query, top_k, info, search_filter)
9295

src/memos/memories/textual/simple_preference.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ def search(
6161
Returns:
6262
list[TextualMemoryItem]: List of matching memories.
6363
"""
64+
if not isinstance(search_filter, dict):
65+
search_filter = {}
66+
search_filter.update({"status": "activated"})
6467
return self.retriever.retrieve(query, top_k, info, search_filter)
6568

6669
def add(self, memories: list[TextualMemoryItem | dict[str, Any]]) -> list[str]:

0 commit comments

Comments
 (0)