From 88e11dcc7ec4d5b8fb5942228b16f631d47701ad Mon Sep 17 00:00:00 2001 From: ahmed531998 Date: Thu, 20 Apr 2023 13:34:19 +0200 Subject: [PATCH] fix --- main.py | 105 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 55 insertions(+), 50 deletions(-) diff --git a/main.py b/main.py index b9fcaa1..7d1a9c6 100644 --- a/main.py +++ b/main.py @@ -99,52 +99,58 @@ def predict(): #rg = users[token]['args']['rg'] #vre = users[token]['args']['vre'] message = {} - if text == "": - state = {'help': True, 'inactive': False, 'modified_query':"", 'intent':""} - dm.update(state) - action = dm.next_action() - response = rg.gen_response(action, vrename=vre.name, username=users[token]['username'], name=users[token]['name'].split()[0]) - message = {"answer": response} - elif text == "": - state = {'help': False, 'inactive': True, 'modified_query':"recommed: ", 'intent':""} - dm.update(state) - action = dm.next_action() - response = rg.gen_response(action, username=users[token]['username'],name=users[token]['name'].split()[0], vrename=vre.name) - message = {"answer": response} - new_state = {'modified_query': response} - dm.update(new_state) - else: - state = nlu.process_utterance(text, dm.get_consec_history(), dm.get_sep_history()) - state['help'] = False - state['inactive'] = False - old_user_interests = user.get_user_interests() - old_vre_material = pd.concat([vre.db['paper_db'], vre.db['dataset_db']]).reset_index(drop=True) - user_interests = [] - for entity in state['entities']: - if entity['entity'] == 'TOPIC': - user_interests.append(entity['value']) - user.update_interests(user_interests) - new_user_interests = user.get_user_interests() - new_vre_material = pd.concat([vre.db['paper_db'], vre.db['dataset_db']]).reset_index(drop=True) - if (new_user_interests != old_user_interests or len(old_vre_material) != len(new_vre_material)): - rec.generate_recommendations(users[token]['username'], new_user_interests, new_vre_material) - dm.update(state) - action = dm.next_action() - response = rg.gen_response(action=action, utterance=state['modified_query'], state=dm.get_recent_state(), consec_history=dm.get_consec_history(), chitchat_history=dm.get_chitchat_history(), vrename=vre.name, username=users[token]['username'], name=users[token]['name'].split()[0]) - message = {"answer": response, "query": text, "cand": "candidate", "history": dm.get_consec_history(), "modQuery": state['modified_query']} - if state['intent'] == "QA": - split_response = response.split("_______ \n ") - if len(split_response) > 1: - response = split_response[1] - new_state = {'modified_query': response, 'intent': state['intent']} - dm.update(new_state) - reply = jsonify(message) - users[token]['dm'] = dm - users[token]['user'] = user - users[token]['activity'] = 0 - #users[token]['args']['vre'] = vre - #users[token]['args']['rg'] = rg - return reply + try: + if text == "": + state = {'help': True, 'inactive': False, 'modified_query':"", 'intent':""} + dm.update(state) + action = dm.next_action() + response = rg.gen_response(action, vrename=vre.name, username=users[token]['username'], name=users[token]['name'].split()[0]) + message = {"answer": response} + elif text == "": + state = {'help': False, 'inactive': True, 'modified_query':"recommed: ", 'intent':""} + dm.update(state) + action = dm.next_action() + response = rg.gen_response(action, username=users[token]['username'],name=users[token]['name'].split()[0], vrename=vre.name) + message = {"answer": response} + new_state = {'modified_query': response} + dm.update(new_state) + else: + state = nlu.process_utterance(text, dm.get_consec_history(), dm.get_sep_history()) + state['help'] = False + state['inactive'] = False + old_user_interests = user.get_user_interests() + old_vre_material = pd.concat([vre.db['paper_db'], vre.db['dataset_db']]).reset_index(drop=True) + user_interests = [] + for entity in state['entities']: + if entity['entity'] == 'TOPIC': + user_interests.append(entity['value']) + user.update_interests(user_interests) + new_user_interests = user.get_user_interests() + new_vre_material = pd.concat([vre.db['paper_db'], vre.db['dataset_db']]).reset_index(drop=True) + if (new_user_interests != old_user_interests or len(old_vre_material) != len(new_vre_material)): + rec.generate_recommendations(users[token]['username'], new_user_interests, new_vre_material) + dm.update(state) + action = dm.next_action() + response = rg.gen_response(action=action, utterance=state['modified_query'], state=dm.get_recent_state(), consec_history=dm.get_consec_history(), chitchat_history=dm.get_chitchat_history(), vrename=vre.name, username=users[token]['username'], name=users[token]['name'].split()[0]) + message = {"answer": response, "query": text, "cand": "candidate", "history": dm.get_consec_history(), "modQuery": state['modified_query']} + if state['intent'] == "QA": + split_response = response.split("_______ \n ") + if len(split_response) > 1: + response = split_response[1] + new_state = {'modified_query': response, 'intent': state['intent']} + dm.update(new_state) + reply = jsonify(message) + users[token]['dm'] = dm + users[token]['user'] = user + users[token]['activity'] = 0 + #users[token]['args']['vre'] = vre + #users[token]['args']['rg'] = rg + return reply + except Exception as e: + message = {"answer": str(e), "query": "", "cand": "candidate", "history": "", "modQuery": ""} + return jsonify(message) + + @app.route('/api/feedback', methods = ['POST']) def feedback(): @@ -152,7 +158,6 @@ def feedback(): print(data) try: - """ conn = psycopg2.connect(host="janet-pg", database=os.getenv("POSTGRES_DB"), user=os.getenv("POSTGRES_USER"), password=os.getenv("POSTGRES_PASSWORD")) cur = conn.cursor() cur.execute('INSERT INTO feedback_experimental (query, history, janet_modified_query, is_modified_query_correct, user_modified_query, evidence_useful, response, preferred_response, response_length_feedback, response_fluency_feedback, response_truth_feedback, response_useful_feedback, response_time_feedback, response_intent) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)', @@ -162,7 +167,7 @@ def feedback(): data['speed'], data['intent'])) conn.commit() cur.close() - """ + reply = jsonify({"status": "done"}) return reply @@ -202,7 +207,7 @@ if __name__ == "__main__": threading.Thread(target=vre_fetch, name='updatevre').start() threading.Thread(target=clear_inactive, name='clear').start() - """ + conn = psycopg2.connect(host="janet-pg", database=os.getenv("POSTGRES_DB"), user=os.getenv("POSTGRES_USER"), password=os.getenv("POSTGRES_PASSWORD")) cur = conn.cursor() @@ -224,5 +229,5 @@ if __name__ == "__main__": ) conn.commit() cur.close() - """ + app.run(host='0.0.0.0')