TrainAgentPerContextTest
This commit is contained in:
parent
025ca3810f
commit
220b6ad209
|
|
@ -137,94 +137,6 @@ namespace BotSharp.Core.Agents
|
|||
});
|
||||
});
|
||||
|
||||
return trainingData;
|
||||
}
|
||||
|
||||
public static RasaTrainingData GrabCorpusPerContexts(this Agent agent, Database dc, List<AIContext> ctx)
|
||||
{
|
||||
var trainingData = new RasaTrainingData
|
||||
{
|
||||
Entities = new List<RasaTraningEntity>(),
|
||||
UserSays = new List<RasaIntentExpression>()
|
||||
};
|
||||
|
||||
var expressParts = new List<IntentExpressionPart>();
|
||||
|
||||
var intents = dc.Table<Intent>()
|
||||
.Include(x => x.Contexts)
|
||||
.Include(x => x.UserSays).ThenInclude(say => say.Data)
|
||||
.Where(x => x.UserSays.Count > 0)
|
||||
.ToList();
|
||||
|
||||
var contexts = ctx.OrderBy(x => x.Name).Select(x => x.Name.ToLower()).ToList();
|
||||
|
||||
// search all potential intents which input context included in contexts
|
||||
intents = intents.Where(it =>
|
||||
{
|
||||
if (contexts.Count == 0)
|
||||
{
|
||||
return it.Contexts.Count() == 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return it.Contexts.Count() > 0 && it.Contexts.Count(x => contexts.Contains(x.Name.ToLower())) == it.Contexts.Count;
|
||||
}
|
||||
}).OrderByDescending(x => x.Contexts.Count).ToList();
|
||||
|
||||
intents.ForEach(intent =>
|
||||
{
|
||||
intent.UserSays.ForEach(exp =>
|
||||
{
|
||||
var say = new RasaIntentExpression
|
||||
{
|
||||
Intent = intent.Name,
|
||||
Text = String.Join("", exp.Data.OrderBy(x => x.UpdatedTime).Select(x => x.Text)),
|
||||
};
|
||||
|
||||
// convert entity format
|
||||
exp.Data.Where(x => !String.IsNullOrEmpty(x.Meta))
|
||||
.ToList()
|
||||
.ForEach(x =>
|
||||
{
|
||||
int start = say.Text.IndexOf(x.Text);
|
||||
|
||||
var part = new RasaIntentExpressionPart
|
||||
{
|
||||
Value = x.Text,
|
||||
Entity = x.Alias,
|
||||
Start = start,
|
||||
End = start + x.Text.Length
|
||||
};
|
||||
|
||||
if (say.Entities == null) say.Entities = new List<RasaIntentExpressionPart>();
|
||||
say.Entities.Add(part);
|
||||
|
||||
// assemble entity synonmus
|
||||
if (!trainingData.Entities.Any(y => y.EntityType == x.Alias && y.EntityValue == x.Text))
|
||||
{
|
||||
var allSynonyms = (from e in dc.Table<EntityType>()
|
||||
join ee in dc.Table<EntityEntry>() on e.Id equals ee.EntityId
|
||||
join ees in dc.Table<EntrySynonym>() on ee.Id equals ees.EntityEntryId
|
||||
where e.Name == x.Alias && ee.Value == x.Text & ees.Synonym != x.Text
|
||||
select ees.Synonym ).ToList();
|
||||
|
||||
var te = new RasaTraningEntity
|
||||
{
|
||||
EntityType = x.Alias,
|
||||
EntityValue = x.Text,
|
||||
Synonyms = allSynonyms
|
||||
};
|
||||
|
||||
trainingData.Entities.Add(te);
|
||||
}
|
||||
});
|
||||
|
||||
trainingData.UserSays.Add(say);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
return trainingData;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,6 @@ namespace BotSharp.Core.Models
|
|||
{
|
||||
public string Task { get; set; }
|
||||
|
||||
public Object Body { get; set; }
|
||||
public List<String> Parameters { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,6 +83,8 @@ namespace BotSharp.Core.Engines
|
|||
intentJson = intentJson.Replace("\"prompts\":", "\"promptList\":");
|
||||
|
||||
var intent = JsonConvert.DeserializeObject<DialogflowIntent>(intentJson);
|
||||
// void id confict
|
||||
intent.Id = Guid.NewGuid().ToString();
|
||||
intent.Name = intent.Name.Replace("/","_");
|
||||
// load user expressions
|
||||
if (fileName.Contains("Default Fallback Intent"))
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using BotSharp.Core.Agents;
|
||||
using BotSharp.Core.Entities;
|
||||
using BotSharp.Core.Intents;
|
||||
using BotSharp.Core.Models;
|
||||
using EntityFrameworkCore.BootKit;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
|
@ -86,5 +87,48 @@ namespace BotSharp.Core.Engines
|
|||
return String.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public string TrainWithContexts()
|
||||
{
|
||||
var corpus = agent.GrabCorpus(dc);
|
||||
|
||||
string json = JsonConvert.SerializeObject(new { rasa_nlu_data = corpus },
|
||||
new JsonSerializerSettings
|
||||
{
|
||||
ContractResolver = new CamelCasePropertyNamesContractResolver(),
|
||||
NullValueHandling = NullValueHandling.Ignore
|
||||
});
|
||||
|
||||
var client = new RestClient($"{Database.Configuration.GetSection("Rasa:Host").Value}");
|
||||
var rest = new RestRequest("train", Method.POST);
|
||||
rest.AddQueryParameter("project", agent.Id);
|
||||
rest.AddParameter("application/json", json, ParameterType.RequestBody);
|
||||
|
||||
var response = client.Execute(rest);
|
||||
|
||||
if (response.IsSuccessful)
|
||||
{
|
||||
var result = JObject.Parse(response.Content);
|
||||
|
||||
string modelName = result["info"].Value<String>().Split(": ")[1];
|
||||
|
||||
dc.Table<ContextModelMapping>().Add(new ContextModelMapping
|
||||
{
|
||||
AgentId = agent.Id,
|
||||
ModelName = modelName,
|
||||
//ContextId = contextId
|
||||
});
|
||||
|
||||
return modelName;
|
||||
}
|
||||
else
|
||||
{
|
||||
var result = JObject.Parse(response.Content);
|
||||
|
||||
Console.WriteLine(result["error"]);
|
||||
|
||||
return String.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ namespace BotSharp.Core.Models
|
|||
|
||||
public String Text { get; set; }
|
||||
public String Intent { get; set; }
|
||||
public String ContextHash { get; set; }
|
||||
public List<RasaIntentExpressionPart> Entities { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,8 +113,9 @@ namespace BotSharp.Core.Engines
|
|||
response.Intent
|
||||
};
|
||||
}
|
||||
response.IntentRanking = response.IntentRanking
|
||||
.Where(x => x.Confidence > decimal.Parse("0.2") && intents.Select(i => i.Name).Contains(x.Name)).ToList();
|
||||
|
||||
response.IntentRanking = response.IntentRanking.Where(x => x.Confidence > decimal.Parse("0.1")).ToList();
|
||||
response.IntentRanking = response.IntentRanking.Where(x => intents.Select(i => i.Name).Contains(x.Name)).ToList();
|
||||
|
||||
// add Default Fallback Intent
|
||||
if (response.IntentRanking.Count == 0)
|
||||
|
|
@ -314,23 +315,10 @@ namespace BotSharp.Core.Engines
|
|||
}
|
||||
}).OrderByDescending(x => x.Contexts.Count).ToList();
|
||||
|
||||
// training per request contexts
|
||||
// query per request contexts
|
||||
{
|
||||
string contextId = $"{String.Join(',', contexts.Select(x => x.Name))}".GetMd5Hash();
|
||||
string modelName = dc.Table<ContextModelMapping>().FirstOrDefault(x => x.ContextId == contextId)?.ModelName;
|
||||
// need training
|
||||
if (String.IsNullOrEmpty(modelName))
|
||||
{
|
||||
request.Contexts = contexts.Select(x => new AIContext { Name = x.Name.ToLower() })
|
||||
.OrderBy(x => x.Name)
|
||||
.ToList();
|
||||
|
||||
dc.DbTran(() =>
|
||||
{
|
||||
modelName = TrainWithContexts(rasa, dc, request, contextId);
|
||||
});
|
||||
}
|
||||
|
||||
var result = CallRasa(rasa.agent.Id, request.Query.First(), modelName);
|
||||
|
||||
if (result.Data.Intent != null)
|
||||
|
|
@ -351,15 +339,6 @@ namespace BotSharp.Core.Engines
|
|||
|
||||
string modelName = dc.Table<ContextModelMapping>().FirstOrDefault(x => x.ContextId == contextId)?.ModelName;
|
||||
|
||||
// need training
|
||||
if (String.IsNullOrEmpty(modelName))
|
||||
{
|
||||
dc.DbTran(() =>
|
||||
{
|
||||
modelName = TrainWithContexts(rasa, dc, request, contextId);
|
||||
});
|
||||
}
|
||||
|
||||
var result = CallRasa(rasa.agent.Id, request.Query.First(), modelName);
|
||||
|
||||
if (result.Data.Intent != null)
|
||||
|
|
@ -470,74 +449,5 @@ namespace BotSharp.Core.Engines
|
|||
|
||||
return aiResponse;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Need two categories at least
|
||||
/// </summary>
|
||||
/// <param name="console"></param>
|
||||
/// <param name="dc"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="contextId"></param>
|
||||
/// <returns></returns>
|
||||
public static string TrainWithContexts(this RasaAi console, Database dc, AIRequest request, String contextId)
|
||||
{
|
||||
var corpus = console.agent.GrabCorpusPerContexts(dc, request.Contexts);
|
||||
|
||||
corpus.UserSays.Add(new RasaIntentExpression
|
||||
{
|
||||
Intent = "Welcome",
|
||||
Text = "Hi"
|
||||
});
|
||||
|
||||
corpus.UserSays.Add(new RasaIntentExpression
|
||||
{
|
||||
Intent = "Welcome",
|
||||
Text = "Hey"
|
||||
});
|
||||
|
||||
corpus.UserSays.Add(new RasaIntentExpression
|
||||
{
|
||||
Intent = "Welcome",
|
||||
Text = "Hello"
|
||||
});
|
||||
|
||||
string json = JsonConvert.SerializeObject(new { rasa_nlu_data = corpus },
|
||||
new JsonSerializerSettings
|
||||
{
|
||||
ContractResolver = new CamelCasePropertyNamesContractResolver(),
|
||||
NullValueHandling = NullValueHandling.Ignore
|
||||
});
|
||||
|
||||
var client = new RestClient($"{Database.Configuration.GetSection("Rasa:Host").Value}");
|
||||
var rest = new RestRequest("train", Method.POST);
|
||||
rest.AddQueryParameter("project", console.agent.Id);
|
||||
rest.AddParameter("application/json", json, ParameterType.RequestBody);
|
||||
|
||||
var response = client.Execute(rest);
|
||||
|
||||
if (response.IsSuccessful)
|
||||
{
|
||||
var result = JObject.Parse(response.Content);
|
||||
|
||||
string modelName = result["info"].Value<String>().Split(": ")[1];
|
||||
|
||||
dc.Table<ContextModelMapping>().Add(new ContextModelMapping
|
||||
{
|
||||
AgentId = console.agent.Id,
|
||||
ModelName = modelName,
|
||||
ContextId = contextId
|
||||
});
|
||||
|
||||
return modelName;
|
||||
}
|
||||
else
|
||||
{
|
||||
var result = JObject.Parse(response.Content);
|
||||
|
||||
Console.WriteLine(result["error"]);
|
||||
|
||||
return String.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ namespace BotSharp.Core.Entities
|
|||
[StringLength(36)]
|
||||
public String EntityEntryId { get; set; }
|
||||
|
||||
[MaxLength(64)]
|
||||
[MaxLength(128)]
|
||||
public String Synonym { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
using EntityFrameworkCore.BootKit;
|
||||
using DotNetToolkit;
|
||||
using EntityFrameworkCore.BootKit;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace BotSharp.Core.Intents
|
||||
|
|
@ -26,6 +28,18 @@ namespace BotSharp.Core.Intents
|
|||
[ForeignKey("IntentId")]
|
||||
public List<IntentInputContext> Contexts { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Get input contexts hash
|
||||
/// </summary>
|
||||
[NotMapped]
|
||||
public String ContextHash
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{String.Join(',', Contexts.OrderBy(x => x.Name).Select(x => x.Name))}".GetMd5Hash();
|
||||
}
|
||||
}
|
||||
|
||||
[ForeignKey("IntentId")]
|
||||
public List<IntentExpression> UserSays { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -73,5 +73,18 @@ namespace BotSharp.UnitTest
|
|||
|
||||
Assert.IsTrue(!String.IsNullOrEmpty(msg));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TrainAgentPerContextTest()
|
||||
{
|
||||
var config = new AIConfiguration(BOT_CLIENT_TOKEN, SupportedLanguage.English);
|
||||
config.SessionId = Guid.NewGuid().ToString();
|
||||
|
||||
var rasa = new RasaAi(dc, config);
|
||||
|
||||
string msg = rasa.TrainWithContexts();
|
||||
|
||||
Assert.IsTrue(!String.IsNullOrEmpty(msg));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,208 +7,21 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\agent.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\Affiliate.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\Affiliate_entries_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\CallerPosition.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\CallerPosition_entries_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\Client.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\Client_entries_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\ServiceCategory.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\ServiceCategory_entries_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\ServiceCode.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\ServiceCode_entries_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\ServiceType.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\ServiceType_entries_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\UserName.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\UserName_entries_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Affiliate Picked up - yes.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Affiliate Picked up - yes_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Affiliate Picked up.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Affiliate Picked up_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Affiliate Telling Available Time.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Affiliate Telling Available Time_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Confirm Service Type - no.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Confirm Service Type - no_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Confirm Service Type - yes.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Confirm Service Type - yes_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Create Work Order.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Create Work Order_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Default Fallback Intent.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Default Welcome Intent.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Start Schedule.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Start Schedule_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Caller Name.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Caller Name_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Caller Position.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Caller Position_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Service Category - no.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Service Category - no_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Service Category - yes.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Service Category - yes_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Service Category.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Service Category_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Store Number - no.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Store Number - no_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Store Number - yes.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Store Number - yes_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Store Number.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Store Number_usersays_en.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\package.json" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Rasa\2b6a288e-d891-40c6-96ce-6a0cf324545c.json" />
|
||||
<Compile Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\**" />
|
||||
<Compile Remove="App_Data\DbInitializer\Agents\Dialogflow\Voicebot\**" />
|
||||
<EmbeddedResource Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\**" />
|
||||
<EmbeddedResource Remove="App_Data\DbInitializer\Agents\Dialogflow\Voicebot\**" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\**" />
|
||||
<None Remove="App_Data\DbInitializer\Agents\Dialogflow\Voicebot\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="Settings\settings.app.json" />
|
||||
<None Remove="Settings\settings.bot.json" />
|
||||
<None Remove="Settings\settings.db.json" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\agent.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\Affiliate.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\Affiliate_entries_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\CallerPosition.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\CallerPosition_entries_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\Client.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\Client_entries_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\ServiceCategory.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\ServiceCategory_entries_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\ServiceCode.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\ServiceCode_entries_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\ServiceType.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\ServiceType_entries_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\UserName.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\entities\UserName_entries_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Affiliate Picked up - yes.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Affiliate Picked up - yes_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Affiliate Picked up.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Affiliate Picked up_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Affiliate Telling Available Time.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Affiliate Telling Available Time_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Confirm Service Type - no.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Confirm Service Type - no_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Confirm Service Type - yes.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Confirm Service Type - yes_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Create Work Order.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Create Work Order_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Default Fallback Intent.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Default Welcome Intent.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Start Schedule.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Start Schedule_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Caller Name.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Caller Name_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Caller Position.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Caller Position_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Service Category - no.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Service Category - no_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Service Category - yes.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Service Category - yes_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Service Category.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Service Category_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Store Number - no.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Store Number - no_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Store Number - yes.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Store Number - yes_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Store Number.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\intents\Telling Store Number_usersays_en.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Dialogflow\VirtualAssistant\package.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="App_Data\DbInitializer\Agents\Rasa\2b6a288e-d891-40c6-96ce-6a0cf324545c.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Include="Settings\settings.app.json">
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
|
|
@ -237,7 +50,7 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="App_Data\DbInitializer\Agents\Dialogflow\Voicebot\" />
|
||||
<Folder Include="App_Data\DbInitializer\Agents\Rasa\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ namespace BotSharp.UnitTest
|
|||
var rasa = new RasaAi(dc, config);
|
||||
|
||||
// Round 1
|
||||
var response = rasa.TextRequest(new AIRequest { Query = new String[] { "Hi" } });
|
||||
Assert.AreEqual(response.Result.Metadata.IntentName, "greet");
|
||||
var response = rasa.TextRequest(new AIRequest { Query = new String[] { "Can you play country music?" } });
|
||||
Assert.AreEqual(response.Result.Metadata.IntentName, "music.play");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,10 +10,10 @@ namespace BotSharp.UnitTest
|
|||
{
|
||||
public abstract class TestEssential
|
||||
{
|
||||
public static String BOT_ID = "5f98a0fd-e7e9-4155-9610-d3f40d026162";
|
||||
public static String BOT_CLIENT_TOKEN = "2fffb9a1a9214144ab2717a37fa43c33";
|
||||
public static String BOT_DEVELOPER_TOKEN = "2c7d224cf7274f9d93b4c65c31ca82fe";
|
||||
public static String BOT_NAME = "Handybot";
|
||||
public static String BOT_ID = "6a9fd374-c43d-447a-97f2-f37540d0c725";
|
||||
public static String BOT_CLIENT_TOKEN = "43a0f48e3f1e41da822092e7e699426b";
|
||||
public static String BOT_DEVELOPER_TOKEN = "cd1e4685c6a04d7db1f59e6853fd597b";
|
||||
public static String BOT_NAME = "Spotify";
|
||||
|
||||
protected Database dc { get; set; }
|
||||
protected string contentRoot;
|
||||
|
|
|
|||
Loading…
Reference in a new issue