using LLama.Abstractions;
using System;
using System.Collections.Generic;
using System.Text;
namespace LLama.Control
{
///
/// The default generation control in LLamaSharp, using antiprompts. This class should not be inherited.
/// Note that this class has state. The previous outputs feeded to it will affect its control.
/// If you use it in a session, please don't reuse it for another session unless you intend to do so.
///
public sealed class DefaultGenerationControl: IGenerationControl
{
private AntipromptProcessor _antipromptProcessor;
///
///
///
public DefaultGenerationControl()
{
_antipromptProcessor = new AntipromptProcessor();
}
///
///
///
public bool ShouldStopGeneration(LLamaContext context, IInferenceParams inferenceParams, string lastOutputText)
{
_antipromptProcessor.SetAntiprompts(inferenceParams.AntiPrompts);
return _antipromptProcessor.Add(lastOutputText);
}
///
///
///
public bool ShouldStopGeneration(LLamaContext context, IInferenceParams inferenceParams, IEnumerable lastOutputIds)
{
return false;
}
}
}