File size: 1,252 Bytes
fca0aef
 
 
 
857cc0b
fca0aef
 
 
 
 
e07d22d
857cc0b
fca0aef
857cc0b
fca0aef
e07d22d
857cc0b
e07d22d
fca0aef
857cc0b
fca0aef
d78294d
857cc0b
fca0aef
857cc0b
 
 
 
 
fca0aef
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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.<br>
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()