2018-05-07 11:54:39 +00:00
|
|
|
# BotSharp
|
|
|
|
|
.Net implementation of open chatbot platform like google Dialogflow. Modulized design supports different NLU engine as backend.
|
|
|
|
|
|
|
|
|
|
### Features
|
|
|
|
|
* Multiple agents management
|
|
|
|
|
* Context In/ Out with lifespan to make conversion flow be controllable.
|
|
|
|
|
* Rasa NLU as is one of NLU engine
|
|
|
|
|
* Import agent from Dialogflow directly
|
|
|
|
|
|
|
|
|
|
### How to use
|
2018-06-03 03:53:54 +00:00
|
|
|
````shell
|
|
|
|
|
PM> Install-Package BotSharp.Core -Version 1.1.0
|
|
|
|
|
````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-07 11:54:39 +00:00
|
|
|
````cs
|
|
|
|
|
[TestMethod]
|
|
|
|
|
public void RestoreAgentTest()
|
|
|
|
|
{
|
|
|
|
|
var rasa = new RasaAi(dc);
|
|
|
|
|
var importer = new AgentImporterInDialogflow();
|
|
|
|
|
|
|
|
|
|
string dataDir = $"{Database.ContentRootPath}\\App_Data\\DbInitializer\\Agents\\";
|
|
|
|
|
var agent = rasa.RestoreAgent(importer, BOT_NAME, dataDir);
|
|
|
|
|
agent.Id = BOT_ID;
|
|
|
|
|
agent.ClientAccessToken = BOT_CLIENT_TOKEN;
|
|
|
|
|
agent.DeveloperAccessToken = BOT_DEVELOPER_TOKEN;
|
|
|
|
|
agent.UserId = Guid.NewGuid().ToString();
|
|
|
|
|
|
|
|
|
|
int row = dc.DbTran(() => rasa.SaveAgent(agent));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
public void TrainAgentTest()
|
|
|
|
|
{
|
|
|
|
|
var config = new AIConfiguration(BOT_CLIENT_TOKEN, SupportedLanguage.English);
|
|
|
|
|
config.SessionId = Guid.NewGuid().ToString();
|
|
|
|
|
|
|
|
|
|
var rasa = new RasaAi(dc, config);
|
|
|
|
|
rasa.agent = rasa.LoadAgent();
|
|
|
|
|
string msg = rasa.Train(dc);
|
|
|
|
|
|
|
|
|
|
Assert.IsTrue(!String.IsNullOrEmpty(msg));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
public void TextRequest()
|
|
|
|
|
{
|
|
|
|
|
var config = new AIConfiguration(BOT_CLIENT_TOKEN, SupportedLanguage.English);
|
|
|
|
|
config.SessionId = Guid.NewGuid().ToString();
|
|
|
|
|
|
|
|
|
|
var rasa = new RasaAi(dc, config);
|
|
|
|
|
|
|
|
|
|
var response = rasa.TextRequest(new AIRequest { Query = new String[] { "Hi" } });
|
|
|
|
|
Assert.AreEqual(response.Result.Metadata.IntentName, "Wakeup");
|
|
|
|
|
}
|
|
|
|
|
````
|
|
|
|
|
|
|
|
|
|
#### Tip Jar
|
|
|
|
|
* **Ethereum**
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
##### 0x2FdE97210cd14F6020C67BAFA61d4c227FdC268d
|