Spaces:
Runtime error
Runtime error
Bob Page
commited on
Commit
·
4d35477
1
Parent(s):
5059e99
add initial ui
Browse files- app.py +52 -0
- 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
|