Код отлично работает на Flask, но выдает ошибку при запуске с gunicorn - PullRequest
0 голосов
/ 01 июля 2019

У меня есть 2 версии чат-ботов для скайпа.Один находится в python3, а другой в python2.Я использовал колбу для запуска обоих приложений, но колба, предназначенная для разработки, столкнулась с проблемами в производственной среде.

Я пытался запустить приложения через gunicorn.Версия python3 работает без нареканий.Версия Python2 сталкивается с проблемами.Когда я пытаюсь запустить приложение с помощью команды "gunicorn -w 1 -b 0.0.0.0:5001 app: app --timeout 1500", оно начинает прослушивать порт, как и ожидалось.Однако, когда я отправляю запрос из интерфейса чата, после получения сообщения он продолжает предсказывать категорию сообщения.Эта часть выдает ошибку, по-видимому, из sklearn, но я не могу понять, где она возникла.Пожалуйста, проверьте сообщение об ошибке, показанное ниже.

Пожалуйста, проверьте сообщение об ошибке, показанное ниже.

[2019-07-01 15:21:32,232] ERROR in app: Exception on /ief [GET]
Traceback (most recent call last):
  File "/home/ubuntu/python2/local/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/ubuntu/python2/local/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/ubuntu/python2/local/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/ubuntu/python2/local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/ubuntu/python2/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/ubuntu/sample/app.py", line 115, in intent_finder
    intent,enty,response,sm_intent,domain,topic_flag,prev_chat= query_parser(question.decode('utf-8'),emp_name,chat_sess_id)
  File "/home/ubuntu/sample/intent_entity_extractor_module.py", line 667, in query_parser
    print(intent_classifier.predict(['who is usereeeeee']))
  File "/home/ubuntu/python2/local/lib/python2.7/site-packages/sklearn/utils/metaestimators.py", line 115, in <lambda>
    out = lambda *args, **kwargs: self.fn(obj, *args, **kwargs)
  File "/home/ubuntu/python2/local/lib/python2.7/site-packages/sklearn/pipeline.py", line 306, in predict
    Xt = transform.transform(Xt)
  File "/home/ubuntu/python2/local/lib/python2.7/site-packages/sklearn/feature_extraction/text.py", line 1409, in transform
    X = super(TfidfVectorizer, self).transform(raw_documents)
  File "/home/ubuntu/python2/local/lib/python2.7/site-packages/sklearn/feature_extraction/text.py", line 923, in transform
    _, X = self._count_vocab(raw_documents, fixed_vocab=True)
  File "/home/ubuntu/python2/local/lib/python2.7/site-packages/sklearn/feature_extraction/text.py", line 792, in _count_vocab
    for feature in analyze(doc):
  File "/home/ubuntu/python2/local/lib/python2.7/site-packages/sklearn/feature_extraction/text.py", line 266, in <lambda>
    tokenize(preprocess(self.decode(doc))), stop_words)
  File "<ipython-input-3-dfaaaae57141>", line 10, in clean
NameError: global name 'pos_tag' is not defined

Я подозревал, что pos_tag от nltk является проблемой.Я перепроверил весь импорт.Все вроде нормально.Я попытался распечатать вывод pos_tag в моем коде.Вывод распечатывается как положено.Тем не менее, не могу выяснить происхождение этой ошибки из sklearn.

...