Skip to content

Commit 8ee783e

Browse files
whipser030黑布林CaralHsifridayL
authored
fix: add source_doc_id record (#728)
* 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 --------- Co-authored-by: 黑布林 <[email protected]> Co-authored-by: CaralHsi <[email protected]> Co-authored-by: chunyu li <[email protected]>
1 parent 0b4b74f commit 8ee783e

File tree

2 files changed

+38
-4
lines changed

2 files changed

+38
-4
lines changed

src/memos/mem_feedback/feedback.py

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,17 @@ def _pure_add(self, user_name: str, feedback_content: str, feedback_time: str, i
143143
return {
144144
"record": {
145145
"add": [
146-
{"id": _id, "text": added_mem.memory}
146+
{
147+
"id": _id,
148+
"text": added_mem.memory,
149+
"source_doc_id": (
150+
added_mem.metadata.file_ids[0]
151+
if hasattr(added_mem.metadata, "file_ids")
152+
and isinstance(added_mem.metadata.file_ids, list)
153+
and added_mem.metadata.file_ids
154+
else None
155+
),
156+
}
147157
for _id, added_mem in zip(added_ids, to_add_memories, strict=False)
148158
],
149159
"update": [],
@@ -230,7 +240,17 @@ def _single_add_operation(
230240
)
231241

232242
logger.info(f"[Memory Feedback ADD] memory id: {added_ids!s}")
233-
return {"id": added_ids[0], "text": to_add_memory.memory}
243+
return {
244+
"id": added_ids[0],
245+
"text": to_add_memory.memory,
246+
"source_doc_id": (
247+
to_add_memory.metadata.file_ids[0]
248+
if hasattr(to_add_memory.metadata, "file_ids")
249+
and isinstance(to_add_memory.metadata.file_ids, list)
250+
and to_add_memory.metadata.file_ids
251+
else None
252+
),
253+
}
234254

235255
def _single_update_operation(
236256
self,
@@ -239,11 +259,22 @@ def _single_update_operation(
239259
user_id: str,
240260
user_name: str,
241261
async_mode: str = "sync",
262+
operation: dict | None = None,
242263
) -> dict:
243264
"""
244265
Individual update operations
245266
"""
246267
memory_type = old_memory_item.metadata.memory_type
268+
source_doc_id = (
269+
old_memory_item.metadata.file_ids[0]
270+
if hasattr(old_memory_item.metadata, "file_ids")
271+
and isinstance(old_memory_item.metadata.file_ids, list)
272+
and old_memory_item.metadata.file_ids
273+
else None
274+
)
275+
if operation and "text" in operation and operation["text"]:
276+
new_memory_item.memory = operation["text"]
277+
247278
if memory_type == "WorkingMemory":
248279
fields = {
249280
"memory": new_memory_item.memory,
@@ -274,6 +305,7 @@ def _single_update_operation(
274305
return {
275306
"id": item_id,
276307
"text": new_memory_item.memory,
308+
"source_doc_id": source_doc_id,
277309
"archived_id": old_memory_item.id,
278310
"origin_memory": old_memory_item.memory,
279311
}
@@ -417,6 +449,7 @@ def semantics_feedback(
417449
memory_item,
418450
user_id,
419451
user_name,
452+
operation=op,
420453
)
421454
future_to_op[future] = ("update", op)
422455

src/memos/mem_scheduler/general_scheduler.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -644,8 +644,8 @@ def _extract_fields(mem_item):
644644
or mem_item.get("original_content")
645645
)
646646
source_doc_id = None
647-
if "archived_id" in mem_item:
648-
source_doc_id = mem_item.get("archived_id")
647+
if isinstance(mem_item, dict):
648+
source_doc_id = mem_item.get("source_doc_id", None)
649649

650650
return mem_id, mem_memory, original_content, source_doc_id
651651

@@ -699,6 +699,7 @@ def _extract_fields(mem_item):
699699
stack_info=True,
700700
)
701701

702+
logger.info(f"[Feedback Scheduler] kb_log_content: {kb_log_content!s}")
702703
if kb_log_content:
703704
logger.info(
704705
"[DIAGNOSTIC] general_scheduler._mem_feedback_message_consumer: Creating knowledgeBaseUpdate event for feedback. user_id=%s mem_cube_id=%s task_id=%s items=%s",

0 commit comments

Comments
 (0)