fix training bug
This commit is contained in:
parent
ae99ce5ba7
commit
989d0362b9
|
|
@ -15,7 +15,7 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
"BotSharpIntentClassifier": {
|
"BotSharpIntentClassifier": {
|
||||||
"classifer": "SVMClassifier"
|
"classifer": "NaiveBayesClassifier"
|
||||||
},
|
},
|
||||||
|
|
||||||
"BotSharpTagger": {
|
"BotSharpTagger": {
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
16
dockerfiles/ARTICULATE.Dockerfile
Normal file
16
dockerfiles/ARTICULATE.Dockerfile
Normal 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" ]
|
||||||
|
|
@ -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: {}}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue