Prachidwi commited on
Commit
d61b34b
1 Parent(s): 93fcfbb

Upload test1.py

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