package service import ( "context" "github.com/topfans/backend/services/aiChatService/model" ) // ChatService 对话服务 type ChatService struct { LLMService *LLMService personaService *PersonaService memoryService *MemoryService auditService *AuditService contextTTL int // 上下文过期时间(秒) triggerTurns int // 触发记忆提取的轮数 } // NewChatService 创建对话服务 func NewChatService( llmService *LLMService, personaService *PersonaService, memoryService *MemoryService, auditService *AuditService, contextTTL int, triggerTurns int, ) *ChatService { return &ChatService{ LLMService: llmService, personaService: personaService, memoryService: memoryService, auditService: auditService, contextTTL: contextTTL, triggerTurns: triggerTurns, } } // GetHistory 获取对话历史 func (s *ChatService) GetHistory(ctx context.Context, sessionID string) ([]model.Message, error) { return s.memoryService.GetContext(ctx, sessionID) } // SaveContext 保存对话上下文 func (s *ChatService) SaveContext(ctx context.Context, sessionID string, messages []model.Message, personaID string) error { return s.memoryService.SaveContext(ctx, sessionID, messages, personaID) } // ExtractMemory 提取记忆 func (s *ChatService) ExtractMemory(ctx context.Context, userID int64, recentMessages []model.Message) error { if ShouldExtractMemory(recentMessages, s.triggerTurns) { return s.memoryService.ExtractMemory(ctx, userID, recentMessages) } return nil } // GetWelcomeMessage 获取欢迎消息 func (s *ChatService) GetWelcomeMessage(sessionID string, userID int64, starID int64) string { // 默认欢迎消息 return "亲爱的你来辣 ~~" }