refactor(core): декомпозиция db_cli, сервисный дамп БД и зачистка контекста
This commit is contained in:
@@ -53,4 +53,36 @@ def db_clear_chat_history(session_id: str) -> None:
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("DELETE FROM chat_messages WHERE session_id = ?", (session_id,))
|
||||
conn.commit()
|
||||
conn.close()
|
||||
conn.close()
|
||||
|
||||
def db_clear_all_chat_context(session_id: str = None, purge_all: bool = False) -> int:
|
||||
"""Удаляет сообщения чата и стейты сессий."""
|
||||
with get_db_connection() as conn:
|
||||
cursor = conn.cursor()
|
||||
if purge_all:
|
||||
if session_id:
|
||||
cursor.execute("DELETE FROM chat_messages WHERE session_id = ?", (session_id,))
|
||||
cursor.execute("DELETE FROM session_states WHERE session_id = ?", (session_id,))
|
||||
else:
|
||||
cursor.execute("DELETE FROM chat_messages")
|
||||
cursor.execute("DELETE FROM session_states")
|
||||
cnt = cursor.rowcount
|
||||
conn.commit()
|
||||
return cnt
|
||||
|
||||
query = """
|
||||
DELETE FROM chat_messages
|
||||
WHERE is_ephemeral = 1
|
||||
OR content LIKE '%Предпросмотр изменений%'
|
||||
OR content LIKE '%Удален пункт:%'
|
||||
OR content LIKE '%добавлен пункт:%'
|
||||
"""
|
||||
if session_id:
|
||||
cursor.execute(query + " AND session_id = ?", (session_id,))
|
||||
cursor.execute("DELETE FROM session_states WHERE session_id = ?", (session_id,))
|
||||
else:
|
||||
cursor.execute(query)
|
||||
cursor.execute("DELETE FROM session_states")
|
||||
cnt = cursor.rowcount
|
||||
conn.commit()
|
||||
return cnt
|
||||
Reference in New Issue
Block a user