Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -15,16 +15,33 @@ from langchain.vectorstores import Chroma
|
|
| 15 |
|
| 16 |
from langchain.chains import RetrievalQA
|
| 17 |
|
| 18 |
-
def
|
| 19 |
loader = OnlinePDFLoader(pdf_doc)
|
| 20 |
documents = loader.load()
|
| 21 |
texts = text_splitter.split_documents(documents)
|
| 22 |
db = Chroma.from_documents(texts, embeddings)
|
| 23 |
retriever = db.as_retriever()
|
| 24 |
qa = RetrievalQA.from_chain_type(llm=flan_ul2, chain_type="stuff", retriever=retriever, return_source_documents=True)
|
| 25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
result = qa({"query": query})
|
| 27 |
|
| 28 |
return result
|
| 29 |
|
| 30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
|
| 16 |
from langchain.chains import RetrievalQA
|
| 17 |
|
| 18 |
+
def pdf_changes(pdf_doc):
|
| 19 |
loader = OnlinePDFLoader(pdf_doc)
|
| 20 |
documents = loader.load()
|
| 21 |
texts = text_splitter.split_documents(documents)
|
| 22 |
db = Chroma.from_documents(texts, embeddings)
|
| 23 |
retriever = db.as_retriever()
|
| 24 |
qa = RetrievalQA.from_chain_type(llm=flan_ul2, chain_type="stuff", retriever=retriever, return_source_documents=True)
|
| 25 |
+
return "Ready"
|
| 26 |
+
|
| 27 |
+
def infer(question):
|
| 28 |
+
|
| 29 |
+
query = question
|
| 30 |
result = qa({"query": query})
|
| 31 |
|
| 32 |
return result
|
| 33 |
|
| 34 |
+
with gr.Blocks() as demo:
|
| 35 |
+
with gr.Column():
|
| 36 |
+
pdf_doc = gr.File(label="Load a pdf")
|
| 37 |
+
langchain_status = gr.Textbox()
|
| 38 |
+
pdf_doc.change(pdf_changes, pdf_doc, langchain_status, queue=False)
|
| 39 |
+
question = gr.Textbox(label="Your Question")
|
| 40 |
+
answer = gr.Textbox(label="Anwser")
|
| 41 |
+
submit_button = gr.Button("Send Question")
|
| 42 |
+
|
| 43 |
+
pdf_doc.change(pdf_changes, pdf_doc, langchain_status, queue=False)
|
| 44 |
+
submit_button.click(infer, inputs=[question], outputs=[answer])
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
demo.launch()
|