This commit is contained in:
ahmed531998 2023-04-20 13:34:19 +02:00
parent f2bb7e77df
commit 88e11dcc7e
1 changed files with 55 additions and 50 deletions

105
main.py
View File

@ -99,52 +99,58 @@ def predict():
#rg = users[token]['args']['rg']
#vre = users[token]['args']['vre']
message = {}
if text == "<HELP_ON_START>":
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 == "<RECOMMEND_ON_IDLE>":
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 == "<HELP_ON_START>":
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 == "<RECOMMEND_ON_IDLE>":
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')