Spaces:
Runtime error
Runtime error
ramwar
commited on
Commit
·
9b598eb
1
Parent(s):
4ce9c12
latest version
Browse files- app.py +17 -3
- requirements.txt +3 -1
app.py
CHANGED
@@ -10,7 +10,7 @@ from langchain.text_splitter import TokenTextSplitter, CharacterTextSplitter
|
|
10 |
from langchain import PromptTemplate, LLMChain
|
11 |
from langchain.chains.question_answering import load_qa_chain
|
12 |
from langchain.vectorstores import FAISS
|
13 |
-
from langchain.document_loaders import TextLoader
|
14 |
from langchain.callbacks.manager import CallbackManager
|
15 |
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
|
16 |
import gradio as gr
|
@@ -42,6 +42,20 @@ llm = HuggingFaceHub(
|
|
42 |
embeddings = HuggingFaceEmbeddings()
|
43 |
callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])
|
44 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
def read_textfile(File):
|
46 |
loader = TextLoader(File.name)
|
47 |
documents = loader.load()
|
@@ -68,7 +82,7 @@ def ask_question(question, chat_history):
|
|
68 |
with gr.Blocks() as demo:
|
69 |
gr.Markdown("## 📚AskYourBooks")
|
70 |
gr.Markdown("""
|
71 |
-
Ask questions to your books in txt format. After a short indexing time,
|
72 |
ask questions about the content of the book.
|
73 |
"""
|
74 |
)
|
@@ -79,7 +93,7 @@ with gr.Blocks() as demo:
|
|
79 |
clear_button = gr.Button("Clear conversation")
|
80 |
chatbot = gr.Chatbot(label="Conversation")
|
81 |
|
82 |
-
textfile.change(fn=
|
83 |
ask_button.click(
|
84 |
fn=ask_question,
|
85 |
inputs=[ask_textbox, chatbot],
|
|
|
10 |
from langchain import PromptTemplate, LLMChain
|
11 |
from langchain.chains.question_answering import load_qa_chain
|
12 |
from langchain.vectorstores import FAISS
|
13 |
+
from langchain.document_loaders import TextLoader, UnstructuredEPubLoader
|
14 |
from langchain.callbacks.manager import CallbackManager
|
15 |
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
|
16 |
import gradio as gr
|
|
|
42 |
embeddings = HuggingFaceEmbeddings()
|
43 |
callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])
|
44 |
|
45 |
+
def upload_file(File):
|
46 |
+
if File.name.endswith(".txt"):
|
47 |
+
read_textfile(File)
|
48 |
+
elif File.name.endswith(".epub"):
|
49 |
+
read_epub(File)
|
50 |
+
|
51 |
+
def read_epub(File):
|
52 |
+
loader = UnstructuredEPubLoader(File.name)
|
53 |
+
documents = loader.load()
|
54 |
+
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=10)
|
55 |
+
docs = text_splitter.split_documents(documents)
|
56 |
+
db = FAISS.from_documents(docs, embeddings)
|
57 |
+
db.save_local(folder_path=".", index_name="faiss_index")
|
58 |
+
|
59 |
def read_textfile(File):
|
60 |
loader = TextLoader(File.name)
|
61 |
documents = loader.load()
|
|
|
82 |
with gr.Blocks() as demo:
|
83 |
gr.Markdown("## 📚AskYourBooks")
|
84 |
gr.Markdown("""
|
85 |
+
Ask questions to your books in txt or epub format. After a short indexing time,
|
86 |
ask questions about the content of the book.
|
87 |
"""
|
88 |
)
|
|
|
93 |
clear_button = gr.Button("Clear conversation")
|
94 |
chatbot = gr.Chatbot(label="Conversation")
|
95 |
|
96 |
+
textfile.change(fn=upload_file, inputs=[textfile], outputs=[])
|
97 |
ask_button.click(
|
98 |
fn=ask_question,
|
99 |
inputs=[ask_textbox, chatbot],
|
requirements.txt
CHANGED
@@ -3,4 +3,6 @@ langchain
|
|
3 |
transformers
|
4 |
sentence_transformers
|
5 |
tiktoken
|
6 |
-
faiss-cpu
|
|
|
|
|
|
3 |
transformers
|
4 |
sentence_transformers
|
5 |
tiktoken
|
6 |
+
faiss-cpu
|
7 |
+
unstructured
|
8 |
+
pypandoc
|