Files
MoFin/archive/xiaoguo-retired-20260720/profile-xiaoguo/fix_memory.py
T

52 lines
2.4 KiB
Python

#!/usr/bin/env python3
import sqlite3
conn = sqlite3.connect('/home/hmo/.hermes/profiles/xiaoguo/state.db')
# 1. Update the xmpp-xiaoguo session's stale memory
cur = conn.execute("SELECT id, system_prompt FROM sessions WHERE id='xmpp-xiaoguo'")
row = cur.fetchone()
updates = 0
sessions_ok = 0
if row:
sid, sp = row
old_mem = "\u538b\u7f29\u7b56\u7565\uff1aenabled=true, threshold=0.3, target_ratio=0.5, protect_last_n=20\u3002"
new_mem = "\u538b\u7f29\u7b56\u7565\uff1aenabled=false\uff0c\u4e0d\u538b\u7f29\u3002session \u786c\u622a\u65ad 200 \u6761\uff0c\u53ea\u53d6\u6700\u8fd1 200 \u6761\u8fdb\u4e0a\u4e0b\u6587\u3002"
old_soul = "\u5f00\u542f\u4e86\u538b\u7f29\uff0830%\u89e6\u53d1\uff0c\u4fdd\u7559\u6700\u8fd120\u6761\uff09"
new_soul = "\u4e0d\u538b\u7f29\uff0c\u786c\u622a\u65ad200\u6761"
if old_mem in sp:
sp_updated = sp.replace(old_mem, new_mem)
if old_soul in sp_updated:
sp_updated = sp_updated.replace(old_soul, new_soul)
conn.execute('UPDATE sessions SET system_prompt=? WHERE id=?', (sp_updated, sid))
updates += 1
print(f"Updated: xmpp-xiaoguo")
# 2. Check all sessions for stale memory
cur2 = conn.execute("SELECT id FROM sessions")
for row2 in cur2.fetchall():
sid2 = row2[0]
cur3 = conn.execute('SELECT system_prompt FROM sessions WHERE id=?', (sid2,))
sp2 = cur3.fetchone()[0]
if 'enabled=true' in sp2 and 'compress' in sp2.lower():
sp2_updated = sp2.replace(
"\u538b\u7f29\u7b56\u7565\uff1aenabled=true, threshold=0.3, target_ratio=0.5, protect_last_n=20\u3002",
"\u538b\u7f29\u7b56\u7565\uff1aenabled=false\uff0c\u4e0d\u538b\u7f29\u3002session \u786c\u622a\u65ad 200 \u6761\uff0c\u53ea\u53d6\u6700\u8fd1 200 \u6761\u8fdb\u4e0a\u4e0b\u6587\u3002"
)
old_soul = "\u5f00\u542f\u4e86\u538b\u7f29\uff0830%\u89e6\u53d1\uff0c\u4fdd\u7559\u6700\u8fd120\u6761\uff09"
new_soul = "\u4e0d\u538b\u7f29\uff0c\u786c\u622a\u65ad200\u6761"
if old_soul in sp2_updated:
sp2_updated = sp2_updated.replace(old_soul, new_soul)
conn.execute('UPDATE sessions SET system_prompt=? WHERE id=?', (sp2_updated, sid2))
updates += 1
print(f"Updated: {sid2}")
else:
sessions_ok += 1
print(f"OK: {sid2}")
conn.commit()
conn.close()
print(f"\nDone: {updates} sessions updated, {sessions_ok} already correct")