using BotSharp.Abstraction.Functions.Models;
namespace BotSharp.Abstraction.Loggers;
///
/// Model content generating hook, it can be used for logging, metrics and tracing.
///
public interface IContentGeneratingHook
{
///
/// Before content generating.
///
///
Task BeforeGenerating(Agent agent, List conversations) => Task.CompletedTask;
///
/// Before function is invoked
///
///
Task BeforeFunctionInvoked(RoleDialogModel message, TokenStatsModel tokenStats) => Task.CompletedTask;
///
/// After function is invoked
///
///
Task AfterFunctionInvoked(RoleDialogModel message, TokenStatsModel tokenStats) => Task.CompletedTask;
///
/// After content generated.
///
///
Task AfterGenerated(RoleDialogModel message, TokenStatsModel tokenStats) => Task.CompletedTask;
///
/// Rdndering template
///
///
///
///
///
Task OnRenderingTemplate(Agent agent, string name, string content) => Task.CompletedTask;
///
/// Realtime session updated
///
///
///
///
///
Task OnSessionUpdated(Agent agent, string instruction, FunctionDef[] functions, bool isInit = false) => Task.CompletedTask;
}