|
import gradio as gr |
|
import pandas as pd |
|
import faiss |
|
from sentence_transformers import SentenceTransformer |
|
|
|
|
|
|
|
path = "debate_hansard_sentences.txt" |
|
file = open(path, "r") |
|
sentences = file.readlines() |
|
|
|
|
|
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']) |
|
|
|
|
|
|
|
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) |
|
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() |
|
|