You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

35 lines
1.3 KiB

"""记忆管理路由:会话列表查询、历史获取、会话清除。"""
from fastapi import APIRouter, Request, Depends, HTTPException
from dependencies import get_current_user
from modules.memory.manager import get_memory_manager
router = APIRouter(prefix="/api/memory", tags=["记忆管理"])
@router.get("/sessions")
async def list_sessions(request: Request, user=Depends(get_current_user)):
"""获取当前用户的所有记忆会话列表。"""
mm = get_memory_manager()
sessions = await mm.list_user_sessions(str(user.id))
return {"code": 200, "data": sessions}
@router.get("/sessions/{session_id}")
async def get_session(session_id: str, request: Request, flow_id: str = "", user=Depends(get_current_user)):
"""获取指定会话的对话历史。"""
mm = get_memory_manager()
history = await mm.get_conversation_history(
user_id=str(user.id),
flow_id=flow_id,
session_id=session_id,
)
return {"code": 200, "data": history}
@router.delete("/sessions/{session_id}")
async def clear_session(session_id: str, request: Request, user=Depends(get_current_user)):
"""清除指定会话的所有记忆数据。"""
mm = get_memory_manager()
await mm.delete_session(str(user.id), session_id)
return {"code": 200, "message": "记忆已清除"}