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

500 error when asking questions about a club #159

Open snekiam opened 4 years ago

snekiam commented 4 years ago

Describe the bug Asking a question about a club yields "I'm sorry, I don't understand..."

To Reproduce Steps to reproduce the behavior:

  1. Go to https://nimbus.calpolycsai.com/
  2. Ask "What does WISH do?"
  3. See "I'm sorry, I don't understand. Please try another question."

Expected behavior Question is answered.

Additional context Stacktrace:

[2020-05-24 22:23:21,609] ERROR in app: Exception on /ask [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.8/dist-packages/flask_cors/extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.8/dist-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/nimbus/flask_api.py", line 116, in handle_question
    response = {"answer": nimbus.answer_question(question)}
  File "/nimbus/nimbus.py", line 42, in answer_question
    answer = qa.answer(ans_dict)
  File "/nimbus/QA.py", line 52, in answer
    db_data = self.db_query(extracted_vars, self.db)
  File "/nimbus/QA.py", line 231, in _chain_db_access
    for key, val in fn(extracted_vars, db).items():
  File "/nimbus/QA.py", line 95, in _get_property
    value = db.get_property_from_entity(
  File "/nimbus/database_wrapper.py", line 569, in get_property_from_entity
    return props[-1][2]
TypeError: 'NoneType' object is not subscriptable
snekiam commented 4 years ago

Now we get this, which is a little better - no more 500:

{
  "answer": "I'm sorry, I understand your question but was unable to find an answer. Please try another question.",
  "session": "SOME_NEW_TOKEN"
}