BotSharp/src/Infrastructure/BotSharp.Abstraction/Loggers/IContentGeneratingHook.cs

52 lines
1.7 KiB
C#
Raw Normal View History

2025-02-28 18:44:59 +00:00
using BotSharp.Abstraction.Functions.Models;
2023-11-29 23:23:14 +00:00
namespace BotSharp.Abstraction.Loggers;
2023-10-16 20:07:07 +00:00
/// <summary>
/// Model content generating hook, it can be used for logging, metrics and tracing.
/// </summary>
public interface IContentGeneratingHook
{
/// <summary>
/// Before content generating.
/// </summary>
/// <returns></returns>
Task BeforeGenerating(Agent agent, List<RoleDialogModel> conversations) => Task.CompletedTask;
2023-12-01 17:31:45 +00:00
/// <summary>
/// Before function is invoked
/// </summary>
/// <returns></returns>
Task BeforeFunctionInvoked(RoleDialogModel message, TokenStatsModel tokenStats) => Task.CompletedTask;
/// <summary>
/// After function is invoked
/// </summary>
/// <returns></returns>
Task AfterFunctionInvoked(RoleDialogModel message, TokenStatsModel tokenStats) => Task.CompletedTask;
2023-10-16 20:07:07 +00:00
/// <summary>
/// After content generated.
/// </summary>
/// <returns></returns>
Task AfterGenerated(RoleDialogModel message, TokenStatsModel tokenStats) => Task.CompletedTask;
2024-03-31 19:28:16 +00:00
/// <summary>
/// Rdndering template
/// </summary>
/// <param name="agent"></param>
/// <param name="name"></param>
/// <param name="content"></param>
/// <returns></returns>
Task OnRenderingTemplate(Agent agent, string name, string content) => Task.CompletedTask;
2025-02-28 18:44:59 +00:00
/// <summary>
/// Realtime session updated
/// </summary>
/// <param name="agent"></param>
/// <param name="instruction"></param>
/// <param name="functions"></param>
/// <returns></returns>
2025-04-28 22:23:25 +00:00
Task OnSessionUpdated(Agent agent, string instruction, FunctionDef[] functions, bool isInit = false) => Task.CompletedTask;
2023-10-16 20:07:07 +00:00
}