BotSharp/src/Plugins/BotSharp.Plugin.KnowledgeBase/Services/KnowledgeService.cs

38 lines
1.1 KiB
C#
Raw Normal View History

namespace BotSharp.Plugin.KnowledgeBase.Services;
2023-06-17 02:42:35 +00:00
2024-02-19 22:55:41 +00:00
public partial class KnowledgeService : IKnowledgeService
2023-06-17 02:42:35 +00:00
{
2023-06-26 23:08:24 +00:00
private readonly IServiceProvider _services;
private readonly KnowledgeBaseSettings _settings;
2023-06-18 18:15:00 +00:00
private readonly ITextChopper _textChopper;
2024-08-06 21:02:02 +00:00
private readonly ILogger<KnowledgeService> _logger;
2023-06-26 23:08:24 +00:00
public KnowledgeService(
IServiceProvider services,
2023-06-26 23:08:24 +00:00
KnowledgeBaseSettings settings,
2024-08-06 21:02:02 +00:00
ITextChopper textChopper,
ILogger<KnowledgeService> logger)
2023-06-17 02:42:35 +00:00
{
2023-06-26 23:08:24 +00:00
_services = services;
_settings = settings;
2023-06-18 18:15:00 +00:00
_textChopper = textChopper;
2024-08-06 21:02:02 +00:00
_logger = logger;
2023-06-17 02:42:35 +00:00
}
private IVectorDb GetVectorDb()
2023-12-30 03:54:41 +00:00
{
var db = _services.GetServices<IVectorDb>().FirstOrDefault(x => x.Name == _settings.VectorDb);
return db;
2023-12-30 03:54:41 +00:00
}
private ITextEmbedding GetTextEmbedding()
2023-06-17 02:42:35 +00:00
{
var embedding = _services.GetServices<ITextEmbedding>().FirstOrDefault(x => x.Provider == _settings.TextEmbedding.Provider);
if (embedding != null)
2023-06-18 18:15:00 +00:00
{
embedding.SetModelName(_settings.TextEmbedding.Model);
2023-06-17 02:42:35 +00:00
}
2023-06-26 23:08:24 +00:00
return embedding;
}
2023-06-17 02:42:35 +00:00
}