我正在嘗試PyAiml包來寫一個聊天機器人。我用A.L.I.C.E編寫了一個非常基本的程序,其中包含所有默認的aiml文件。一切工作正常,除了< >標記。我認爲這是會議問題。然後我修好了會議。但<仍然沒有運氣,>標籤的上下文對話。任何人都知道如何使它工作?或者PyAiml有<那個>標籤解析的bug?pyaiml沒有迴應<that>標記
這是我的bot程序和一個很小的AIML文件我與測試:
testbot.py
import aiml
import marshal
import os
from pprint import pprint
BOOTSTRAP_FILE = "/var/www/html/chatbot/std-startup.xml"
BOT_SESSION_PATH = "/var/www/html/chatbot/"
sess_id = 'user_id_moshfiqur'
while True:
k = aiml.Kernel()
k.bootstrap(learnFiles=BOOTSTRAP_FILE, commands="load aiml b")
if os.path.isfile(BOT_SESSION_PATH + sess_id + ".ses"):
sessionFile = file(BOT_SESSION_PATH + sess_id + ".ses", "rb")
sessionData = marshal.load(sessionFile)
sessionFile.close()
for pred, value in sessionData.items():
k.setPredicate(pred, value, sess_id)
response = k.respond(raw_input(">> "), sessionID=sess_id)
sessionData = k.getSessionData(sess_id)
pprint(sessionData)
sessionFile = file(BOT_SESSION_PATH + sess_id + ".ses", "wb")
marshal.dump(sessionData, sessionFile)
sessionFile.close()
pprint("<< " + response)
minimal.aiml
<aiml version="1.0.1" encoding="UTF-8">
<category>
<pattern>TEST1</pattern>
<template>testing one</template>
</category>
<category>
<pattern>TEST2</pattern>
<that>testing one</that>
<template>Success</template>
</category>
</aiml>
老實說您的回覆看起來複雜,我:)但是,這可能是因爲我沒有那麼多的目標經驗。我會盡力瞭解你的答案。關於我原來的解決方案,正如你所說的aiml沒有問題,那麼你知道它爲什麼不起作用嗎?你是如何使你的工作?通過使用這個上述解決方案 – sparrow