| 14 | |
| 15 | |
| 16 | def ingest_session(session, date, user_id, session_id, frame, client): |
| 17 | messages = [] |
| 18 | if "mem0" in frame: |
| 19 | for _idx, msg in enumerate(session): |
| 20 | messages.append({"role": msg["role"], "content": msg["content"][:8000]}) |
| 21 | client.add(messages, user_id, int(date.timestamp()), batch_size=2) |
| 22 | elif frame == "memobase": |
| 23 | for _idx, msg in enumerate(session): |
| 24 | messages.append( |
| 25 | { |
| 26 | "role": msg["role"], |
| 27 | "content": msg["content"][:8000], |
| 28 | "created_at": date.isoformat(), |
| 29 | } |
| 30 | ) |
| 31 | client.add(messages, user_id, batch_size=2) |
| 32 | elif "memos-api" in frame: |
| 33 | for msg in session: |
| 34 | messages.append( |
| 35 | { |
| 36 | "role": msg["role"], |
| 37 | "content": msg["content"][:8000], |
| 38 | "chat_time": date.isoformat(), |
| 39 | } |
| 40 | ) |
| 41 | if messages: |
| 42 | client.add(messages=messages, user_id=user_id, conv_id=session_id, batch_size=2) |
| 43 | elif frame == "memu": |
| 44 | for _idx, msg in enumerate(session): |
| 45 | messages.append({"role": msg["role"], "content": msg["content"][:8000]}) |
| 46 | client.add(messages, user_id, date.isoformat()) |
| 47 | elif frame == "supermemory": |
| 48 | for _idx, msg in enumerate(session): |
| 49 | messages.append( |
| 50 | { |
| 51 | "role": msg["role"], |
| 52 | "content": msg["content"][:8000], |
| 53 | "chat_time": date.isoformat(), |
| 54 | } |
| 55 | ) |
| 56 | client.add(messages, user_id) |
| 57 | |
| 58 | print( |
| 59 | f"[{frame}] ✅ Session {session_id}: Ingested {len(messages)} messages at {date.isoformat()}" |
| 60 | ) |
| 61 | |
| 62 | |
| 63 | def ingest_conv(lme_df, version, conv_idx, frame, success_records, f): |