fix training bug

This commit is contained in:
Oceania2018 2018-10-02 07:13:28 -05:00
parent ae99ce5ba7
commit 989d0362b9
6 changed files with 36 additions and 35 deletions

View file

@ -15,7 +15,7 @@
}, },
"BotSharpIntentClassifier": { "BotSharpIntentClassifier": {
"classifer": "SVMClassifier" "classifer": "NaiveBayesClassifier"
}, },
"BotSharpTagger": { "BotSharpTagger": {

View file

@ -28,7 +28,7 @@ namespace Platform.Articulate
public class ArticulateAi<TAgent> : public class ArticulateAi<TAgent> :
PlatformBuilderBase<TAgent>, PlatformBuilderBase<TAgent>,
IPlatformBuilder<TAgent> IPlatformBuilder<TAgent>
where TAgent : AgentBase where TAgent : AgentModel
{ {
public DialogRequestOptions RequestOptions { get; set; } public DialogRequestOptions RequestOptions { get; set; }
@ -38,7 +38,7 @@ namespace Platform.Articulate
foreach (TAgent agent in results) foreach (TAgent agent in results)
{ {
var domain = (agent as AgentModel).Domains.FirstOrDefault(x => x.Id == domainId); var domain = agent.Domains.FirstOrDefault(x => x.Id == domainId);
if (domain != null) if (domain != null)
{ {
@ -55,7 +55,7 @@ namespace Platform.Articulate
foreach (TAgent agent in results) foreach (TAgent agent in results)
{ {
foreach (DomainModel domain in (agent as AgentModel).Domains) foreach (DomainModel domain in agent.Domains)
{ {
var intent = domain.Intents.FirstOrDefault(x => x.Id == intentId); var intent = domain.Intents.FirstOrDefault(x => x.Id == intentId);
if (intent != null) if (intent != null)
@ -72,10 +72,8 @@ namespace Platform.Articulate
{ {
var intents = new List<IntentModel>(); var intents = new List<IntentModel>();
var allAgents = GetAllAgents(); var allAgents = GetAllAgents();
foreach (TAgent agt in allAgents) foreach (TAgent agent in allAgents)
{ {
var agent = agt as AgentModel;
foreach (DomainModel domain in agent.Domains) foreach (DomainModel domain in agent.Domains)
{ {
foreach (IntentModel intent in domain.Intents) foreach (IntentModel intent in domain.Intents)
@ -94,8 +92,7 @@ namespace Platform.Articulate
public TrainingCorpus ExtractorCorpus(TAgent agent) public TrainingCorpus ExtractorCorpus(TAgent agent)
{ {
var corpus = new TrainingCorpus(); var corpus = new TrainingCorpus();
var agt = agent as AgentModel; corpus.Entities = agent.Entities.Select(x => new TrainingEntity
corpus.Entities = agt.Entities.Select(x => new TrainingEntity
{ {
Entity = x.EntityName, Entity = x.EntityName,
Values = x.Examples.Select(y => new TrainingEntitySynonym Values = x.Examples.Select(y => new TrainingEntitySynonym
@ -107,7 +104,7 @@ namespace Platform.Articulate
corpus.UserSays = new List<TrainingIntentExpression<TrainingIntentExpressionPart>>(); corpus.UserSays = new List<TrainingIntentExpression<TrainingIntentExpressionPart>>();
foreach(DomainModel domain in agt.Domains) foreach(DomainModel domain in agent.Domains)
{ {
foreach(IntentModel intent in domain.Intents) foreach(IntentModel intent in domain.Intents)
{ {
@ -133,6 +130,13 @@ namespace Platform.Articulate
return corpus; return corpus;
} }
public override bool SaveAgent(TAgent agent)
{
agent.Status = "Changed";
agent.LastTraining = DateTime.UtcNow;
return base.SaveAgent(agent);
}
public async Task<bool> Train(TAgent agent, TrainingCorpus corpus) public async Task<bool> Train(TAgent agent, TrainingCorpus corpus)
{ {
string agentDir = Path.Combine(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "Projects", agent.Id); string agentDir = Path.Combine(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "Projects", agent.Id);

View file

@ -68,7 +68,7 @@ namespace Platform.Articulate.Controllers
public AgentModel GetAgentById([FromRoute] string agentId) public AgentModel GetAgentById([FromRoute] string agentId)
{ {
var agent = builder.GetAgentById(agentId); var agent = builder.GetAgentById(agentId);
return agent; return agent;
} }
@ -76,7 +76,7 @@ namespace Platform.Articulate.Controllers
public AgentModel GetAgentByName([FromRoute] string agentName) public AgentModel GetAgentByName([FromRoute] string agentName)
{ {
var agent = builder.GetAgentByName(agentName); var agent = builder.GetAgentByName(agentName);
return agent; return agent;
} }
} }

View file

@ -35,5 +35,7 @@ namespace Platform.Articulate.Models
public List<DomainModel> Domains { get; set; } public List<DomainModel> Domains { get; set; }
public List<EntityModel> Entities { get; set; } public List<EntityModel> Entities { get; set; }
public DateTime LastTraining { get; set; }
} }
} }

View file

@ -0,0 +1,16 @@
# stage 1: build
FROM microsoft/dotnet AS botsharp-articulate
WORKDIR /source
# copies the rest of your code
COPY . .
# RUN dotnet build
RUN dotnet publish BotSharp.WebHost/BotSharp.WebHost.csproj --configuration ARTICULATE --output /app
# copy Settings folder
WORKDIR /app
RUN mkdir App_Data/Projects
# stage 2: run
ENTRYPOINT [ "dotnet", "BotSharp.WebHost.dll" ]

View file

@ -1,37 +1,16 @@
version: '3.0' version: '3.0'
services: services:
api:
image: samtecspg/articulate-api:0.12.1
ports: ['0.0.0.0:7500:7500']
networks: ['botsharp-network']
entrypoint: ['node', 'start.js']
environment:
- SWAGGER_BASE_PATH
ui: ui:
image: samtecspg/articulate-ui:0.12.1 image: samtecspg/articulate-ui:0.12.1
ports: ['0.0.0.0:3000:3000'] ports: ['0.0.0.0:3000:3000']
networks: ['botsharp-network'] networks: ['botsharp-network']
environment: environment:
- rasanluendpoint=http://rasa:5000
- API_URL - API_URL
rasa: botsharp:
image: botsharpdocker/botsharp-rasa:latest image: botsharpdocker/botsharp-rasa:latest
ports: ['0.0.0.0:5000:5000'] ports: ['0.0.0.0:5000:5000']
networks: ['botsharp-network'] networks: ['botsharp-network']
duckling:
image: samtecspg/duckling:0.1.6.0
ports: ['0.0.0.0:8000:8000']
networks: ['botsharp-network']
redis:
image: redis:4.0.6-alpine
ports: ['0.0.0.0:6379:6379']
networks: ['botsharp-network']
command: redis-server --appendonly yes
networks: {botsharp-network: {}} networks: {botsharp-network: {}}