public async Task <ModelMetaData> Train(TAgent agent, TrainingCorpus corpus) { string agentDir = Path.Combine(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "Projects", agent.Id); var model = "model_" + DateTime.UtcNow.ToString("yyyyMMdd"); var trainer = new BotTrainer(); agent.Corpus = corpus; var trainOptions = new BotTrainOptions { AgentDir = agentDir, Model = model }; var info = await trainer.Train(agent, trainOptions); return(info); }
public virtual async Task <ModelMetaData> Train(TAgent agent, TrainingCorpus corpus, BotTrainOptions options) { if (String.IsNullOrEmpty(options.AgentDir)) { options.AgentDir = Path.Combine(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "Projects", agent.Id); } if (String.IsNullOrEmpty(options.Model)) { options.Model = "model_" + DateTime.UtcNow.ToString("yyyyMMdd"); } ModelMetaData meta = null; // train by contexts corpus.UserSays.GroupBy(x => x.ContextHash).Select(g => new { Context = g.Key, Corpus = new TrainingCorpus { Entities = corpus.Entities, UserSays = corpus.UserSays.Where(x => x.ContextHash == g.Key).ToList() } }) .ToList() .ForEach(async c => { var trainer = new BotTrainer(settings); agent.Corpus = c.Corpus; meta = await trainer.Train(agent, new BotTrainOptions { AgentDir = options.AgentDir, Model = options.Model + $"{Path.DirectorySeparatorChar}{c.Context}" }); }); meta.Pipeline.Clear(); meta.Model = options.Model; return(meta); }
public virtual async Task <ModelMetaData> Train(TAgent agent, TrainingCorpus corpus, BotTrainOptions options) { if (String.IsNullOrEmpty(options.AgentDir)) { options.AgentDir = Path.Combine(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "Projects", agent.Id); } if (String.IsNullOrEmpty(options.Model)) { options.Model = "model_" + DateTime.UtcNow.ToString("yyyyMMdd"); } var trainer = new BotTrainer(settings); agent.Corpus = corpus; var info = await trainer.Train(agent, options); return(info); }
public override async Task Train(BotTrainOptions options) { var trainer = new BotTrainer(Agent.Id, Dc); await trainer.Train(Agent, options); }
public override async Task Train(BotTrainOptions options) { agent.Corpus = GetIntentExpressions(agent); var trainer = new BotTrainer(agent.Id, dc); await trainer.Train(agent, options); }