BotSharp/src/Infrastructure/BotSharp.Core/Knowledges/Services/KnowledgeService.cs

42 lines
1.2 KiB
C#
Raw Normal View History

2024-08-31 05:57:49 +00:00
using BotSharp.Abstraction.Graph;
using BotSharp.Abstraction.Knowledges.Settings;
using BotSharp.Abstraction.MLTasks;
using BotSharp.Abstraction.VectorStorage;
using BotSharp.Core.Knowledges.Helpers;
2024-08-29 19:30:47 +00:00
2024-08-31 05:57:49 +00:00
namespace BotSharp.Core.Knowledges.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;
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
ILogger<KnowledgeService> logger)
2023-06-17 02:42:35 +00:00
{
2023-06-26 23:08:24 +00:00
_services = services;
_settings = settings;
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
{
2024-08-31 00:31:18 +00:00
var db = _services.GetServices<IVectorDb>().FirstOrDefault(x => x.Provider == _settings.VectorDb.Provider);
return db;
2023-12-30 03:54:41 +00:00
}
2024-08-15 23:19:10 +00:00
private IGraphDb GetGraphDb()
{
2024-08-31 00:31:18 +00:00
var db = _services.GetServices<IGraphDb>().FirstOrDefault(x => x.Provider == _settings.GraphDb.Provider);
2024-08-15 23:19:10 +00:00
return db;
}
2024-08-22 20:23:22 +00:00
private ITextEmbedding GetTextEmbedding(string collection)
2023-06-17 02:42:35 +00:00
{
2024-08-28 16:08:12 +00:00
return KnowledgeSettingHelper.GetTextEmbeddingSetting(_services, collection);
2023-06-26 23:08:24 +00:00
}
2023-06-17 02:42:35 +00:00
}