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.
30 lines
1.1 KiB
30 lines
1.1 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": "记忆已清除"}
|