package com.vincent.rsf.server.ai.service; import com.vincent.rsf.server.ai.dto.AiChatRequest; import com.vincent.rsf.server.ai.dto.AiChatRuntimeDto; import com.vincent.rsf.server.ai.dto.AiChatSessionDto; import com.vincent.rsf.server.ai.dto.AiChatSessionPinRequest; import com.vincent.rsf.server.ai.dto.AiChatSessionRenameRequest; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import java.util.List; public interface AiChatService { AiChatRuntimeDto getRuntime(String promptCode, Long sessionId, Long userId, Long tenantId); List listSessions(String promptCode, String keyword, Long userId, Long tenantId); SseEmitter stream(AiChatRequest request, Long userId, Long tenantId); void removeSession(Long sessionId, Long userId, Long tenantId); AiChatSessionDto renameSession(Long sessionId, AiChatSessionRenameRequest request, Long userId, Long tenantId); AiChatSessionDto pinSession(Long sessionId, AiChatSessionPinRequest request, Long userId, Long tenantId); void clearSessionMemory(Long sessionId, Long userId, Long tenantId); void retainLatestRound(Long sessionId, Long userId, Long tenantId); }