From 670b21a8d7d78246eb18abdaf45bf2104d5f7389 Mon Sep 17 00:00:00 2001 From: skosarew Date: Fri, 19 Mar 2021 16:39:37 +0300 Subject: [PATCH 1/5] add faq --- support_model.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/support_model.py b/support_model.py index 7abfbe9..8da0700 100644 --- a/support_model.py +++ b/support_model.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +import gspread from gensim.summarization import keywords from gensim.parsing.preprocessing import remove_stopwords @@ -44,6 +45,17 @@ def remove_slack_commands(query): return query +def get_answer_if_known(query): + gc = gspread.service_account(filename='ods-qna-dd4a610895ad.json') + questions = gc.open("faq fixed").sheet1 + + list_of_dicts = questions.get_all_records() + + for dct in list_of_dicts: + if query in dct['known_question']: + return [dct['known_answer']] + + def get_answer(query, use_lower=True, use_keywords=False, use_remove_stopwords=False, model_name=MODEL_NAME, use_remove_slack_commands=True ): @@ -57,6 +69,10 @@ def get_answer(query, use_lower=True, use_keywords=False, use_remove_stopwords=F query = remove_slack_commands(query) try: + known_answer = get_answer_if_known(query) + if known_answer: + return known_answer + answer_list = [] if model_name == ModelNames.ELASTIC: answer_list = elastic_search_baseline.get_answer(query) From f45509ed5b8e57a604c727383b922e170069fc15 Mon Sep 17 00:00:00 2001 From: skosarew Date: Sat, 20 Mar 2021 19:23:41 +0300 Subject: [PATCH 2/5] add gspread to requirements.txt --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 5af18f2..f5eafa2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -59,4 +59,5 @@ deeppavlov sentence-transformers==0.3.7.1 transformers==3.3.1 Flask-Cors==3.0.9 -flask-restplus \ No newline at end of file +flask-restplus +gspread==3.7.0 \ No newline at end of file From 61d0b39a07a22191fb4f46e82bb6bb215181fbe4 Mon Sep 17 00:00:00 2001 From: skosarew Date: Sat, 20 Mar 2021 19:26:15 +0300 Subject: [PATCH 3/5] rename file with credentials --- support_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support_model.py b/support_model.py index 8da0700..46b96ed 100644 --- a/support_model.py +++ b/support_model.py @@ -46,7 +46,7 @@ def remove_slack_commands(query): def get_answer_if_known(query): - gc = gspread.service_account(filename='ods-qna-dd4a610895ad.json') + gc = gspread.service_account(filename='ods-qna-secret.json') questions = gc.open("faq fixed").sheet1 list_of_dicts = questions.get_all_records() From 595910a3daf80ab50f5a451c0ed4e5fe1d63ab5d Mon Sep 17 00:00:00 2001 From: skosarew Date: Sat, 20 Mar 2021 20:04:27 +0300 Subject: [PATCH 4/5] add method is_query_in_row, find in known_question_synonimous --- support_model.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/support_model.py b/support_model.py index 46b96ed..e4b43f5 100644 --- a/support_model.py +++ b/support_model.py @@ -45,15 +45,19 @@ def remove_slack_commands(query): return query +def is_query_in_row(gs_row, query): + return query in gs_row['known_question'] or query in gs_row['known_question_synonimous'].split(', ') + + def get_answer_if_known(query): gc = gspread.service_account(filename='ods-qna-secret.json') questions = gc.open("faq fixed").sheet1 - list_of_dicts = questions.get_all_records() + gs_rows = questions.get_all_records() - for dct in list_of_dicts: - if query in dct['known_question']: - return [dct['known_answer']] + for gs_row in gs_rows: + if is_query_in_row(gs_row, query): + return [gs_row['known_answer']] def get_answer(query, use_lower=True, use_keywords=False, use_remove_stopwords=False, model_name=MODEL_NAME, From a36da06141b421789cc44fad4972c3ccd1c40122 Mon Sep 17 00:00:00 2001 From: skosarew Date: Sat, 20 Mar 2021 20:09:59 +0300 Subject: [PATCH 5/5] fix typo synonymous in gs --- support_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support_model.py b/support_model.py index e4b43f5..79df986 100644 --- a/support_model.py +++ b/support_model.py @@ -46,7 +46,7 @@ def remove_slack_commands(query): def is_query_in_row(gs_row, query): - return query in gs_row['known_question'] or query in gs_row['known_question_synonimous'].split(', ') + return query in gs_row['known_question'] or query in gs_row['known_question_synonymous'].split(', ') def get_answer_if_known(query):