feat: 完成对接接口
This commit is contained in:
@@ -4,5 +4,5 @@ public class SessionCreateAndUpdateInput
|
||||
{
|
||||
public string SessionTitle { get; set; }
|
||||
public string SessionContent { get; set; }
|
||||
public string Remark { get; set; }
|
||||
public string? Remark { get; set; }
|
||||
}
|
||||
@@ -89,7 +89,7 @@ public class AiChatService : ApplicationService
|
||||
var history = new List<ChatMessage>();
|
||||
foreach (var aiChatContextDto in input.Messages)
|
||||
{
|
||||
if (aiChatContextDto.Role == "ai")
|
||||
if (aiChatContextDto.Role == "system")
|
||||
{
|
||||
history.Add(ChatMessage.CreateAssistantMessage(aiChatContextDto.Content));
|
||||
}
|
||||
@@ -100,23 +100,23 @@ public class AiChatService : ApplicationService
|
||||
}
|
||||
|
||||
var gateWay = LazyServiceProvider.GetRequiredService<AiGateWayManager>();
|
||||
var completeChatResponse = gateWay.CompleteChatAsync(input.Model, history, cancellationToken);
|
||||
await using var writer = new StreamWriter(response.Body, Encoding.UTF8, leaveOpen: true);
|
||||
await foreach (var data in completeChatResponse)
|
||||
{
|
||||
var model = MapToMessage(input.Model, data);
|
||||
var message = JsonConvert.SerializeObject(model, new JsonSerializerSettings
|
||||
{
|
||||
ContractResolver = new CamelCasePropertyNamesContractResolver()
|
||||
});
|
||||
|
||||
await writer.WriteLineAsync($"data: {message}\n");
|
||||
await writer.FlushAsync(cancellationToken); // 确保立即推送数据
|
||||
}
|
||||
// var completeChatResponse = gateWay.CompleteChatAsync(input.Model, history, cancellationToken);
|
||||
// await using var writer = new StreamWriter(response.Body, Encoding.UTF8, leaveOpen: true);
|
||||
// await foreach (var data in completeChatResponse)
|
||||
// {
|
||||
// var model = MapToMessage(input.Model, data);
|
||||
// var message = JsonConvert.SerializeObject(model, new JsonSerializerSettings
|
||||
// {
|
||||
// ContractResolver = new CamelCasePropertyNamesContractResolver()
|
||||
// });
|
||||
//
|
||||
// await writer.WriteLineAsync($"data: {message}\n");
|
||||
// await writer.FlushAsync(cancellationToken); // 确保立即推送数据
|
||||
// }
|
||||
|
||||
//断开连接
|
||||
await writer.WriteLineAsync($"data: done\n");
|
||||
await writer.FlushAsync(cancellationToken); // 确保立即推送数据
|
||||
// await writer.WriteLineAsync("data: done\n");
|
||||
// await writer.FlushAsync(cancellationToken); // 确保立即推送数据
|
||||
|
||||
if (CurrentUser.IsAuthenticated && input.SessionId.HasValue)
|
||||
{
|
||||
|
||||
@@ -10,5 +10,5 @@ public class SessionAggregateRoot : FullAuditedAggregateRoot<Guid>
|
||||
public Guid UserId { get; set; }
|
||||
public string SessionTitle { get; set; }
|
||||
public string SessionContent { get; set; }
|
||||
public string Remark { get; set; }
|
||||
public string? Remark { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user