calpoly-csai / api

Official API for the NIMBUS Voice Assistant accessible via HTTP REST protocol.
https://nimbus.api.calpolycsai.com/
GNU General Public License v3.0
9 stars 4 forks source link

ValueError: query data dimension must match training data dimension #171

Closed mfekadu closed 4 years ago

mfekadu commented 4 years ago
curl --location --request POST 'http://0.0.0.0:8080/ask' --header 'Content-Type: application/json' --data-raw '{
    "question": "What is Foaad email?"
}'
➜  api git:(log-questions-reborn) ./deploy.sh
[2020-05-31 14:59:59 -0700] [99330] [INFO] Starting gunicorn 20.0.4
[2020-05-31 14:59:59 -0700] [99330] [INFO] Listening at: http://0.0.0.0:8080 (99330)
[2020-05-31 14:59:59 -0700] [99330] [INFO] Using worker: sync
[2020-05-31 14:59:59 -0700] [99333] [INFO] Booting worker with pid: 99333
[2020-05-31 14:59:59 -0700] [99334] [INFO] Booting worker with pid: 99334
[2020-05-31 14:59:59 -0700] [99335] [INFO] Booting worker with pid: 99335
initialized database session
initialized NimbusMySQLAlchemy
Inserting into QuestionLog...
Saving to database: QuestionLog(question=What is Foaad email?, timestamp=2020-05-31 15:00:29.158474, id=None, is_view=None, metadata=None)...
Saved!

[2020-05-31 15:00:32,940] ERROR in app: Exception on /ask [POST]
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask_cors/extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/mfekadu/GitHub/api/flask_api.py", line 129, in handle_question
    response = {"answer": nimbus.answer_question(question)}
  File "/Users/mfekadu/GitHub/api/nimbus.py", line 33, in answer_question
    ans_dict = self.predict_question(question)
  File "/Users/mfekadu/GitHub/api/nimbus.py", line 69, in predict_question
    nlp_props["normalized question"]
  File "/Users/mfekadu/GitHub/api/nimbus_nlp/question_classifier.py", line 121, in classify_question
    min_dist = np.min(self.classifier.kneighbors(test_vector, n_neighbors=1))
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/neighbors/_base.py", line 664, in kneighbors
    for s in gen_even_slices(X.shape[0], n_jobs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/joblib/parallel.py", line 1003, in __call__
    if self.dispatch_one_batch(iterator):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/joblib/parallel.py", line 834, in dispatch_one_batch
    self._dispatch(tasks)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/joblib/parallel.py", line 753, in _dispatch
    job = self._backend.apply_async(batch, callback=cb)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/joblib/_parallel_backends.py", line 201, in apply_async
    result = ImmediateResult(func)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/joblib/_parallel_backends.py", line 582, in __init__
    self.results = batch()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/joblib/parallel.py", line 256, in __call__
    for func, args, kwargs in self.items]
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/joblib/parallel.py", line 256, in <listcomp>
    for func, args, kwargs in self.items]
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/neighbors/_base.py", line 491, in _tree_query_parallel_helper
    return tree.query(*args, **kwargs)
  File "sklearn/neighbors/_binary_tree.pxi", line 1319, in sklearn.neighbors._kd_tree.BinaryTree.query
ValueError: query data dimension must match training data dimension
^C[2020-05-31 15:01:40 -0700] [99330] [INFO] Handling signal: int
[2020-05-31 15:01:40 -0700] [99333] [INFO] Worker exiting (pid: 99333)
[2020-05-31 15:01:40 -0700] [99335] [INFO] Worker exiting (pid: 99335)
[2020-05-31 15:01:40 -0700] [99334] [INFO] Worker exiting (pid: 99334)
NimbusMySQLAlchemy closed
[2020-05-31 15:01:41 -0700] [99330] [INFO] Shutting down: Master
➜  api git:(log-questions-reborn) echo $DATABASE_NAME
dev_may_10_2020
➜  api git:(log-questions-reborn)
mfekadu commented 4 years ago

Fixed by

rm nimbus_nlp/models/classification/nlp-model_05_31_2020_14_32_56.pkl

``` ➜ api git:(log-questions-reborn) ./build.py && ./deploy.sh running... python3 -m pip install colorful termcolor ansicolors colorama ✅ it is good. color! wow! running... python3 -m pip install -r requirements.txt ✅ it is good. running... python3 setup_special_files_from_env.py --overwrite-all ✅ it is good. running... python3 -m pip install --upgrade urllib3 ✅ it is good. running... python3 -m spacy download en_core_web_sm ✅ it is good. skipping spacy's `en_core_web_lg` download... nimbus will work with `en_core_web_sm` at least done [2020-05-31 15:04:26 -0700] [99575] [INFO] Starting gunicorn 20.0.4 [2020-05-31 15:04:26 -0700] [99575] [INFO] Listening at: http://0.0.0.0:8080 (99575) [2020-05-31 15:04:26 -0700] [99575] [INFO] Using worker: sync [2020-05-31 15:04:26 -0700] [99608] [INFO] Booting worker with pid: 99608 [2020-05-31 15:04:26 -0700] [99614] [INFO] Booting worker with pid: 99614 [2020-05-31 15:04:26 -0700] [99615] [INFO] Booting worker with pid: 99615 initialized database session initialized NimbusMySQLAlchemy Saved model : /Users/mfekadu/GitHub/api/nimbus_nlp/models/classification/nlp-model_05_31_2020_15_04_28.pkl Inserting into QuestionLog... Saving to database: QuestionLog(question=What is Foaad email?, timestamp=2020-05-31 15:05:04.445050, id=None, is_view=None, metadata=None)... Saved! {'entity': 'Foaad', 'tag': 'PROF', 'normalized entity': 'Foaad', 'input question': 'What is Foaad email?', 'normalized question': 'What is [PROF] email?', 'question class': 'What is the email of [PROF]?'} [(111, ['Sara', 'Ford'], 'ssford@calpoly.edu'), (131, ['Foaad', 'Khosmood'], 'foaad@calpoly.edu')] ```

mfekadu commented 4 years ago

related to #170