Bob Page commited on
Commit
4d35477
1 Parent(s): 5059e99

add initial ui

Browse files
Files changed (2) hide show
  1. app.py +52 -0
  2. requirements.txt +5 -0
app.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+
3
+ from langchain.document_loaders import OnlinePDFLoader
4
+ from langchain.text_splitter import CharacterTextSplitter
5
+ from langchain.llms import HuggingFaceHub
6
+ from langchain.embeddings import HuggingFaceHubEmbeddings
7
+ from langchain.vectorstores import Chroma
8
+ from langchain.chains import RetrievalQA
9
+ import os
10
+
11
+ os.environ["HUGGINGFACEHUB_API_TOKEN"] = ""
12
+
13
+
14
+ def file_upload_click(pdf_doc):
15
+ loader = OnlinePDFLoader(pdf_doc.name)
16
+ documents = loader.load()
17
+ text_splitter = CharacterTextSplitter(chunk_size=300, chunk_overlap=0)
18
+ texts = text_splitter.split_documents(documents)
19
+ embeddings = HuggingFaceHubEmbeddings()
20
+ db = Chroma.from_documents(texts, embeddings)
21
+ retriever = db.as_retriever()
22
+ llm = HuggingFaceHub(repo_id="OpenAssistant/oasst-sft-1-pythia-12b", model_kwargs={"temperature":0.1, "max_new_tokens":250})
23
+ global qa
24
+ qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=True)
25
+ return "Ready"
26
+
27
+ def add_text(history, text):
28
+ history = history + [(text, None)]
29
+ return history, ""
30
+
31
+ def bot(history):
32
+ query=history[-1][0]
33
+ response = qa({"query": query})
34
+ history[-1][1] = response['result']
35
+ print(history)
36
+ return history
37
+
38
+
39
+ with gr.Blocks() as demo:
40
+ status_label = gr.Label(value='Start')
41
+ file_upload = gr.File(label="Uplaod pdf", file_types=['.pdf'], type="file")
42
+ file_upload_button= gr.Button('upload file')
43
+ chatbot = gr.Chatbot([], elem_id="chatbot").style(height=350)
44
+ question = gr.Textbox(label="Question", placeholder="Type your question and click submit")
45
+ submit_btn = gr.Button("Send message")
46
+ file_upload_button.click(file_upload_click, inputs=[file_upload], outputs=[status_label], queue=False)
47
+ submit_btn.click(add_text, [chatbot, question], [chatbot, question]).then(
48
+ bot, chatbot, chatbot
49
+ )
50
+
51
+
52
+ demo.queue().launch()
requirements.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ huggingface_hub
2
+ chromadb
3
+ langchain
4
+ unstructured
5
+ gradio