Merge branch 'master' of https://github.com/SciSharp/BotSharp into features/add-conversation-summary
This commit is contained in:
commit
24fdefce98
|
|
@ -1,4 +1,5 @@
|
|||
using BotSharp.Abstraction.Files;
|
||||
using BotSharp.Abstraction.Google.Settings;
|
||||
using BotSharp.Abstraction.Instructs;
|
||||
using BotSharp.Abstraction.Messaging;
|
||||
using BotSharp.Abstraction.Plugins.Models;
|
||||
|
|
@ -34,6 +35,12 @@ public class ConversationPlugin : IBotSharpPlugin
|
|||
return settingService.Bind<ConversationSetting>("Conversation");
|
||||
});
|
||||
|
||||
services.AddScoped(provider =>
|
||||
{
|
||||
var settingService = provider.GetRequiredService<ISettingService>();
|
||||
return settingService.Bind<GoogleApiSettings>("GoogleApi");
|
||||
});
|
||||
|
||||
services.AddScoped<IConversationStorage, ConversationStorage>();
|
||||
services.AddScoped<IConversationService, ConversationService>();
|
||||
services.AddScoped<IConversationStateService, ConversationStateService>();
|
||||
|
|
|
|||
|
|
@ -11,8 +11,6 @@ using Microsoft.Net.Http.Headers;
|
|||
using Microsoft.OpenApi.Models;
|
||||
using Microsoft.IdentityModel.JsonWebTokens;
|
||||
using BotSharp.OpenAPI.BackgroundServices;
|
||||
using BotSharp.Abstraction.Settings;
|
||||
using BotSharp.Abstraction.Google.Settings;
|
||||
|
||||
namespace BotSharp.OpenAPI;
|
||||
|
||||
|
|
@ -34,12 +32,6 @@ public static class BotSharpOpenApiExtensions
|
|||
services.AddScoped<IUserIdentity, UserIdentity>();
|
||||
services.AddHostedService<ConversationTimeoutService>();
|
||||
|
||||
services.AddScoped(provider =>
|
||||
{
|
||||
var settingService = provider.GetRequiredService<ISettingService>();
|
||||
return settingService.Bind<GoogleApiSettings>("GoogleApi");
|
||||
});
|
||||
|
||||
// Add bearer authentication
|
||||
var schema = "MIXED_SCHEME";
|
||||
var builder = services.AddAuthentication(options =>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using BotSharp.Abstraction.Options;
|
||||
using BotSharp.Abstraction.Routing;
|
||||
|
||||
namespace BotSharp.OpenAPI.Controllers;
|
||||
|
|
@ -8,12 +9,16 @@ public class ConversationController : ControllerBase
|
|||
{
|
||||
private readonly IServiceProvider _services;
|
||||
private readonly IUserIdentity _user;
|
||||
private readonly JsonSerializerOptions _jsonOptions;
|
||||
|
||||
public ConversationController(IServiceProvider services,
|
||||
IUserIdentity user)
|
||||
IUserIdentity user,
|
||||
BotSharpOptions options)
|
||||
{
|
||||
_services = services;
|
||||
_user = user;
|
||||
_jsonOptions = InitJsonOptions(options);
|
||||
|
||||
}
|
||||
|
||||
[HttpPost("/conversation/{agentId}")]
|
||||
|
|
@ -319,10 +324,7 @@ public class ConversationController : ControllerBase
|
|||
|
||||
private async Task OnChunkReceived(HttpResponse response, ChatResponseModel message)
|
||||
{
|
||||
var json = JsonSerializer.Serialize(message, new JsonSerializerOptions
|
||||
{
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
||||
});
|
||||
var json = JsonSerializer.Serialize(message, _jsonOptions);
|
||||
|
||||
var buffer = Encoding.UTF8.GetBytes($"data:{json}\n");
|
||||
await response.Body.WriteAsync(buffer, 0, buffer.Length);
|
||||
|
|
@ -340,4 +342,24 @@ public class ConversationController : ControllerBase
|
|||
buffer = Encoding.UTF8.GetBytes("\n");
|
||||
await response.Body.WriteAsync(buffer, 0, buffer.Length);
|
||||
}
|
||||
|
||||
private JsonSerializerOptions InitJsonOptions(BotSharpOptions options)
|
||||
{
|
||||
var jsonOption = new JsonSerializerOptions
|
||||
{
|
||||
PropertyNameCaseInsensitive = true,
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
||||
AllowTrailingCommas = true
|
||||
};
|
||||
|
||||
if (options?.JsonSerializerOptions != null)
|
||||
{
|
||||
foreach (var option in options.JsonSerializerOptions.Converters)
|
||||
{
|
||||
jsonOption.Converters.Add(option);
|
||||
}
|
||||
}
|
||||
|
||||
return jsonOption;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue