烧瓶线程不起作用

时间:2018-06-23 04:03:46

标签: python python-3.x flask rasa-nlu rasa-core

我目前正在将Flask与Rasa结合使用来制作聊天机器人。当用户与聊天机器人聊天时,聊天机器人会记住对话中提到的某些内容,例如用户的姓名,详细信息等。它会在稍后的会话中使用此信息。

问题是,每个用户都应该有自己的聊天机器人会话,即有关一个用户的信息不应与另一个用户的信息混淆。要解决此问题,每个用户必须有自己的单独会话。为此,我在Flask中启用了线程。

我的代码是:

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals

import argparse
import logging
import warnings
import re

from flask import Flask, render_template, request
from policy import theCorePolicy
from termcolor import colored
from rasa_core import utils
from rasa_core.actions import Action
from rasa_core.agent import Agent
from rasa_core.events import SlotSet
from rasa_core.featurizers import (
    MaxHistoryTrackerFeaturizer,
    BinarySingleStateFeaturizer)
from rasa_core.interpreter import RasaNLUInterpreter
from rasa_core.policies.memoization import MemoizationPolicy

interpreter = RasaNLUInterpreter("nlu/models/default/default_model")
agent = Agent.load("core/models", interpreter=interpreter)

app = Flask(__name__)
logger = logging.getLogger(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/sendMessage', methods=['POST'])
def sendMessage():
    message = request.form.getlist('message')[0]
    output = agent.handle_message(message)
    utter = ""
    x = 0
    while x < len(output):
        utter = utter + "<li class='bot'>" + output[x]["text"] + "</li>"
        x += 1
    return utter

if __name__ == '__main__':
  app.run(host='192.168.0.109', port=1515, debug=False, threaded=True)

但是,这似乎不起作用。尽管我指定了threaded=True,但多个用户的信息却被弄乱了。所有用户都有一个共同的会话。我该如何解决?

0 个答案:

没有答案