relocate knowledge service

This commit is contained in:
Jicheng Lu 2024-08-31 00:57:49 -05:00
parent f38fdf7497
commit 495ac9949c
11 changed files with 48 additions and 12 deletions

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>$(TargetFramework)</TargetFramework>

View file

@ -1,4 +1,7 @@
namespace BotSharp.Plugin.KnowledgeBase.Helpers;
using BotSharp.Abstraction.Knowledges.Settings;
using BotSharp.Abstraction.MLTasks;
namespace BotSharp.Core.Knowledges.Helpers;
public static class KnowledgeSettingHelper
{

View file

@ -0,0 +1,19 @@
using BotSharp.Core.Knowledges.Services;
using Microsoft.Extensions.Configuration;
namespace BotSharp.Core.Knowledges;
public class KnowledgeCorePlugin : IBotSharpPlugin
{
public string Id => "a5ebc8f9-d089-44d0-bf00-4eac97a050bc";
public string Name => "Knowledge Core";
public string Description => "Provides core knowledge services.";
public void RegisterDI(IServiceCollection services, IConfiguration config)
{
services.AddScoped<IKnowledgeService, KnowledgeService>();
}
}

View file

@ -1,11 +1,16 @@
namespace BotSharp.Plugin.KnowledgeBase.Services;
using BotSharp.Abstraction.Knowledges.Models;
using BotSharp.Abstraction.VectorStorage.Models;
namespace BotSharp.Core.Knowledges.Services;
public partial class KnowledgeService
{
public async Task FeedVectorKnowledge(string collectionName, KnowledgeCreationModel knowledge)
{
var index = 0;
var lines = _textChopper.Chop(knowledge.Content, new ChunkOption
var textChopper = _services.GetRequiredService<ITextChopper>();
var lines = textChopper.Chop(knowledge.Content, new ChunkOption
{
Size = 1024,
Conjunction = 32,

View file

@ -1,4 +1,4 @@
namespace BotSharp.Plugin.KnowledgeBase.Services;
namespace BotSharp.Core.Knowledges.Services;
public partial class KnowledgeService
{

View file

@ -1,6 +1,8 @@
using BotSharp.Abstraction.Graph.Models;
using BotSharp.Abstraction.Knowledges.Models;
using BotSharp.Abstraction.VectorStorage.Models;
namespace BotSharp.Plugin.KnowledgeBase.Services;
namespace BotSharp.Core.Knowledges.Services;
public partial class KnowledgeService
{

View file

@ -1,4 +1,6 @@
namespace BotSharp.Plugin.KnowledgeBase.Services;
using BotSharp.Abstraction.VectorStorage.Models;
namespace BotSharp.Core.Knowledges.Services;
public partial class KnowledgeService
{

View file

@ -1,22 +1,24 @@
using BotSharp.Abstraction.Graph;
using BotSharp.Abstraction.Knowledges.Settings;
using BotSharp.Abstraction.MLTasks;
using BotSharp.Abstraction.VectorStorage;
using BotSharp.Core.Knowledges.Helpers;
namespace BotSharp.Plugin.KnowledgeBase.Services;
namespace BotSharp.Core.Knowledges.Services;
public partial class KnowledgeService : IKnowledgeService
{
private readonly IServiceProvider _services;
private readonly KnowledgeBaseSettings _settings;
private readonly ITextChopper _textChopper;
private readonly ILogger<KnowledgeService> _logger;
public KnowledgeService(
IServiceProvider services,
KnowledgeBaseSettings settings,
ITextChopper textChopper,
ILogger<KnowledgeService> logger)
{
_services = services;
_settings = settings;
_textChopper = textChopper;
_logger = logger;
}

View file

@ -1,3 +1,5 @@
using BotSharp.Core.Knowledges.Helpers;
namespace BotSharp.Plugin.KnowledgeBase.Functions;
public class KnowledgeRetrievalFn : IFunctionCallback

View file

@ -1,3 +1,5 @@
using BotSharp.Core.Knowledges.Helpers;
namespace BotSharp.Plugin.KnowledgeBase.Functions;
public class MemorizeKnowledgeFn : IFunctionCallback

View file

@ -21,7 +21,6 @@ public class KnowledgeBasePlugin : IBotSharpPlugin
});
services.AddScoped<ITextChopper, TextChopperService>();
services.AddScoped<IKnowledgeService, KnowledgeService>();
services.AddSingleton<IPdf2TextConverter, PigPdf2TextConverter>();
services.AddScoped<IAgentUtilityHook, KnowledgeBaseUtilityHook>();
services.AddScoped<IAgentHook, KnowledgeBaseAgentHook>();