有人能告诉我如何在.Net服务器中实现一个bot动作吗? .net有任何模板或liblary?非常感谢。在.Net服务器中实现wit.ai动作
0
A
回答
0
有用于处理会话,动作等
https://github.com/valencianok/Wit.ai.net
以下将该溶液是基于Wit.ai.net NuGet包一个NET库。
首先,你需要设置一些处理程序合并,停止行动,说:
static object ActionHandler(string conversationId, object context, string action, Dictionary<string, List<Entity>> entities, double confidence)
{
Console.WriteLine("Action handler called");
//Invoke correct action based on action name passed in by action parameter
Actions[action].Invoke();
return context;
}
static object MergeHandler(string conversationId, object context, Dictionary<string, List<Entity>> entities, double confidence)
{
Console.WriteLine("Merge handler called");
return context;
}
static void SayHandler(string conversationId, object context, string msg, double confidence)
{
Console.WriteLine("Say handler called " + msg);
}
static object StopHandler(string conversationId, object context)
{
Console.WriteLine("Stop handler called");
return context;
}
的的ActionHandler是,如果你想聆听来自威特在通过行动你interrested的一个。 “action”参数将告诉您要执行哪个操作。例如,这些可以使用字典进行设置,其中键是操作名称,值是操作。举个例子:
//Define actions to run based on Wit callback
static void Action1()
{
Console.WriteLine("Action1 is called");
}
static void Action2()
{
Console.WriteLine("Action2 is called");
}
//Define actions in dictionary, key will be the action recieved from Wit response, value will be an invokable action
static Dictionary<string, Action> Actions => new Dictionary<string, Action>
{
{ "action1", Action1 },
{ "action2", Action2 }
};
注意:您必须Wit.ai的行动称为动作1或动作2,使这项工作。如果您在Wit.ai中有getNews动作,请将其更改为例如“getNews”。
然后,您创建一个会话并通过处理器的谈话:
var conversation = new WitConversation<object>(WIT_ACCESS_TOKEN, "conversation-id-123", null, MergeHandler, SayHandler, ActionHandler, StopHandler);
然后你刚开始一个对话:
conversation.SendMessageAsync("Message to bot here").Result;
如果您需要发送一些背景键回bot,则需要修改任何处理程序中的上下文参数并返回新的上下文,例如:
static object ActionHandler(string conversationId, object context, string action, Dictionary<string, List<Entity>> entities, double confidence)
{
Console.WriteLine("Action handler called");
//Invoke correct action based on action name passed in by action parameter
Actions[action].Invoke();
return new { context_key_here = "context key value" };
}
这当然是做这个操作的一个简单的方法,我希望它能指出你在正确的方向。
您也可以为所有Wit操作提供一些界面,然后在ActionHandler中获取所需操作的实例。
我在下面的Gist的控制台应用程序中做了一个从Wit.ai api返回的操作的简单实现。希望能帮助到你。
https://gist.github.com/SimonPirre/c2f571c4b47d0ac3defb1bc7292f456f
相关问题
- 1. 在C#/ .Net中实现SSH服务器
- 2. .NET NFS服务器实现?
- 3. 实现聊天服务器作为WebService
- 4. 在J2ee服务器中实现服务器套接字
- 5. 在airplay中实现android作为服务器(接收器)
- 6. 在Python中实现SMPP服务器
- 7. 在iOS中实现Thrift服务器
- 8. 在iOS中实现本地服务器
- 9. 在C#中实现WebDAV服务器?
- 10. 自动完成服务器端实现
- 11. 在android.permission.RECEIVE_BOOT_COMPLETED中实现服务
- 12. 在Symbian中实现服务
- 13. FCM服务器实现
- 14. RTCweb服务器端实现
- 15. Swift服务器实现
- 16. 实现键值服务器
- 17. 实现代理服务器
- 18. Golang http服务器实现
- 19. OpenSocial服务器实现
- 20. 如何启动在python中实现的COM服务器?
- 21. NDDE实现DDE服务器,在服务器提醒
- 22. 在服务器上实现作业的定时器?
- 23. 使WCF .NET服务实现实现多个ServiceContract接口
- 24. 在Coldfusion服务器上实现monkehtwets
- 25. 如何实现OLE服务器在C#
- 26. 如何在服务器上实现iPhone
- 27. Ruby EventMachine中的IMAP服务器实现
- 28. 在.NET REST服务实现中使用线程池
- 29. 如何实现.NET服务器和Python客户端?
- 30. 如何使用.NET在MVC3中实现服务器发送的事件?
检查这一项:https://github.com/valencianok/Wit.ai.net – ssakash
你是什么意思 “.NET服务器”?你有用.NET编写的服务? –