kboss/b/cntoai/chat_session_delete.dspy
2026-05-22 19:18:37 +08:00

40 lines
1.3 KiB
Plaintext

def _escape(value):
if value is None:
return None
return str(value).replace("'", "''")
async def chat_session_delete(ns={}):
"""删除会话及其全部消息"""
session_id = ns.get('session_id')
if not session_id:
return {'status': False, 'msg': 'session_id is required'}
userid = ns.get('userid') or await get_user()
if not userid:
return {'status': False, 'msg': '未找到用户'}
db = DBPools()
async with db.sqlorContext('kboss') as sor:
try:
sessions = await sor.R('chat_session', {'id': session_id, 'userid': userid})
if not sessions:
return {'status': False, 'msg': '会话不存在'}
await sor.sqlExe(
"DELETE FROM chat_message WHERE session_id = '%s';" % _escape(session_id),
{},
)
await sor.sqlExe(
"DELETE FROM chat_session WHERE id = '%s' AND userid = '%s';"
% (_escape(session_id), _escape(userid)),
{},
)
return {'status': True, 'msg': 'delete success'}
except Exception as e:
return {'status': False, 'msg': 'delete failed, %s' % str(e)}
ret = await chat_session_delete(params_kw)
return ret