using BotSharp.Core.Agents; using BotSharp.Core.Engines; using BotSharp.Core.Engines.BotSharp; using BotSharp.Core.Models; using DotNetToolkit; using EntityFrameworkCore.BootKit; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; namespace BotSharp.RestApi { /// /// Agent /// [Route("v1/[controller]/[action]")] public class AgentController : ControllerBase { private readonly IBotPlatform _platform; /// /// Initialize dialog controller and get a platform instance /// /// public AgentController(IBotPlatform platform) { _platform = platform; } /// /// Restore a agent from a uploaded zip file /// /// /// [HttpGet("{agentId}")] public ActionResult Restore([FromRoute] String agentId) { var botsHeaderFilePath = Path.Join(AppDomain.CurrentDomain.GetData("DataPath").ToString(), $"DbInitializer{Path.DirectorySeparatorChar}Agents{Path.DirectorySeparatorChar}agents.json"); var agents = JsonConvert.DeserializeObject>(System.IO.File.ReadAllText(botsHeaderFilePath)); var rasa = new BotSharpAi(); var agentHeader = agents.First(x => x.Id == agentId); rasa.RestoreAgent(agentHeader); return Ok(); } /// /// Restore a agent from a uploaded zip file /// /// /// [HttpGet("{agentId}")] public string Train([FromRoute] String agentId) { _platform.LoadAgent(agentId); _platform.Train(); return ""; } /// /// Dump agent /// /// /// [HttpGet("{agentId}")] public ActionResult Dump([FromRoute] String agentId) { var agent = _platform.LoadAgent(agentId); return Ok(agent); } } }