feat: 消息创建返回ID并在流式响应中下发

- 消息管理器创建用户/系统消息时返回 MessageId
- 网关在流式响应中新增消息创建事件,返回 MessageId 与创建时间
- 统一在消息创建完成后发送 [DONE] 标识,优化流式结束时机
This commit is contained in:
ccnetcore
2026-02-01 13:02:06 +08:00
parent 11cbb1b612
commit 6d54c650f0
3 changed files with 79 additions and 10 deletions

View File

@@ -24,11 +24,12 @@ public class AiMessageManager : DomainService
/// <param name="input">消息输入</param>
/// <param name="tokenId">Token IdWeb端传Guid.Empty</param>
/// <returns></returns>
public async Task CreateSystemMessageAsync(Guid? userId, Guid? sessionId, MessageInputDto input, Guid? tokenId = null)
public async Task<Guid> 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);
return message.Id;
}
/// <summary>
@@ -40,7 +41,7 @@ public class AiMessageManager : DomainService
/// <param name="tokenId">Token IdWeb端传Guid.Empty</param>
/// <param name="createTime"></param>
/// <returns></returns>
public async Task CreateUserMessageAsync( Guid? userId, Guid? sessionId, MessageInputDto input, Guid? tokenId = null,DateTime? createTime=null)
public async Task<Guid> CreateUserMessageAsync( Guid? userId, Guid? sessionId, MessageInputDto input, Guid? tokenId = null,DateTime? createTime=null)
{
input.Role = "user";
var message = new MessageAggregateRoot(userId, sessionId, input.Content, input.Role, input.ModelId, input.TokenUsage, tokenId)
@@ -48,5 +49,6 @@ public class AiMessageManager : DomainService
CreationTime = createTime??DateTime.Now
};
await _repository.InsertAsync(message);
return message.Id;
}
}