import pandas as pd from sentence_transformers import SentenceTransformer, util import gradio PATH_TO_FILE = 'cabot_qa.csv' df = pd.read_csv(PATH_TO_FILE, sep=';') df.drop_duplicates(inplace=True, ignore_index=True) model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2') def run_question(Question): similarities = [] for jdx, j in enumerate(list(df.Question)): similarities.append(float(util.pytorch_cos_sim( model.encode(list(df.Question)[jdx], convert_to_tensor=True), model.encode(Question, convert_to_tensor=True)))) if round(max(similarities)*100) < 70: return 'I\'m sorry, I\'m not sure I understood your question. Could you try again?' else: return df.loc[similarities.index(max(similarities)), 'Answer'] description = """Hi! I'm Cabot, the Consular Affairs bot.
I will answer your questions about the Citizen Services that you can request at the Consular Sections within U.S. Embassy Rome.""" gradio.Interface(run_question, title='Introducing C.A.BOT', description=description, inputs=gradio.Textbox(label="Type your question here!"), outputs=gradio.Textbox(label="Answer")).launch()