Find a file
2018-06-21 20:10:20 -05:00
.vscode fill parameter value for reply message 2018-05-09 09:50:16 -05:00
BotSharp.Core add conversation debug log 2018-06-21 20:10:20 -05:00
BotSharp.UnitTest train model by input contexts. 2018-06-18 17:15:32 -05:00
.gitignore Add SpaCy TextCategorizer component 2018-06-15 12:39:24 -05:00
BotSharp.sln load entity and synonym for agent. 2018-04-30 17:06:52 -05:00
LICENSE Initial commit 2017-12-17 07:51:23 -06:00
README.md intent detail fix 2018-06-02 22:53:54 -05: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

PM> Install-Package BotSharp.Core -Version 1.1.0
[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

Ethereum

0x2FdE97210cd14F6020C67BAFA61d4c227FdC268d