(lme_df, version, conv_idx, frame, success_records, f)
| 61 | |
| 62 | |
| 63 | def ingest_conv(lme_df, version, conv_idx, frame, success_records, f): |
| 64 | conversation = lme_df.iloc[conv_idx] |
| 65 | sessions = conversation["haystack_sessions"] |
| 66 | dates = conversation["haystack_dates"] |
| 67 | |
| 68 | user_id = f"lme_exper_user_{version}_{conv_idx}" |
| 69 | |
| 70 | print("\n" + "=" * 80) |
| 71 | print(f"🔄 [INGESTING CONVERSATION {conv_idx}".center(80)) |
| 72 | print("=" * 80) |
| 73 | |
| 74 | if frame == "mem0" or frame == "mem0_graph": |
| 75 | from utils.client import Mem0Client |
| 76 | |
| 77 | client = Mem0Client(enable_graph="graph" in frame) |
| 78 | client.client.delete_all(user_id=user_id) |
| 79 | elif frame == "memos-api": |
| 80 | from utils.client import MemosApiClient |
| 81 | |
| 82 | client = MemosApiClient() |
| 83 | elif frame == "memos-api-online": |
| 84 | from utils.client import MemosApiOnlineClient |
| 85 | |
| 86 | client = MemosApiOnlineClient() |
| 87 | elif frame == "memobase": |
| 88 | from utils.client import MemobaseClient |
| 89 | |
| 90 | client = MemobaseClient() |
| 91 | client.delete_user(user_id) |
| 92 | elif frame == "memu": |
| 93 | from utils.client import MemuClient |
| 94 | |
| 95 | client = MemuClient() |
| 96 | elif frame == "supermemory": |
| 97 | from utils.client import SupermemoryClient |
| 98 | |
| 99 | client = SupermemoryClient() |
| 100 | |
| 101 | for idx, session in enumerate(sessions): |
| 102 | if f"{conv_idx}_{idx}" not in success_records: |
| 103 | session_id = user_id + "_lme_exper_session_" + str(idx) |
| 104 | date = dates[idx] + " UTC" |
| 105 | date_format = "%Y/%m/%d (%a) %H:%M UTC" |
| 106 | date_string = datetime.strptime(date, date_format).replace(tzinfo=timezone.utc) |
| 107 | |
| 108 | try: |
| 109 | ingest_session(session, date_string, user_id, session_id, frame, client) |
| 110 | f.write(f"{conv_idx}_{idx}\n") |
| 111 | f.flush() |
| 112 | except Exception as e: |
| 113 | print(f"❌ Error ingesting session: {e}") |
| 114 | else: |
| 115 | print(f"✅ Session {conv_idx}_{idx} already ingested") |
| 116 | |
| 117 | print("=" * 80) |
| 118 | |
| 119 | |
| 120 | def main(frame, version, num_workers=2): |
nothing calls this directly
no test coverage detected