package com.vincent.rsf.server.ai.service; import com.baomidou.mybatisplus.extension.service.IService; import com.vincent.rsf.server.ai.dto.AiObserveStatsDto; import com.vincent.rsf.server.ai.entity.AiCallLog; import com.vincent.rsf.server.ai.entity.AiMcpCallLog; import java.util.List; public interface AiCallLogService extends IService { AiCallLog startCallLog(String requestId, Long sessionId, Long userId, Long tenantId, String promptCode, String promptName, String model, Integer configuredMcpCount, Integer mountedMcpCount, List mountedMcpNames); void completeCallLog(Long callLogId, String status, Long elapsedMs, Long firstTokenLatencyMs, Integer promptTokens, Integer completionTokens, Integer totalTokens, long toolSuccessCount, long toolFailureCount); void failCallLog(Long callLogId, String status, String errorCategory, String errorStage, String errorMessage, Long elapsedMs, Long firstTokenLatencyMs, long toolSuccessCount, long toolFailureCount); void saveMcpCallLog(Long callLogId, String requestId, Long sessionId, String toolCallId, String mountName, String toolName, String status, String inputSummary, String outputSummary, String errorMessage, Long durationMs, Long userId, Long tenantId); AiObserveStatsDto getObserveStats(Long tenantId); List listMcpLogs(Long callLogId, Long tenantId); }