From 7af506fc76c0adf505da5cb392b139068ad84246 Mon Sep 17 00:00:00 2001 From: Wenbo Cao <104199@smsassist.com> Date: Fri, 1 Sep 2023 12:42:18 -0500 Subject: [PATCH] Add async save user dialogue data --- .../RoutingConversationHook.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/Plugins/BotSharp.Plugin.RoutingSpeeder/RoutingConversationHook.cs b/src/Plugins/BotSharp.Plugin.RoutingSpeeder/RoutingConversationHook.cs index fbb63acc..15f0912f 100644 --- a/src/Plugins/BotSharp.Plugin.RoutingSpeeder/RoutingConversationHook.cs +++ b/src/Plugins/BotSharp.Plugin.RoutingSpeeder/RoutingConversationHook.cs @@ -11,6 +11,8 @@ using BotSharp.Plugin.RoutingSpeeder.Settings; using BotSharp.Abstraction.Templating; using BotSharp.Plugin.RoutingSpeeder.Providers; using System.Runtime.InteropServices; +using BotSharp.Abstraction.Agents; +using System.IO; namespace BotSharp.Plugin.RoutingSpeeder; @@ -44,4 +46,23 @@ public class RoutingConversationHook: ConversationHookBase message.StopCompletion = true; } } + + public override async Task AfterCompletion(RoleDialogModel message) + { + // save train data + var agentService = _services.CreateScope().ServiceProvider.GetRequiredService(); + var rootDataPath = agentService.GetDataDir(); + + string rawDataDir = Path.Combine(rootDataPath, "raw_data", $"{message.CurrentAgentId}.txt"); + var lastThreeDialogs = _dialogs.Where(x => x.Role == AgentRole.User).Select(x => x.Content).Reverse().Take(3).ToArray(); + + if (!File.Exists(rawDataDir)) + { + await File.WriteAllLinesAsync(rawDataDir, lastThreeDialogs); + } + else + { + await File.AppendAllLinesAsync(rawDataDir, lastThreeDialogs); + } + } }