Создать AIMLBOT на TOMCAT 8 - PullRequest
0 голосов
/ 28 мая 2018

У меня есть веб-приложение jsp, servlet - контент-менеджер для цель, в котором пользователи могут регистрировать вопросы и ответы.Тогда система теоретически должна с помощью одной кнопки скомпилировать bd для прицеливания и создать бота.

Проблема в том, что даже при компиляции бота она не отвечает на новые вопросы.

Я использую Google AB для AIML в Java.

Папка бота находится внутри WEB-INF

Если я скомпилирую из tomcat, как если бы это было обычное Java-приложение, оно правильногенерирует файлы и отвечает на основе новых вопросов.

Если я запускаю компиляцию бота из сервлета, он выполняет компиляцию, но бот не использует новые вопросы и ответы.

Вопрос в том, что это не дает явной ошибки.

Вы совершенно правы.Я попытаюсь объяснить это лучше.

Я использую AB Google для компиляции и использования бота AIML в веб-приложении с jsp и servlet.

TOMCAT 8 и JAVA 8 какenvironment

<dependency>
    <artifactId> com.google </ artifactId>
    <groupId> Ab </ groupId>
    <version> 0.0.4.3 </ version>
</ dependency>

каталог файлов ботов: WEB-INF / bots Когда я компилирую и выполняю в java файл aiml

public class AddAiml {

    / **
     * @param args the command line arguments
     * /
    private static final boolean TRACE_MODE = true;
    static String botName = "super";
 
    public static void main (String [] args) {
        try {
 
            String resourcesPath = getResourcesPath ();
            System.out.println (resourcesPath);
            MagicBooleans.trace_mode = TRACE_MODE;
            
            Bot bot = new Bot (botName, resourcesPath);
             
            bot.writeAIMLFiles ();
 
        } catch (Exception e) {
            e.printStackTrace ();
        }
    }
 
    private static String getResourcesPath () {
        File currDir = new File (".");
        String path = currDir.getAbsolutePath ();
        path = path.substring (0, path.length () - 2);
        System.out.println (path);
        String resourcesPath = path + File.separator + "src" + File.separator + "main" + File.separator + "webapp" + File.separator + "WEB-INF";
        return resourcesPath;
    }
    
    
    
}

Это генерирует корректного бота, и я могу вызвать его позжев моем сервлете

protected void processRequest (HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        HttpSession session = request.getSession (false);
        if (session! = null) {
            String action = request.getParameter ("url");
            if (accion.equals ("chatbot")) {
                ServletContext sc = session.getServletContext ();
                BotUpo botUpo = new BotUpo (sc.getResource ("WEB-INF"). GetPath ());

                session.setAttribute ("upobot", botUpo);

                RequestDispatcher rd = sc.getRequestDispatcher ("/ admin / chatbot.jsp");
                rd.forward (request, response);
            }
        }

    }

Хорошо, здесь все в порядке.Я создал небольшой менеджер контента, где пользователи вводят вопросы и ответы.А в разделе администрации я добавил кнопку для перекомпиляции бота прицела.

 ServletContext sc = getServletContext ();
String resourcesPath = sc.getResource ("WEB-INF"). GetPath ();
                MagicBooleans.trace_mode = TRACE_MODE;
                Bot bot = new Bot (botName, StringUtils.removeEnd (resourcesPath, "/"));

                bot.writeAIMLFiles ();

После перекомпиляции бота он не может ответить ни на один вопрос.

Единственный вывод, чтопришло то, что проблема должна быть в том, что компиляция в веб-приложении tomcat не позволяет загружать эти файлы.

...