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

54 lines
1.1 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-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;
_params = new ModelParams(_settings.ModelPath)
{
ContextSize = _settings.MaxContextLength,
Seed = 1337,
GpuLayerCount = _settings.NumberOfGpuLayer
};
2023-06-27 19:17:53 +00:00
}
public void LoadModel()
{
if (_model != null)
{
return;
}
_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
}
}