import subprocess def install(name): subprocess.call(['pip', 'install', name]) install('PyPDF2') import PyPDF2 import numpy as np install('tensorflow') import tensorflow as tf install('tensorflow-hub') import tensorflow_hub as hub import time import gradio as gr import re module_url = "https://tfhub.dev/google/universal-sentence-encoder/4" model = hub.load(module_url) print ("module %s loaded" % module_url) def Model(f, q): reader = PyPDF2.PdfReader(f) text = '' for i in range(len(reader.pages)): text = text + reader.pages[i].extract_text() text = text.replace('\n',' ') data = re.split(r"[.]\s+(?=[A-Z1-9])", text) embs = model(data) doc = [{"txt":d[0], "emb":np.array(d[1]).tolist()} for d in zip(data, embs)] embedding = [] for i in range(len(doc)): embedding.append(doc[i]['emb']) para = [] for i in range(len(doc)): para.append(doc[i]['txt']) qry = q q = np.array(model([qry])).tolist() y = np.argsort(np.inner(q, embedding))[0] ans = '' for i in y[-3:][::-1]: ans = ans + para[i] + '\n' return ans with gr.Blocks(css=".gradio-container-3-18-0 {background-color: lightskyblue} .contain.svelte-1iguv9h.svelte-1iguv9h.svelte-1iguv9h {background-color: lightskyblue} .lg.svelte-1ma3u5b {background-color: darkorange}") as demo: gr.HTML('

Answer Market Requirements Document (MRD)

') f = gr.File(label='Upload requirements and specifications of company (.pdf file) here!') q = gr.Textbox(placeholder="Enter Query", label='Enter Query here!') submit_btn = gr.Button(value="Answer") output = gr.Textbox(label='RESULTS!') submit_btn.click(fn=Model, inputs=[f,q], outputs=output, scroll_to_output=True, api_name="answer-mrd") demo.launch(auth=("admin","12e4"))