ramwar commited on
Commit
9b598eb
1 Parent(s): 4ce9c12

latest version

Browse files
Files changed (2) hide show
  1. app.py +17 -3
  2. 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=read_textfile, inputs=[textfile], outputs=[])
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