feat: 完成对接接口

This commit is contained in:
ccnetcore
2025-06-22 19:09:13 +08:00
parent 6459d7c024
commit 06617de984
19 changed files with 143 additions and 96 deletions

View File

@@ -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; }
}

View File

@@ -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)
{

View File

@@ -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; }
}