J'essaye le paquet PyAiml pour écrire un chatbot. J'ai écrit un programme très basique avec tous ces fichiers aiml par défaut de A.L.I.C.E. Tout fonctionne bien jusqu'à présent, sauf le <que> tag. Je pensais que c'était le problème de la session. Puis j'ai réparé la session. Mais toujours aucune chance avec < que tag > pour une conversation contextuelle. Quelqu'un sait comment le faire fonctionner? Ou le PyAiml a un bug avec < que l'analyse des étiquettes >?pyaiml ne répond pas sur <that> tag
Voici mon programme de bot et un fichier AIML très peu je teste avec:
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>
Honnêtement votre réponse semble compliquée à moi :) Mais c'est probablement parce que je Je n'ai pas beaucoup d'expérience avec aiml. Je vais essayer de comprendre votre réponse. En ce qui concerne ma solution originale, comme vous l'avez dit aiml n'a pas de problème, alors savez-vous pourquoi cela ne fonctionne pas? Comment as-tu fait ton travail? En utilisant cette solution ci-dessus? – sparrow