AIMLを使用し、asp.net mvc Webページ用にこれを設定するのに非常に苦労することになると、まったくの初心者です。ユーザーがテキストボックスにメッセージを入力できる基本的なビュー設定があり、チャットボットに応答を返させようとしています。テキストケースで機能するインタラクションが得られたので、関数がユーザーの応答を正しく取得し、応答を返送してチャットボックスに表示できることがわかりました。問題は、動的応答を作成するようにチャットボットを設定しようとしていることです。 。現在、私のコントローラーには次のものがあります。
String filePath = Server.MapPath("~/aimlBot/aiml/");
ChatBot catbot = new ChatBot(filePath);
string ReturnText = catbot.GetOutput(text); //text is just a string no html or fancy stuff in it
と私のチャットボットクラス
Public class ChatBot : Bot
{
private Bot myBot;
private User myUser;
public ChatBot(string filepath)
{
myBot = new Bot();
myUser = new User("Human", myBot);
Initialize(filepath);
}
private void Initialize(string filepath)
{
AIMLbot.Utils.AIMLLoader loader = new AIMLbot.Utils.AIMLLoader(this.myBot);
myBot.isAcceptingUserInput = false;
loader.loadAIML(filepath);
myBot.isAcceptingUserInput = true;
}
public String GetOutput(String input)
{
Request r = new Request(input, myUser, myBot);
Result res = myBot.Chat(r); //breaks here
string response = "Bot: " + res.Output;
return (response);
}
}
私が得ている問題は、結果res = myBot.Chat(r);にあります。プログラムはFormatExceptionをスローします
System.FormatException was unhandled by user code
Message=Input string was not in a correct format.
Source=mscorlib
StackTrace:
at System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt)
at System.Convert.ToDouble(String value)
at AIMLbot.Bot.get_TimeOut()
at AIMLbot.Utils.Node.evaluate(String path, SubQuery query, Request request, MatchState matchstate, StringBuilder wildcard)
at AIMLbot.Bot.Chat(Request request)
at Ira.aimlBot.ChatBot.GetOutput(String input) in C:\Users\Ira\Documents\Visual Studio 2010\Projects\Ira\Ira\aimlBot\ChatBot.cs:line 36
at Ira.Controllers.ARGController.Speak(String text) in C:\Users\Ira\Documents\Visual Studio 2010\Projects\Ira\Ira\Controllers\ARGController.cs:line 35
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
InnerException:
コードのどこが悪いのかわかりません。変数文字列から「Hellohowareyou」のようなハードコードの場合に変更しても、同じ例外が発生しました。