import gradio as gr import pandas as pd import faiss from sentence_transformers import SentenceTransformer #load the sentences data path = "debate_hansard_sentences.txt" file = open(path, "r") sentences = file.readlines() # remove duplicates sentences = [word for word in list(set(sentences)) if type(word)] sentences_dict = {idx:val for idx, val in enumerate(sentences)} sentences_df = pd.DataFrame.from_dict(sentences_dict, orient='index', columns=['sentences']) #load the index index = faiss.read_index("semantic_search_vector.index") def question_answer(query): model = SentenceTransformer('bert-base-nli-mean-tokens') k = 4 xq = model.encode([query]) D, I = index.search(xq, k) # search sentences_df["sentences"].iloc[I.tolist()[0]] a = list(sentences_df["sentences"].iloc[I.tolist()[0]]) results = "\n".join(a) answer = results return answer iface = gr.Interface( fn=question_answer, inputs=gr.inputs.Textbox(lines=2, placeholder="Type your query here"), outputs="text").launch()