(row_data, conv_idx, frame, version, top_k=20)
| 172 | |
| 173 | |
| 174 | def process_user(row_data, conv_idx, frame, version, top_k=20): |
| 175 | persona_id = row_data["persona_id"] |
| 176 | question_id = row_data["question_id"] |
| 177 | question_type = row_data["question_type"] |
| 178 | topic = row_data["topic"] |
| 179 | question = row_data["user_question_or_message"] |
| 180 | correct_answer = row_data["correct_answer"] |
| 181 | all_options = row_data["all_options"] |
| 182 | user_id = f"pm_exper_user_{conv_idx}_{version}" |
| 183 | print(f"\n🔍 Processing conversation {conv_idx} for user {user_id}...") |
| 184 | |
| 185 | search_results = defaultdict(list) |
| 186 | print("\n" + "-" * 80) |
| 187 | print(f"🔎 [{conv_idx + 1}/589] Processing conversation {conv_idx}") |
| 188 | print(f"❓ Question: {question}") |
| 189 | print(f"🗂️ Options: {all_options}") |
| 190 | print(f"🏷️ Type: {question_type}") |
| 191 | print("-" * 80) |
| 192 | |
| 193 | existing_results, exists = load_existing_results(frame, version, conv_idx) |
| 194 | if exists: |
| 195 | print(f"♻️ Using existing results for conversation {conv_idx}") |
| 196 | return existing_results |
| 197 | |
| 198 | if frame == "zep": |
| 199 | from utils.client import ZepClient |
| 200 | |
| 201 | client = ZepClient() |
| 202 | print("🔌 Using Zep client for search...") |
| 203 | context, duration_ms = zep_search(client, user_id, question) |
| 204 | |
| 205 | elif frame == "mem0" or frame == "mem0-graph": |
| 206 | from utils.client import Mem0Client |
| 207 | |
| 208 | client = Mem0Client(enable_graph="graph" in frame) |
| 209 | print("🔌 Using Mem0 API client for search...") |
| 210 | context, duration_ms = mem0_search(client, question, user_id, top_k) |
| 211 | elif frame == "memos-api": |
| 212 | from utils.client import MemosApiClient |
| 213 | |
| 214 | client = MemosApiClient() |
| 215 | print("🔌 Using Memos API client for search...") |
| 216 | context, duration_ms = memos_search(client, user_id, question, top_k=top_k) |
| 217 | elif frame == "supermemory": |
| 218 | from utils.client import SupermemoryClient |
| 219 | |
| 220 | client = SupermemoryClient() |
| 221 | print("🔌 Using supermemory client for search...") |
| 222 | context, duration_ms = supermemory_search(client, question, user_id, top_k) |
| 223 | elif frame == "memu": |
| 224 | from utils.client import MemuClient |
| 225 | |
| 226 | client = MemuClient() |
| 227 | print("🔌 Using memu client for search...") |
| 228 | context, duration_ms = memu_search(client, question, user_id, top_k) |
| 229 | elif frame == "memobase": |
| 230 | from utils.client import MemobaseClient |
| 231 |
nothing calls this directly
no test coverage detected