Vihang28 commited on
Commit
36a17ff
·
1 Parent(s): d97b024

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +59 -0
app.py ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from PyPDF2 import PdfReader
2
+ import gradio as gr
3
+ from langchain.text_splitter import RecursiveCharacterTextSplitter
4
+ from langchain.llms import HuggingFaceHub
5
+ from langchain.embeddings import HuggingFaceEmbeddings
6
+ from langchain.vectorstores import Chroma
7
+ from langchain.chains import RetrievalQA
8
+ from langchain.document_loaders import PyMuPDFLoader
9
+ import os
10
+ from huggingface_hub import InferenceClient
11
+
12
+ os.environ["HUGGINGFACEHUB_API_TOKEN"] = "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"
13
+ # client = InferenceClient(token="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")
14
+
15
+ def load_doc(pdf_doc):
16
+
17
+ loader = PyMuPDFLoader(pdf_doc.name)
18
+ documents = loader.load()
19
+ embedding = HuggingFaceEmbeddings()
20
+ text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
21
+ text = text_splitter.split_documents(documents)
22
+ db = Chroma.from_documents(text, embedding)
23
+ llm = HuggingFaceHub(repo_id="OpenAssistant/oasst-sft-1-pythia-12b", model_kwargs={"temperature": 1.0, "max_length": 256})
24
+ global chain
25
+ chain = RetrievalQA.from_chain_type(llm=llm,chain_type="stuff",retriever=db.as_retriever())
26
+ return 'Document has successfully been loaded'
27
+
28
+ def answer_query(query):
29
+ question = query
30
+ return chain.run(question)
31
+
32
+ html = """
33
+ <div style="text-align:center; max width: 700px;">
34
+ <h1>ChatPDF</h1>
35
+ <p> Upload a PDF File, then click on Load PDF File <br>
36
+ Once the document has been loaded you can begin chatting with the PDF)
37
+ </div>"""
38
+
39
+ css = """container{max-width:700px; margin-left:auto; margin-right:auto,padding:20px}"""
40
+
41
+ gr.HTML(html)
42
+ with gr.Column():
43
+ gr.Markdown('ChatPDF')
44
+ pdf_doc = gr.File(label="Load a pdf",file_types=['.pdf'],type='file')
45
+ with gr.Row():
46
+ load_pdf = gr.Button('Load pdf file',variant="primary")
47
+ status = gr.Textbox(label="Status",placeholder='',interactive=False)
48
+
49
+
50
+ with gr.Row():
51
+ input = gr.Textbox(label="type in your question")
52
+ output = gr.Textbox(label="output")
53
+ submit_query = gr.Button("submit",variant="primary")
54
+
55
+ load_pdf.click(load_doc,inputs=pdf_doc,outputs=status)
56
+
57
+ submit_query.click(answer_query,input,output)
58
+
59
+ demo.launch(share=True)