MCPcopy Create free account
hub / github.com/MemTensor/MemOS / process_user

Function process_user

evaluation/scripts/longmemeval/lme_search.py:80–168  ·  view source on GitHub ↗
(lme_df, conv_idx, frame, version, top_k=20)

Source from the content-addressed store, hash-verified

78
79
80def process_user(lme_df, conv_idx, frame, version, top_k=20):
81 row = lme_df.iloc[conv_idx]
82 question = row["question"]
83 sessions = row["haystack_sessions"]
84 question_type = row["question_type"]
85 question_date = row["question_date"]
86 answer = row["answer"]
87 answer_session_ids = set(row["answer_session_ids"])
88 haystack_session_ids = row["haystack_session_ids"]
89 user_id = f"lme_exper_user_{version}_{conv_idx}"
90 id_to_session = dict(zip(haystack_session_ids, sessions, strict=False))
91 answer_sessions = [id_to_session[sid] for sid in answer_session_ids if sid in id_to_session]
92 answer_evidences = []
93
94 for session in answer_sessions:
95 for turn in session:
96 if turn.get("has_answer"):
97 data = turn.get("role") + " : " + turn.get("content")
98 answer_evidences.append(data)
99
100 search_results = defaultdict(list)
101 print("\n" + "-" * 80)
102 print(f"🔎 [{conv_idx + 1}/{len(lme_df)}] Processing conversation {conv_idx}")
103 print(f"❓ Question: {question}")
104 print(f"📅 Date: {question_date}")
105 print(f"🏷️ Type: {question_type}")
106 print("-" * 80)
107
108 existing_results, exists = load_existing_results(frame, version, conv_idx)
109 if exists:
110 print(f"♻️ Using existing results for conversation {conv_idx}")
111 return existing_results
112
113 if "mem0" in frame:
114 from utils.client import Mem0Client
115
116 client = Mem0Client(enable_graph="graph" in frame)
117 context, duration_ms = mem0_search(client, question, user_id, top_k)
118 elif frame == "memobase":
119 from utils.client import MemobaseClient
120
121 client = MemobaseClient()
122 context, duration_ms = memobase_search(client, question, user_id, top_k)
123 elif frame == "memos-api":
124 from utils.client import MemosApiClient
125
126 client = MemosApiClient()
127 context, duration_ms = memos_search(
128 client, question, user_id, top_k, reference_time=question_date
129 )
130 elif frame == "memos-api-online":
131 from utils.client import MemosApiOnlineClient
132
133 client = MemosApiOnlineClient()
134 context, duration_ms = memos_search(
135 client, question, user_id, top_k, reference_time=question_date
136 )
137 elif frame == "memu":

Callers

nothing calls this directly

Calls 15

Mem0ClientClass · 0.90
MemobaseClientClass · 0.90
MemosApiClientClass · 0.90
MemuClientClass · 0.90
SupermemoryClientClass · 0.90
setFunction · 0.85
load_existing_resultsFunction · 0.70
mem0_searchFunction · 0.70
memobase_searchFunction · 0.70
memos_searchFunction · 0.70
memu_searchFunction · 0.70

Tested by

no test coverage detected