BotSharp/README.md
2018-05-07 06:54:39 -05:00

58 lines
1.7 KiB
Markdown

# 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
````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**
![Ethereum](https://raw.githubusercontent.com/Haiping-Chen/Etherscan.NetSDK/master/qr_code_eth.jpg)
##### 0x2FdE97210cd14F6020C67BAFA61d4c227FdC268d