using Volo.Abp.Domain.Services; using Volo.Abp.Users; using Yi.Framework.AiHub.Domain.Entities; using Yi.Framework.AiHub.Domain.Entities.Chat; using Yi.Framework.AiHub.Domain.Shared.Dtos; using Yi.Framework.SqlSugarCore.Abstractions; namespace Yi.Framework.AiHub.Domain.Managers; public class AiMessageManager : DomainService { private readonly ISqlSugarRepository _repository; public AiMessageManager(ISqlSugarRepository repository) { _repository = repository; } /// /// 创建系统消息 /// /// 用户Id /// 会话Id /// 消息输入 /// Token Id(Web端传Guid.Empty) /// public async Task CreateSystemMessageAsync(Guid? userId, Guid? sessionId, MessageInputDto input, Guid? tokenId = null) { input.Role = "system"; var message = new MessageAggregateRoot(userId, sessionId, input.Content, input.Role, input.ModelId, input.TokenUsage, tokenId); await _repository.InsertAsync(message); } /// /// 创建用户消息 /// /// 用户Id /// 会话Id /// 消息输入 /// Token Id(Web端传Guid.Empty) /// public async Task CreateUserMessageAsync(Guid? userId, Guid? sessionId, MessageInputDto input, Guid? tokenId = null) { input.Role = "user"; var message = new MessageAggregateRoot(userId, sessionId, input.Content, input.Role, input.ModelId, input.TokenUsage, tokenId); await _repository.InsertAsync(message); } }