Skip to content

Commit 1b0e3af

Browse files
author
黑布林
committed
add feedback judgement
1 parent f37b15b commit 1b0e3af

File tree

1 file changed

+31
-27
lines changed

1 file changed

+31
-27
lines changed

src/memos/mem_feedback/feedback.py

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ def _retry_db_operation(self, operation):
115115
return operation()
116116
except Exception as e:
117117
logger.error(
118-
f"[Feedback Core: _retry_db_operation] DB operation failed: {e}", exc_info=True
118+
f"[1223 Feedback Core: _retry_db_operation] DB operation failed: {e}", exc_info=True
119119
)
120120
raise
121121

@@ -129,7 +129,7 @@ def _batch_embed(self, texts: list[str], embed_bs: int = 5):
129129
results.extend(self._embed_once(batch))
130130
except Exception as e:
131131
logger.error(
132-
f"[Feedback Core: process_feedback_core] Embedding batch failed, Cover with all zeros: {len(batch)} entries: {e}"
132+
f"[1223 Feedback Core: process_feedback_core] Embedding batch failed, Cover with all zeros: {len(batch)} entries: {e}"
133133
)
134134
results.extend([[0.0] * dim for _ in range(len(batch))])
135135
return results
@@ -145,7 +145,7 @@ def _pure_add(self, user_name: str, feedback_content: str, feedback_time: str, i
145145
lambda: self.memory_manager.add(to_add_memories, user_name=user_name, use_batch=False)
146146
)
147147
logger.info(
148-
f"[Feedback Core: _pure_add] Pure added {len(added_ids)} memories for user {user_name}."
148+
f"[1223 Feedback Core: _pure_add] Pure added {len(added_ids)} memories for user {user_name}."
149149
)
150150
return {
151151
"record": {
@@ -182,7 +182,7 @@ def _keyword_replace_judgement(self, feedback_content: str) -> dict | None:
182182
return judge_res
183183
else:
184184
logger.warning(
185-
"[Feedback Core: _feedback_judgement] feedback judgement failed, return []"
185+
"[1223 Feedback Core: _feedback_judgement] feedback judgement failed, return []"
186186
)
187187
return {}
188188

@@ -207,7 +207,7 @@ def _feedback_judgement(
207207
return judge_res
208208
else:
209209
logger.warning(
210-
"[Feedback Core: _feedback_judgement] feedback judgement failed, return []"
210+
"[1223 Feedback Core: _feedback_judgement] feedback judgement failed, return []"
211211
)
212212
return []
213213

@@ -334,11 +334,11 @@ def _del_working_binding(self, user_name, mem_items: list[TextualMemoryItem]) ->
334334
self.graph_store.delete_node(mid, user_name=user_name)
335335

336336
logger.info(
337-
f"[Feedback Core:_del_working_binding] Delete raw/working mem_ids: {delete_ids} for user_name: {user_name}"
337+
f"[1223 Feedback Core:_del_working_binding] Delete raw/working mem_ids: {delete_ids} for user_name: {user_name}"
338338
)
339339
except Exception as e:
340340
logger.warning(
341-
f"[Feedback Core:_del_working_binding] TreeTextMemory.delete_hard: failed to delete {mid}: {e}"
341+
f"[1223 Feedback Core:_del_working_binding] TreeTextMemory.delete_hard: failed to delete {mid}: {e}"
342342
)
343343

344344
def semantics_feedback(
@@ -407,7 +407,9 @@ def semantics_feedback(
407407
):
408408
all_operations.extend(chunk_operations["operations"])
409409
except Exception as e:
410-
logger.error(f"[Feedback Core: semantics_feedback] Operation failed: {e}")
410+
logger.error(
411+
f"[1223 Feedback Core: semantics_feedback] Operation failed: {e}"
412+
)
411413

412414
standard_operations = self.standard_operations(all_operations, current_memories)
413415
operations = self.filter_fault_update(standard_operations)
@@ -456,7 +458,7 @@ def semantics_feedback(
456458
update_results.append(result)
457459
except Exception as e:
458460
logger.error(
459-
f"[Feedback Core: semantics_feedback] Operation failed for {original_op}: {e}",
461+
f"[1223 Feedback Core: semantics_feedback] Operation failed for {original_op}: {e}",
460462
exc_info=True,
461463
)
462464
if update_results:
@@ -484,7 +486,7 @@ def _feedback_memory(
484486
]
485487
if filterd_ids:
486488
logger.warning(
487-
f"[Feedback Core: _feedback_memory] Since the tags mode is fast, no modifications are made to the following memory {filterd_ids}."
489+
f"[1223 Feedback Core: _feedback_memory] Since the tags mode is fast, no modifications are made to the following memory {filterd_ids}."
488490
)
489491

490492
current_memories = [
@@ -516,7 +518,7 @@ def _feedback_memory(
516518
results[i] = node
517519
except Exception as e:
518520
logger.error(
519-
f"[Feedback Core: _feedback_memory] Error processing memory index {i}: {e}",
521+
f"[1223 Feedback Core: _feedback_memory] Error processing memory index {i}: {e}",
520522
exc_info=True,
521523
)
522524
mem_res = [r for r in results if r]
@@ -575,15 +577,15 @@ def _vec_query(self, new_memories_embedding: list[float], user_name=None):
575577

576578
if not retrieved_ids:
577579
logger.info(
578-
f"[Feedback Core: _vec_query] No similar memories found for embedding query for user {user_name}."
580+
f"[1223 Feedback Core: _vec_query] No similar memories found for embedding query for user {user_name}."
579581
)
580582

581583
filterd_ids = [
582584
item["id"] for item in current_memories if "mode:fast" in item["metadata"]["tags"]
583585
]
584586
if filterd_ids:
585587
logger.warning(
586-
f"[Feedback Core: _vec_query] Since the tags mode is fast, no modifications are made to the following memory {filterd_ids}."
588+
f"[1223 Feedback Core: _vec_query] Since the tags mode is fast, no modifications are made to the following memory {filterd_ids}."
587589
)
588590
return [
589591
TextualMemoryItem(**item)
@@ -637,9 +639,9 @@ def filter_fault_update(self, operations: list[dict]):
637639
):
638640
all_judge.extend(judge_res["operations_judgement"])
639641
except Exception as e:
640-
logger.error(f"[Feedback Core: filter_fault_update] Judgement failed: {e}")
642+
logger.error(f"[1223 Feedback Core: filter_fault_update] Judgement failed: {e}")
641643

642-
logger.info(f"[Feedback Core: filter_fault_update] LLM judgement: {all_judge}")
644+
logger.info(f"[1223 Feedback Core: filter_fault_update] LLM judgement: {all_judge}")
643645
id2op = {item["id"]: item for item in updated_operations}
644646
valid_updates = []
645647
for judge in all_judge:
@@ -650,7 +652,7 @@ def filter_fault_update(self, operations: list[dict]):
650652
valid_updates.append(valid_update)
651653

652654
logger.info(
653-
f"[Feedback Core: filter_fault_update] {len(updated_operations)} -> {len(valid_updates)}"
655+
f"[1223 Feedback Core: filter_fault_update] {len(updated_operations)} -> {len(valid_updates)}"
654656
)
655657
return valid_updates + [item for item in operations if item["operation"] != "UPDATE"]
656658

@@ -682,7 +684,7 @@ def correct_item(data):
682684

683685
if not should_keep_update(data["text"], data["old_memory"]):
684686
logger.warning(
685-
f"[Feedback Core: semantics_feedback] Due to the excessive proportion of changes, skip update: {data}"
687+
f"[1223 Feedback Core: semantics_feedback] Due to the excessive proportion of changes, skip update: {data}"
686688
)
687689
return None
688690

@@ -702,14 +704,14 @@ def correct_item(data):
702704
return data
703705
except Exception:
704706
logger.error(
705-
f"[Feedback Core: standard_operations] Error processing operation item: {data}",
707+
f"[1223 Feedback Core: standard_operations] Error processing operation item: {data}",
706708
exc_info=True,
707709
)
708710
return None
709711

710712
dehallu_res = [correct_item(item) for item in operations]
711713
dehalluded_operations = [item for item in dehallu_res if item]
712-
logger.info(f"[Feedback Core: dehalluded_operations] {dehalluded_operations}")
714+
logger.info(f"[1223 Feedback Core: dehalluded_operations] {dehalluded_operations}")
713715

714716
# c add objects
715717
add_texts = []
@@ -723,7 +725,7 @@ def correct_item(data):
723725
elif item["operation"].lower() == "update":
724726
llm_operations.append(item)
725727
logger.info(
726-
f"[Feedback Core: deduplicate add] {len(dehalluded_operations)} -> {len(llm_operations)} memories"
728+
f"[1223 Feedback Core: deduplicate add] {len(dehalluded_operations)} -> {len(llm_operations)} memories"
727729
)
728730

729731
# Update takes precedence over add
@@ -737,7 +739,7 @@ def correct_item(data):
737739
]
738740
if filtered_items:
739741
logger.info(
740-
f"[Feedback Core: semantics_feedback] Due to have update objects, skip add: {filtered_items}"
742+
f"[1223 Feedback Core: semantics_feedback] Due to have update objects, skip add: {filtered_items}"
741743
)
742744
return update_items
743745
else:
@@ -785,7 +787,7 @@ def _doc_filter(self, doc_scope: str, memories: list[TextualMemoryItem]):
785787
memid for inscope_file in inscope_docs for memid in filename2_memid[inscope_file]
786788
]
787789
logger.info(
788-
f"[Feedback Core: process_keyword_replace] These docs are in scope : {inscope_docs}, relared memids: {inscope_ids}"
790+
f"[1223 Feedback Core: process_keyword_replace] These docs are in scope : {inscope_docs}, relared memids: {inscope_ids}"
789791
)
790792
filter_memories = [mem for mem in memories if mem.id in inscope_ids]
791793
return filter_memories
@@ -839,7 +841,7 @@ def process_keyword_replace(
839841
retrieved_memories = self._doc_filter(doc_scope, retrieved_memories)
840842

841843
logger.info(
842-
f"[Feedback Core: process_keyword_replace] Keywords recalled memory for user {user_name}: {len(retrieved_ids)} memories | After filtering: {len(retrieved_memories)} memories."
844+
f"[1223 Feedback Core: process_keyword_replace] Keywords recalled memory for user {user_name}: {len(retrieved_ids)} memories | After filtering: {len(retrieved_memories)} memories."
843845
)
844846

845847
if not retrieved_memories:
@@ -924,7 +926,7 @@ def check_validity(item):
924926
info.update({"user_id": user_id, "user_name": user_name, "session_id": session_id})
925927

926928
logger.info(
927-
f"[Feedback Core: process_feedback_core] Starting memory feedback process for user {user_name}"
929+
f"[1223 Feedback Core: process_feedback_core] Starting memory feedback process for user {user_name}"
928930
)
929931
# feedback keywords update
930932
kwp_judge = self._keyword_replace_judgement(feedback_content)
@@ -957,7 +959,7 @@ def check_validity(item):
957959

958960
if not valid_feedback:
959961
logger.warning(
960-
f"[Feedback Core: process_feedback_core] No valid judgements for user {user_name}: {raw_judge}."
962+
f"[1223 Feedback Core: process_feedback_core] No valid judgements for user {user_name}: {raw_judge}."
961963
)
962964
return {"record": {"add": [], "update": []}}
963965

@@ -1005,12 +1007,14 @@ def check_validity(item):
10051007
add_memories = mem_record["record"]["add"]
10061008
update_memories = mem_record["record"]["update"]
10071009
logger.info(
1008-
f"[Feedback Core: process_feedback_core] Processed {len(feedback_memories)} feedback | add {len(add_memories)} memories | update {len(update_memories)} memories for user {user_name}."
1010+
f"[1223 Feedback Core: process_feedback_core] Processed {len(feedback_memories)} feedback | add {len(add_memories)} memories | update {len(update_memories)} memories for user {user_name}."
10091011
)
10101012
return mem_record
10111013

10121014
except Exception as e:
1013-
logger.error(f"[Feedback Core: process_feedback_core] Error for user {user_name}: {e}")
1015+
logger.error(
1016+
f"[1223 Feedback Core: process_feedback_core] Error for user {user_name}: {e}"
1017+
)
10141018
return {"record": {"add": [], "update": []}}
10151019

10161020
def process_feedback(

0 commit comments

Comments
 (0)