BotSharp/src/Plugins/BotSharp.Plugin.LLamaSharp/LlamaAiModel.cs

54 lines
1.2 KiB
C#
Raw Normal View History

2023-08-19 13:25:47 +00:00
using BotSharp.Plugin.LLamaSharp.Settings;
2023-06-27 19:17:53 +00:00
using LLama;
using LLama.Abstractions;
2023-06-27 23:36:50 +00:00
using LLama.Common;
2023-09-18 08:35:02 +00:00
using System.IO;
2023-06-27 23:36:50 +00:00
2023-08-19 13:27:23 +00:00
namespace BotSharp.Plugins.LLamaSharp;
2023-06-27 19:17:53 +00:00
public class LlamaAiModel
{
private readonly LlamaSharpSettings _settings;
2023-06-27 23:36:50 +00:00
public LlamaSharpSettings Settings => _settings;
2023-06-27 19:17:53 +00:00
LLamaWeights _model;
2023-06-27 19:17:53 +00:00
public LLamaWeights Model => _model;
ModelParams _params;
public ModelParams Params => _params;
private ILLamaExecutor _statelessExecutor;
2023-06-27 19:17:53 +00:00
public LlamaAiModel(LlamaSharpSettings settings)
{
_settings = settings;
}
2023-09-18 08:35:02 +00:00
public void LoadModel(string model)
2023-06-27 19:17:53 +00:00
{
if (_model != null)
{
return;
}
2023-09-18 08:35:02 +00:00
_params = new ModelParams(Path.Combine(_settings.ModelDir, model))
{
ContextSize = (uint)_settings.MaxContextLength,
2023-09-18 08:35:02 +00:00
GpuLayerCount = _settings.NumberOfGpuLayer
};
_model = LLamaWeights.LoadFromFile(_params);
}
public ILLamaExecutor GetStatelessExecutor()
{
if (_statelessExecutor == null)
{
_statelessExecutor = new StatelessExecutor(_model, _params);
}
return _statelessExecutor;
2023-06-27 19:17:53 +00:00
}
}