2015-02-15 3 views
0

Я хотел бы настроить grokitbot для общения на местном уровне с пользователем через терминал.создание grokitbot для работы на местном уровне

Grokitbot подключен, чтобы говорить напрямую с сервером irc с использованием скрученных.

Посмотрите на исходный код, кажется, что Grokitbot.py выполняет все действия irc, а AIMLBot.py выполняет всю фактическую работу, поэтому я отбрасываю прежний файл. This is AIMLBot.py

Существует еще один сценарий под названием AIMLBayes.py, который выполняет всю работу Байеса.

В моем первом вопросе я запускал код без строки для отправки в качестве имени. поэтому учебный файл не может быть создан.

Так, перефразировав мой первоначальный вопрос:

from AIMLBot import AIMLBot 

bot = AIMLBot("Joe") 

while True: 
    line = raw_input() 
    print bot.on_MSG_IN("netanel", line) 

Вот бревно из сценария:

Loading data/aiml/startup.xml... done (0.11 seconds) 
Loading data/aiml\example.aiml... done (0.01 seconds) 
Loading data/aiml\goodbye.aiml... done (0.00 seconds) 
Loading data/aiml\hello.aiml... done (0.01 seconds) 
Loading data/aiml\main.aiml... done (0.01 seconds) 
Loading data/aiml\thanks.aiml... done (0.00 seconds) 
Loading data/aiml\tools.aiml... done (0.01 seconds) 
Loading data/aiml\unknown.aiml... done (0.00 seconds) 
Interpreter Version Info: PyAIML 0.8.6 
Kernel bootstrap completed in 0.18 seconds 
[Alert] Failed to load bayesian brain - Joe.bay, creating it now 
hello 
Loading data/aiml/training/netanel.aiml... done (0.00 seconds) 
Sorry, I don't understand. What do you mean? 
hello 
[Handler] TRAINING 
Failed to learn 
OK, I grok that 

Этот код не удается на Windows. Но тот же код работает на машине Linux работает Debian ..

+0

Кстати, я попытался вставить файл std-hello.aiml в папку AIML, и он успешно запустил его и может отвечать командами, указанными в файле AIML. Тем не менее, бот по-прежнему не будет изучать новые фразы. модуль поставляется с hello.aiml, но я не отвечаю, когда загружаю файлы AIML по умолчанию. – Netanel

ответ

0

Похоже, вы должны дать имя вместо пустой строки для on_MSG_IN:

print a.on_MSG_IN("steve", line) 

После того, что изменение это работает для меня:

$ ../bin/python bot.py 
Loading data/aiml/startup.xml... done (0.03 seconds) 
Loading data/aiml/example.aiml... done (0.00 seconds) 
Loading data/aiml/goodbye.aiml... done (0.00 seconds) 
Loading data/aiml/hello.aiml... done (0.00 seconds) 
Loading data/aiml/main.aiml... done (0.00 seconds) 
Loading data/aiml/thanks.aiml... done (0.00 seconds) 
Loading data/aiml/tools.aiml... done (0.00 seconds) 
Loading data/aiml/unknown.aiml... done (0.00 seconds) 
Interpreter Version Info: PyAIML 0.8.6 
Kernel bootstrap completed in 0.03 seconds 
[Bayes] Brain loaded ok 
hi 
[Guess] hello 
[Topic] hello 
Hallo Pooh 
greetings 
Loading data/aiml/training/steve.aiml... done (0.00 seconds) 
Sorry, I don't understand. What do you mean? 
hello 
[Guess] hello 
[Handler] TRAINING 
OK, I grok that 
greetings 
[Guess] hello 
[Topic] hello 
Hello steve 

Я просто научил его, что «приветствия» - это еще один способ поздороваться.

Если он все еще не работает, можете ли вы дать нам вывод сценария? Вы видите ошибку? Есть ли у меня те же выходные линии? («Загрузка ...», «[Угадай]» и т. Д.).

+0

Это похоже на работу в Linux, но на окнах я все еще получаю ошибки. вот бревно из Linux машины, (я перерезал загрузку aimls) Kernel Bootstrap завершен в 0.03 секундах [Предупреждение] Не удалось загрузить Байесовский мозг - Joe.bay, создавая сейчас > привет Загрузки данных /aiml/training/netanel.aiml ... done (0.00 секунд) Извините, я не понимаю. Что вы имеете в виду? > привет означает привет [Handler] ТРЕНИНГ ОК, я обращал внимание, что > привет [Угадай] привет [Тема] привет Эло Так что это, очевидно, работает, за исключением того, не на окнах. Странно, хотя мне нужно его приветствовать, а ты нет? Btw, спасибо! – Netanel

+0

Нет проблем! Ох .. Я тоже использую окна (но с cygwin для python). Вы должны отредактировать исходный вопрос, чтобы включить эти сообщения журнала. Вы говорите, что это дает ошибку на окнах, какова была ошибка? Если он работает на одной платформе, а не другой, вы можете попробовать отлаживать шаг за шагом ('python -m pdb bot.py'), чтобы узнать, что другое. Или, похоже, эта программа опирается на те * .aiml и *.ботов, попробуйте проверить их на linux vs. windows до/после обучения. Re: Обучение привет, я мог бы обучить его раньше, я забыл. Этот вывод, который я опубликовал, был моим вторым использованием. –

+0

Это действительно не проблема для меня. Все равно все будет работать на Linux-машине. Одна вещь, которую я просто не мог сделать, выполняет функцию обратного вызова от обработчика в AIML-файле. Обучение боту, что пример означает пример, Он возвращает строку " Это пример «предположительно, вы можете принять этот обратный вызов для запуска функции on_EXAMPLE(), как указано [здесь] (http://www.suttree.com/code/GrokItBot/features/) Я попытался воспользоваться этим, но функция никогда не называется .. – Netanel

Смежные вопросы